3/10/2010 Implementing Evolutionary Architecture – Neal Ford / Writing Testable Code – Jim McMaster

Our March Meeting will be on 3/10/2010 at the TIV 320 AB – Baerresen Ballroom.
Neal Ford will be the featured speaker on “Evolutionary Architecture”
and Jim McMaster will give the first talk/lecture on “Writing Testable Code”

The address for the Tivoli Building is: 900 Auraria Parkway Denver, CO 80204-1852

Schedule

5:30-6:00 PM Refreshments and Networking
6:00-7:00 PM Writing Testable Code
7:00-7:05 PM Short break
7:05-7:15 PM Announcements
7:15-8:45 PM Evolutionary Architecture
     8:45 PM Door prize raffle

First Session/Basic Concepts

Writing Testable Code

Writing tests is easy, right?  Anyone can use JUnit.  The hard part is writing your code so it is easy (or even possible) to test.  Tonight, we’ll talk about some techniques for making your code easier to test, and some pitfalls to avoid.  If you wish to get the slides from the presentation, please contact Jim ( jmcmaster<at>google<dot>com ) and he can give you a copy.  Corporate requirements Jim works under do not allow it to be posted here on the site.

About The Speaker

Jim McMaster has been writing code since it was punched on cards.  In recent years, he has become a fan of developer testing.  He is a Software Engineer at Google, Inc. in Boulder.  He mainly works on Google Docs, and acts as world-wide publisher for Testing on the Toilet.

Main/Featured talk

Evolutionary Architecture

This talk describes an agile approach to architecture, and merges the current state-of-the-art thinking in both service oriented architectures(SOA) and web-based architectures like HTTP and REST.
In software, architecture and design are separate concepts. Emergent design allows you to change the overall design of your code, but you must have a baseline architecture in place. That doesn’t mean that you can’t allow your architecture to evolve over time, and that’s what this session covers. In this session I described how to use web technologies (HTTP, REST, etc) to implement robust, scalable enterprise architecture.
This talk is based on original research and development done by ThoughtWorks, and represents the current state of the art in building truly scalable enterprise architectures. This topic combines the subjects of service oriented architecture with web technologies to create a hybrid providing you with the benefits of both approaches.

This talk describes an agile approach to architecture, and merges the current state-of-the-art thinking in both service oriented architectures(SOA) and web-based architectures like HTTP and REST.
In software, architecture and design are separate concepts. Emergent design allows you to change the overall design of your code, but you must have a baseline architecture in place. That doesn’t mean that you can’t allow your architecture to evolve over time, and that’s what this session covers. In this session I described how to use web technologies (HTTP, REST, etc) to implement robust, scalable enterprise architecture.This talk is based on original research and development done by ThoughtWorks, and represents the current state of the art in building truly scalable enterprise architectures. This topic combines the subjects of service oriented architecture with web technologies to create a hybrid providing you with the benefits of both approaches.

About The Speaker

Neal is Software Architect and Meme Wrangler at ThoughtWorks, a global IT consultancy with an exclusive focus on end-to-end software development and delivery.

Before joining ThoughtWorks, Neal was the Chief Technology Officer at The DSW Group, Ltd., a nationally recognized training and development firm. Neal has a degree in Computer Science from Georgia State University specializing in languages and compilers and a minor in mathematics specializing in statistical analysis.

He is also the designer and developer of applications, instructional materials, magazine articles, video presentations, and author of 6 books, including the most recent The Productive Programmer. His language proficiencies include Java, C#/.NET, Ruby, Groovy, functional languages, Scheme, Object Pascal, C++, and C. His primary consulting focus is the design and construction of large-scale enterprise applications. Neal has taught on-site classes nationally and internationally to all phases of the military and to many Fortune 500 companies. He is also an internationally acclaimed speaker, having spoken at over 100 developer conferences worldwide, delivering more than 600 talks. If you have an insatiable curiosity about Neal, visit his web site at http://www.nealford.com. He welcomes feedback and can be reached at nford@thoughtworks.com.

Posted in Monthly Meeting | Comments Off on 3/10/2010 Implementing Evolutionary Architecture – Neal Ford / Writing Testable Code – Jim McMaster

2/10/2010 – Getting Agile with Scrum / An Introduction To Agile Estimating And Planning

Our February Meeting will be on 2/10/2010 at the TIV 320 AB – Baerresen Ballroom and will feature Mike Cohn for both talks.
I’ve added PDFs of both presentations below.
You can reach Mike Cohn at http://www.mountaingoatsoftware.com

The address for the Tivoli Building is: 900 Auraria Parkway Denver, CO 80204-1852

Schedule

5:30-6:00 PM Refreshments and Networking
6:00-7:00 PM Getting Agile with Scrum
7:00-7:05 PM Short break
7:05-7:15 PM Announcements
7:15-8:45 PM An Introduction To Agile Estimating And Planning
     8:45 PM Door prize raffle

First Session/Basic Concepts

Getting Agile with Scrum

Scrum is one of the leading agile software development approaches. Over 70,000 people have become Certified ScrumMasters, attesting to the popularity of Scrum. Since its origin on Japanese new product development projects in the 1980s, Scrum has become recognized as one of the best project management frameworks for handling rapidly changing or evolving projects. Especially useful on projects with lots of technology or requirements uncertainty, Scrum is a proven, scalable agile process for managing software projects. This session will provide a quick introduction to Scrum, providing you with enough information to decide if Scrum could work for you and your projects.

Here is a link to the talk slide-deck:
http://www.denverjug.org.evohst.org/wp-content/uploads/2010/02/scrum-introduction-2010-02-10.pdf

Main/Featured talk

An Introduction To Agile Estimating And Planning

Planning is important, even for agile projects. Too many teams view planning as something to be avoided and too many organizations view plans as something to hold against their development teams. In this session you will learn how to break that cycle by learning and practicing skills that will help create useful plans that lead to reliable decision-making. You will learn about story points, ideal days, and how to estimate with “Planning Poker.” Both short-term iteration and long-term release planning will be covered. This session will be equally suited for managers, programmers, testers, or anyone involved in estimating or planning a project.

Here is a link to the talk slide-deck:
http://www.denverjug.org.evohst.org/wp-content/uploads/2010/02/agile-estimating-planning-2010-02-10.pdf

About Mike Cohn

Mike Cohn is the founder of Mountain Goat Software (http://www.mountaingoatsoftware.com), where he teaches and coaches on Scrum and agile development. He is the author of Agile Estimating and Planning, User Stories Applied for Agile Software Development, and the newly published Succeeding with Agile: Software Development with Scrum. With more than 25 years of experience, Mike has previously been a technology executive in companies of various sizes, from startup to Fortune 40. A frequent magazine contributor and conference speaker, Mike is a founding member of the Scrum Alliance and the Agile Alliance. He can be reached through www.mountaingoatsoftware.com.

Posted in Monthly Meeting | Tagged , , | Leave a comment

DJUG Meeting 1/13 – Matthew McCullough – Hadoop & Encryption Boot Camp on the JVM

This month’s talk will be Wednesday, January 13th at the TIV 320 AB – Baerresen Ballroom located at the Tivoli Center on the Auraria Campus.  Our speaker will be Matthew McCullough for both talks.

[ Thanks Matthew – the talks were great.  He’s given us the slides and source code examples from his talk and they can be found at the following link ]

http://ambientideas.com/blog/index.php/2010/01/denver-jug-hadoop-and-encryption-presentations/

The address is 900 Auraria Parkway Denver, CO 80204-1852

Schedule:
5:30 – 6:00 PM Pizza and Networking
6:00 – 7:00 PM First Session: Encryption Boot Camp on the JVM
7:00 – 7:10 PM Short break
7:10 – 7:15 PM Announcements
7:15 – 8:45 PM Featured talk on Hadoop

Featured Talk / Main Session

Hadoop: Divide and Conquer Gigantic Datasets

Summary

Moore’s law has finally hit the wall and CPU speeds have actually decreased in the last few years. The industry is reacting with hardware with an ever-growing number of cores and software that can leverage “grids” of distributed, often commodity, computing resources. But how is a traditional Java developer supposed to easily take advantage of this revolution? The answer is the Apache Hadoop family of projects. Hadoop is a suite of Open Source APIs at the forefront of this grid computing revolution and is considered the absolute gold standard for the divide-and-conquer model of distributed problem crunching. The well-travelled Apache Hadoop framework is curently being leveraged in production by prominent names such as Yahoo, IBM, Amazon, Adobe, AOL, Facebook and Hulu just to name a few.

Details

In this session, you’ll start by learning the vocabulary unique to the distributed computing space. Next, we’ll discover how to shape a problem and processing to fit the Hadoop MapReduce framework. We’ll then examine the incredible auto-replicating, redundant and self-healing HDFS filesystem. Finally, we’ll fire up several Hadoop nodes and watch our calculation process get devoured live by our Hadoop grid. At this talk’s conclusion, you’ll feel equipped to take on any massive data set and processing your employer can throw at you with absolute ease.

Basic Concepts / First Session

Encryption Boot Camp on the JVM

Does your application transmit customer information?  Are there fields of sensitive customer data stored in your DB?  Can your application be used on insecure networks?  If so, you need a working knowledge of encryption and how to leverage Open Source APIs and libraries to make securing your data as easy as possible.  Encryption is quickly becoming a developer’s new frontier of responsibility in many data-centric applications.

In today’s data-sensitive and news-sensationalizing world, don’t become the next headline by an inadvertent release of private customer or company data.  Secure your persisted, transmitted and in-memory data and learn the terminology you’ll need to navigate the ecosystem of symmetric and public/private key encryption.

About the Speaker:
Matthew McCullough is an energetic 14 year veteran of enterprise software development, open source education, and co-founder of Ambient Ideas, LLC, a Denver consultancy.  Matthew currently is a member of the JCP, reviewer for technology publishers including O’Reilly, author of the upcoming Presentation Patterns & Anti-Patterns book, speaker on the No Fluff Just Stuff tour, author of the DZone Maven & Google App Engine RefCards, and President of the Denver Open Source Users Group.

His experience includes successful JEE, SOA, and Web Service implementations for real estate, finance and telecommunications firms in addition to publishing several open source libraries.  Matthew jumps at opportunities to mentor and educate teams on how to leverage open source.  His current topics of R&D are Cloud Computing, Maven, Git, and Hadoop.

Matthew resides in Denver with his beautiful wife and 1.5 year old daughter, who are active in nearly every outdoor activity Colorado offers.

Posted in Monthly Meeting | Tagged , , , , | Leave a comment

End of year meeting with DOSUG and Adobe Flex User Group

We are having a shared end-of-year meeting December 9th from 6 – 9 PM at The Sports Book located at 1434 Blake St. in Denver.

Our sponsors are providing fun activities and we’ll have some door prizes.

Please RSVP by the end of the day on 12/2/2009 on the link below so we can plan accordingly: http://dugparty.eventbrite.com/

Thanks again to our sponsors – K*FORCE, TekSystems, Vaco, and Real Eyes and thanks to Jordan McCullough for taking some really great pictures, which I’ve enclosed as a gallery below.

Posted in Monthly Meeting | Comments Off on End of year meeting with DOSUG and Adobe Flex User Group

Slides: Building SOFEA Applications with GWT and Grails by Matt Raible

Here are the slides from the talk Matt Raible gave this week.

[slideshare id=2484656&doc=sofeawithgwtandgrails-091112101640-phpapp01]

Posted in Monthly Meeting | Tagged , , , | Leave a comment

‘Javascript and DOM Scripting’ Book Review

cover.cfmReview of JavaScript and DOM Scripting by Edward Young

I’m an experienced software developer but unfamiliar with Javascript, and this book was an excellent way to learn through example. It’s also a pretty good reference for javascript and DOM scripting, plus has some good introductory info on XHTML and CSS. I’m also a software engineer who appreciates and relies on good software tooling to help make code projects comprehensible, and manageable. The chapter on how to test and debug Javascript, showed how to install and set up firebug, and then how to use it to examine, execute and debug javascript applications. That chapter alone is worth the price.

This book is both a good how to manual (Nearly all the chapters start with “How to”), but is a great reference, with a 1 page brief contents and then a 10 page detailed table of contents.
This book is also not only a book on learning Javascript and DOM scripting, but also ensures that the reader learns the vital peripheral technologies alike XTHML and CSS, by taking the reader through the development of several interesting and useful applications over it’s 20 chapters.
This is my second Murach book and is also excellent. I highly recommend it.
Posted in Book Review | Tagged | Leave a comment

November 11th, 2009 Meeting

Location: Auraria Campus-Tivoli Bldg; Room: TIV 320 AB – Baerresen Ballroom

*** Free Pizza @ 5:30 ***
Main Session Speaker: Matt Raible
“Building SOFEA Applications with Grails and GWT”
7:15pm -8:30pm
BC Session Speaker: Panel, Q & A
“How to Become and Independent Consultant: Panel Discussion Q & A”
6:00pm – 7:00pm
Basic Concepts – Panel Discussion ‘How to Become and Independent Consultant: Panel Discussion Q & A’

How To Become an Independent Consultant: Panel discussion; Q & A This session explores the trials and tribulations of an independent consultant. How do you find contracts? Should you setup an LLC, an S-Corp or just be a sole proprietorship? What about health insurance and benefits? Are recruiters helpful or hurtful? Learn lots of tips and tricks to get your dream job and your ideal lifestyle. Ski season is coming up after all. 😉

Panel: Matt Raible, Tim Berglund, Matthew McCullough, James Goodwill

Featured Talk: Matt Raible ‘Building SOFEA Applications with Grails and GWT’

In early 2009, Matt participated in a major enhancement of a high-traffic well-known internet site. The company wanted to quickly re-architect their site and use a modern Ajax framework to do it with. An Ajax Framework evaluation was done to help the team choose the best framework for their skillset. The application was built with a SOFEA architecture using GWT on the frontend and Grails/REST on the backend. This talk will cover how Matt’s team came to choose GWT and Grails, as well as stumbling blocks they encountered along the way. In addition, we’ll explore many topics such as raw GWT vs. GXT and SmartGWT, the GWT-Plugin, modularizing your code, multiple EntryPoints, integration testing and JSON parsing with Overlay Types.

Speaker:
Matt Raible resides in Denver, Colorado, where he runs Raible Designs, a consultancy that specializes in open source Java frameworks and Ajax development. Matt has been surrounded by computers for most of his life, even though he grew up without electricity in the backwoods of Montana. Matt is an author (Spring Live, Pro JSP), active Java open-source contributor, and blogger on raibledesigns.com. He is the founder of AppFuse, a project which allows you to get started quickly with Java frameworks, as well as a committer on the Apache Roller project. Matt’s presentations can be downloaded from his website. Contact him if you can’t find one of his presentations.
Posted in Monthly Meeting | Tagged | Leave a comment

Slides: Test First, Refresh Second: Web App TDD in Grails by Tim Berglund

Here are the slides for the talk Tim Berglund gave this week.

[slideshare id=1861704&doc=testfirstrefreshsecond-090814112612-phpapp01]

Posted in Monthly Meeting | Tagged , , | Leave a comment

‘Java Servlets & JSP’ Book Review

murach_cover

Review of Java Servlets and JSP by David Madouros

I’m torn after reading Murach’s Java Servlets & JSP book, 2nd Ed. I read the first version when I was making the transition from mainframe programming to Java programming and found the information to be extremely helpful for getting up and running very quickly. With the authors’ assistance I had a database server, a servlet container, and a ‘hello world’ web app running within a couple of hours. On the other hand, reading the second edition as an experienced Java developer made me cringe. Ultimately, I have to side with the my experienced side. Especially when I consider how well the format of Murach books tends to make them canonical references and how easy it would have been for the authors to teach better practices.

The cover of the book makes at least three claims:

  • Get off to a quick start
  • Build professional web sites
  • Handle databases like a pro

Get Off to a Quick Start
The authors get off to a great start by helping the reader to download, install, some basic tools including a servlet container, a database server, and an IDE. They guide the reader with step by step instructions for installing both Tomcat and MySQL — bonus points for recommending the latest versions of each. However, I’m stumped by their choice of IDE — NetBeans — and their claims that it is a top notch IDE. Technically, I suppose it is third, but in my experience it’s a distant third well behind Eclipse and IntelliJ.
Build Professional Web Sites
I take issue with much of the material presented in the book and how it lends itself to creating ‘professional’ web sites. For starters, the authors provide an excellent introduction to HTML. Too bad XHTML is the current standard. The authors state that they’d rather discuss HTML than XHTML because they feel that XHTML is too difficult to teach in a single chapter. I thought this was ridiculous, but assumed they would at least promote well-formed HTML — boy, was I wrong. They consistently use of malformed HTML in their examples and go as far as mentioning the lack of unquoted attributes as a good thing! This is bad, but it gets worse because a couple of chapters later they have to discuss well-formed HTML before they can teach the reader how to use JSTL.
The authors discuss both JSP and Servlet technologies in separate chapters and demonstrate how to create ‘complete’ websites with each technology. I suppose this is necessary to teach the underlying technologies, but I wish that the authors had down played their use a little more. They do eventually discuss MVC (model 2) and state that it is a better solution, but they take the easy way out by saying that sometimes straight JSP and straight Servlet implementations are except- able.
My final grumble about creating professional websites has to do with the chapter on custom tags. While using the classic tag mechanism was a pleasure (not!), the simple tag mechanism is exactly what it claims to be — simpler — and much more straight forward. However, the authors only mention the classic mechanism — no mention of SimpleTagSupport and no mention of tag files. Long live SKIP_BODY!
Now for the good stuff… My favorite chapter in the entire book has to be chapter 9 because they give a high-level summary of JavaBeans and JSP tags stating that they are outdated and rarely used anymore — replaced by JSTL. The only reason the authors even mention them is that the reader may need to know about them to support legacy applications. I wish the rest of the book gave more of these disclaimers.
Finally, the authors really do a good job of describing the technologies. I just wish that they’d promote best practices and shun bad ones more often.

Handle Databases Like a Pro
The authors give a good overview of SQL and then move on to coding straight JDBC code. However, they choose to close the connection inside of the try block rather than follow the best practice of closing the connection in the finally block. Also, they mention the differences between Statement and PreparedStatement and seem to lean towards Statement unless there is a need to execute the same statement repeatedly, but throughout the entire discussion there is no mention of cross site scripting prevention as one of the benefits of the PreparedStatement (not that PreparedStatement completely eliminates the threat of XSS, but it greatly reduces it).

Summary
In summary, this book is a disappointment. The subject of web development involves many technologies: CSS, HTML/XHTML, Java, Servlets, JSP, JSTL, EL, SQL, Http, and Javascript; and this doesn’t include the various frameworks (Struts, JSF, Spring, Hibernate, GWT, etc.) The authors make a valiant effort to cover all the base technologies, but there’s just too much to cover in a single book and be able to make the claim that the reader will have all the skills necessary to create professional websites. This book barely manages to cover the basics. I give the authors an A for effort, but a D for execution. Having said that, if you don’t understand any of the technologies (other than Java) and read the book with the understanding that this is just the beginning, this might be the book for you.

Posted in Book Review | Tagged , , | Leave a comment

‘Modular Java’ Book Review

Review of Modular Java by Johnny Wey cwosg

“Modular Java: Creating Flexible Applications with OSGi and Spring” provides a great introduction to those either curious about OSGi or wanting to get more out of their existing OSGi workflow using the Spring Framework. Craig Walls, author of “Spring in Action, 2nd Edition”, opens the book explaining why OSGi matters and how it can be used to enhance the modularity and maintainability of those application stacks containing multiple and complex moving parts. He not only serves up a great introduction to the technology, but also directs the reader to several tools that make OSGi development significantly easier.

In the second portion of the book, Craig throws Spring into the mix and demonstrates how the power of Spring Dependency Injection, autowiring, and the Spring MVC web framework can not only run seamlessly in an OSGi container, but also remove a large portion of the burden that OSGi’s API can put on application development.

Finally, Craig spends some time describing how an actual deployment might look in a production environment using both Tomcat and Jetty and provides optimization tips that make the process as painless as possible.

The book itself is logically organized and Craig’s writing style is approachable and easy to follow. All the example source code is available online, and Craig demonstrates how to install OSGi packages using both Eclipse Equinox and Apache Felix, leaving the final OSGi container decision up to the preference and requirements of the project. The sample application Craig uses to demonstrate the concepts in the book is surprisingly fun and useful, and the book contains some wonderful appendices that function as a great reference for current and future development projects. The book is a relatively quick read but surprisingly complete.

For someone looking to get the most out of OSGi or wanting to find out what all the “buzz” is about, Craig Walls’ book is an outstanding choice.

Posted in Book Review | Tagged , , | Leave a comment