Sunday, March 6, 2011

No Fluff Just Stuff: Minneapolis Summary (Spring)

The No Fluff Just Stuff conference was back in Minneapolis. Here is a brief recap of the sessions I attended:

Friday Sessions

NoSQL Smackdown!

Key points:
  • NoSQL is a set of different approaches to storing and retrieving data
  • Cassandra:
    • Implementation Language: Java 6
    • Data Model: BigTable
    • Advantages: Highly scaleable
    • Deployments: facebook, twitter
  • MongoDB:
    • Implementation Language: C++
    • Data Model: JSON
    • Advantages: Simple
    • Deployments: sourceforge, bit.ly, shutterfly, Etsy

I like the fact MongoDB persists JSON. I implemented a similar solution on a recent mobile application where JSON objects were persisted on the client database. This solution is simple, requires minimal code, and provides great flexibility. If the domain model changes the database requires ZERO changes!



Pragmatic Architecture

Key points:
  • Architects will be much more effective if they have a solid understanding of the business domain.
  • A good architecture makes it easy for developers to make "right" decisions.
  • Avoid architectures that were designed with Resume Driven Design (RDD).
  • Architects must be familiar with all technologies.
  • Prefer full-time architects or architects that at least see the consequences of their design after deploying to production.

Over the past twelve years I have observed that the most effective architects code at least 49%. The more the better. If this isn't the case they simply won't be effective long term. The best architects produce working code in addition to their design artifacts.



Introducing Spring Roo: From Zero to Working Spring Application in Record Time

Key points:
  • The rapid scaffolding is intriguing.
  • The de-Rooing is convenient when you need to remove the Roo footprint.
  • I particularly like the ability to replay your commands for project setup. Extract the Roo scripts and replaying them for the next project can offer rapid productivity.

Roo makes sense for rapid prototyping or if you need to build an application in 24-hours.



Saturday sessions

HTML5: The JavaScript Parts

Key points:
  • Prefer document.querySelector() over document.getElementById() for much improved performance gains.
  • By default, navigator.geolocation is not enabled in Chrome. The user must explicitly enable it.
  • Modernizr can help with progressive enhancement by detecting browser feature availability and reacting appropriately.
  • Web Workers are not supported on mobile browsers:(
  • When can I use... shows feature compatibility by browser.
  • findmebyIP shows feature support for your current browser.

I predict a strong enterprise push for mobile web development starting this year. Mobile Web is device agnostic and jQuery Mobile will simplify the adoption. Even facebook has admitted to the pain, duplication, and cost of supporting five separate native apps.



Developing Social-Ready Web Applications

Key points:
  • Enable twitter integration with @Anywhere
  • Dynamically search for tweets from twitter's restful API: http://search.twitter.com/search.json?q=nfjs
  • Dynamically find the friends of a twitter user: http://api.twitter.com/1/friends/ids.json?screen_name=<username>
  • Enable facebook integration with their Social Plugins
  • Dynamically retrieve the user info for a facebook user: https://graph.facebook.com/<username>
  • LinkedIn's developer widgets

The greatest benefit of Spring Social is its simplification of SSO integration.



Git Going with Distributed Version Control

Key points:
  • Git is 10-100 times faster than Subversion.
  • Git can bisect bugs or find the commit that broke a test.
  • Git can search (grep) the entire revision history without checkouts. For example, I can find a particular commit where a line was added.
  • Git persists the versioned artifacts to the file system as 40 character hashes. This approach is very lightweight and provides extremely fast compares.
  • Unlike Subversion, Git does not pollute the source directories with version control meta data.

I have been working with Git for several weeks. Matthew's DZone Refcard about Git has also been a very valuable resource. Git was my favorite session so far!



Sunday sessions

jQuery: Ajax Made Easy

Key points:
  • jQuery has a small footprint, the code is clean, it has good documentation, has excellent CSS selector support, and it's the most popular.
  • If you only need the CSS selector support it's available in Sizzle.

If you want read well written JavaScript it is worth your time to checkout jQuery's source code.



Going Mobile with jQuery

Key points:
  • 50% of population will have smartphone by the end of 2011
  • Tablet support is now available
  • Favorite quote: "Using an iPhone during a meeting makes you look like a proactive employee." --Nathaniel Schutta

I have been working with jQuery Mobile for several months now and it is a simple framework. The team is extremely eager to support nearly every device. After spending time learning Git, I am finally setup to help contribute to the project. Now I need to find the time to focus on a task, defect, or test! In addition to jQuery Mobile there are also mobile web frameworks available from YUI, jQTouch, and Jo.



Code Craft

Key points:
  • We need to spend more time reading code.
  • There is nothing wrong with simplicity! Simple code == good
  • If you are having difficulties with code reviews try Crucible.


Mobile GUI Frameworks

Key points:
  • jQTouch is the smoothest mobile web framework on the market today. However, only iOS is able to reap many of these benefits.
  • Jo is a new mobile framework I definitely want to look at closer. It's lighter weight than jQuery Mobile and the end user codes primarily in JavaScript whereas jQuery Mobile is more markup driven.

No comments :

Post a Comment