Wednesday, May 5, 2010

NFJS 2010 - Northern Virginia Software Symposium II

This is my last post about the No Fluff Just Stuff Software Symposium here in Reston, VA. Sad to say I didn't get any of the 3 iPads! I did see my name scrolling down for the last iPad (the most expensive model!) but the system had to pick someone else's name just 2 or 3 positions from mine! Oh well... guess I am not destined to get one, since I am not gonna buy one and my luck isn't gonna get me a free one either. This is something else I might consider buying, if it ever sees the light of day Notion Ink Adam.

Anyways, the symposium was amazing - Jay Zimmerman put together a great set of speakers and enough varied content for everybody. Thanks Jay! These are the sessions I attended, along with my comments:

Click on the "Read more" link below to check out my notes on Friday's presentations.



Friday


Implementing Evolutionary Architecture - Neal Ford

Testing the Entire Stack - Neal Ford

Smithing in the 21st Century - Neal Ford

Like I said on my last post, I really like Neal's presentations. He described REST in detail, and how we can use it to keep systems loosely coupled. Also, he gave some great recommendations on tools and strategies for testing different aspects of common web and desktop applications.

What Stops You From Delivering? - David Hussman

Discussed about ways to find your process bottlenecks and how to deal with them.


Saturday


Pragmatic Architecture - Ted Neward

Discussed about architecture and how oftentimes we either under or over-architect systems.

It is quite common in the J2EE world to find teams building systems using so many different design patterns just because they want to use it, not because it is the easiest / best way to solve the problem. In the other extreme we have teams that just go coding stuff without minimal or any architecture discussion.

In the end architecture should be defined at a high-level before we start coding things, otherwise it will be defined with much less control and may not end up being quite what you expected.

Architect for Scale - Michael Nygard

Software Architecture for the Cloud - Michael Nygard

I am a big fan of Michael since I read his book "Release It!: Design and Deploy Production-Ready Software (Pragmatic Programmers)
". His presentations focused on architecture for systems designed to handle volumes orders of magnitude higher than what I am used to. It was really interesting to glimpse on what kind of problems we may see soon, with more and more people using computer systems, and what kind of solutions we are using today to support it with high availability and performance. He described techniques such as process parallelization, architecture partitioning (sharding) and content delivery networks (e.g. Akamai) to support scalability.

Building RESTful Apps with SpringMVC - Craig Walls

He demonstrated a single SpringMVC-based web application with support for both browsers and REST web service clients. It was a good demo, I will try that later.

300 Sessions

This was cool, each presenter got only 5 minutes to present a topic. I wish they had shared these PPTs too.


Sunday


Cloud Computing - Rohit Bhardwaj

This one was really interesting - Rohit described and demonstrated how we can use Amazon EC2 and S3 as a low-cost approach for on-demand infrastructure services. He also demonstrated a simple Google AppEngine project, and compared the costs and specifics of each major player in the cloud computing world. It might be just me but I didn't know Google gave us free resources for our projects in Google App Engine! If you just want to test out an idea you can setup a virtual environment in no time, and as long you don't use lots of resources (up to 500MB, up to 5 million page hits per month, limited CPU use etc) you can set it up for FREE!

Google's offer is free but limited: no database (you have to use BigTable instead), not all parts of Java are supported (e.g. no Thread) etc. They basically hide the servers from you, so you can focus only on the application side.

Amazon's offer is not free but cheap, and they give you control over the infrastructure. You can try out different server architectures, create server templates etc without buying any physical infrastructure. This is great for temporary needs, like a performance test where after the test proved a set of hypothesis it can be discarded.

One approach is to build and test your app in Google, and then migrate it to Amazon or to your in-house infrastructure. As long you don't build close ties with Google's infrastructure that shouldn't be too complicated.

Now that I have cheap infrastructure I just need to have the killer idea on how to use it to make tons of money! Ideas anyone? Please? :D

Enter the Gradle - Ken Sipe

Gradle is like a new Maven, a project build system. From this presentation I got that it is still not mature yet for my purposes (though big projects are already using it) but it made me more interested in Groovy, the language used to build Gradle. I will definitely spend more time learning Groovy and Grails in good part because of this presentation.

Maintaining Source Code Quality - David Bock

David described how we can easily include project analyzers to determine code quality and use it as metrics towards better quality. Great stuff, but I used most of it on previous projects (PMD, FindBugs, CheckStyle etc). I did learn about some new source code analyzers though. He also pointed out the importance for enforcing a project-specific code style - it is not about cosmetic preferences, but to simplify merges in the source code versioning system.

Programming Clojure - Aaron Bedra

What else can I say about this one? I think I twisted my brain hahaha... really, this was the last session I attended in the conference, and the most complex one. Aaron had to consolidate a 4 hours presentation into just 1.5 hours, and while I think he did a good job at it describing Clojure's syntax my opinion is that it just made people want to avoid it.

No comments:

Post a Comment