Miles to go …

June 16, 2010

Uber Conf 2010 – Day 3 Report

Filed under: general — arungupta @ 11:00 pm

Day 3 of Uber Conf 2010 (Day 2 and 1), again, started with a great run with fellow attendees – 10 miles in 1:15:22 with an average pace of 7:28 minutes/mile. Here is the speed-vs-elevation chart:

And complete details about the run are available below:

After a mentally and physically exhausting day, lets see how many runners show up for the run tomorrow morning. I’ll try to be outside the lobby by around 6:30 am-ish.

Attended a 3 hour Scala for Java Programmers Workshop by Venkat and extensive notes + code samples on that are available here.

The next interesting talk I attended was on Emergent Design by Neal Ford and here are the key points:

  • Emergent Design is about finding idiomatic patterns (technical and domain) in your code that already exists
  • Architecture is stuff that’s hard to change later – e.g. Language, Web framework. You write code on top of that framework and is the Design element which can be easily changed.
  • What is software design ? More details on
  • There are known unknowns and there are unknown unknowns – just like software.
  • Things that obscure emergent design: nature of complexity (essential and accidental),technical debt,rampant genericness
  • Emergent design enablers – TDD, Refactoring to remove technical debt, harvesting/cultivating idiomatic patterns
  • Use testing as a design tool, design will emerge from tests, will have better abstractions and less complexity
  • Reduce your Technical Debt by writing simpler code

I attended part of the Hudson Workshop and caught some part of Pragmatic Architecture Workshop.

Ted mentioned in his talk about three categories of knowledge:

  1. Things you know
  2. Things you know you don’t know
  3. Things you don’t know what you don’t know

The goal is to move maximum amount of things from Category #3 to #2 and then from #2 to #1.

Attended another talk on How to Approach Refactoring by Venkat and here are the key points captured:

  • "Refactoring: genuine desire to improve the quality of your code and design in it" and it keeps you agile
  • Write a little code, make it better, write a little code, make it better, … – evolutionary or emergent design leading to agile
  • Hardest part in refactoring & unit testing: slow down and take small steps
  • Commenting the code during refactoring is like leaving a dead rat on the table, that’s what SCM is for
  • We fear to fail, the more we fail in small steps the more we succeed in bigger steps – go refactor your code and make it agile
  • Simplicity, Clarity, Brevity, Humanity – best principles to design and refactor code
  • Integrate more often and its less time consuming; Integrate less often and its more time consuming
  • Principles

    • Check in before you start refactoring
    • Rely on automated tests
    • Reduce, not add, code when refactoring
    • Follow the KISS (Keep It Simple Stupid)
    • Keep it DRY
    • Make code self documented, let the test be the documentation
    • Write readable code
    • Check in frequently, take small steps
    • Keep code at one level of abstraction

The evening concluded with a nice party and a wonderful magic show by Michael Carducci. Enjoy a short video of Jay "trying" to perform a magic trick:

Here are some pictures captured from earlier today:

And then the evolving album:

Technorati: conf uberconf denver refactoring design software architecture

Share and Enjoy:
  • Print
  • Digg
  • Sphinn
  • Facebook
  • Google Bookmarks
  • DZone
  • StumbleUpon
  • Technorati
  • Twitter
  • Slashdot
Related posts:
  1. Uber Conf 2010 – Day 4 Report – OSGi/Java EE in GlassFish and Getting Started with Clojure
  2. Uber Conf 2010 – Notes from Scala for Java Programmers Workshop
  3. Über Conf Day 2 Trip Report
  4. Über Conf Day 1 Trip Report
  5. Day 2 – Ruby Conf India 2010 Trip Report

No Comments »

No comments yet.

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress