Tuesday, July 21, 2009

Ann Arbor Give Camp 2009

I've just recovered from the 2nd Annual Ann Arbor Give Camp and wanted to thank everybody that participated this year. We had around 60 developers help 18 non-profits this year, like the rest of economy we did more with less compared to last year's 15 non-profits. I also think all the groups were much more successful this year, having last years experience really helps! If you aren't familiar with Give Camp – in essence; Architects, Developers, DBAs, and Designers get together for 48 hours (Friday 5pm until Sunday 5pm) and either build a new web site or software application for a non-profit with the hope of allowing them to be more efficient and give them the technology and support that they couldn't afford to purchase.

My group this year was awesome; I got to work with three great teammates – Lauren Colten, Larry Siden and Mike Davidson. Right from the start we all got on the same page and really understood what our non-profit, Lend a Helping Hand really needed. As for a our non-profit, they were amazing too – Michelle Paulp founded the organization in 2002 and has helped so many people over the years to raise money to pay for out of pocket medical costs. We started off the night with some American Legend Pizza (Thanks for sponsoring Dominos!) and then discussed her goals and hopes for the website until after 11pm, it was amazing to watch the team understand so quickly what we needed to do and develop a plan to get it working in less than 48 hours. Our team did an awesome job – we probably did over 4 weeks' worth of work in just 48 hours, including design, development and deployment!

Our project was to convert their existing web site into a content management system to help Michelle update her site and provide more resources to people, without having to spend lot of time writing HTML. We also wanted to make the site much more interactive by allowing people to comment on the site, provide a blog, make it easier for the family members of the people they help to get organized and raise as much money as possible. We chose to build the new site in Joomla, which is an open source content management system and really made everything much easier. We only had to spend a minimal amount of time getting the look and feel right, and could focus on getting the all extensions and content in place so we take the site live on Sunday.

Our team even got in the spirit and lent a helping hand to the other teams using Joomla and gave all the non-profits that would be a using Joomla an overview of the software and wrote some documentation to hand it over to them. Joomla Hand Over: Getting Started Guide

I also wanted to thank Matt from Verio for coming out to support us again this year – having someone onsite to help get all the web applications up and running was a huge benefit. We are hosting Lend A Helping Hand on Verio and didn't have any issues getting the site running and transferring the domain over. You guys are awesome and I hope to see you again next year.

Speaking of next year, I think we are going to come back bigger and stronger than ever next year. I'm very excited to work with the team that put it on this year. Great job Mike, Josh, Jennifer, Patrick, and everyone else that helped! And thanks again to all the sponsors (Microsoft, Verio, Domino's, TechSmith, SRT Solutions, Devexpress, Telerik, O'Reilly, Wrox, H&H Consulting, Zen, redgate and bottle docker)– it couldn't happen without you!

Friday, November 07, 2008

PnP Final Day

The last few days have been overwhelming - sitting and absorbing all the content really takes everything out of you.

Day 3 covered Architecture - Don Smith talked about investing in data access guidance, Jim Newkirk explain that pretty much everything is evoluntary design and Rocky Lhotka talked about architecture choices and frameworks.  A tremendous amount of content - it is amazing how much it can either shape what you think or make you feel much more comforitable with the choices you have made.  Then at night Microsoft Research talked about some interesting research areas in Software Engineering.

Day 4 focused on the Client - and this was one of the days that I was most excited about.  My current project at work has a big focus on the usablity of the application - performance and scalablity is the official motivation for it, but I think the real hidden story (and will be the last tripod of the project's success) is going to be the usability of the application.  They discussed Prism and Silverlight which are two interesting approaches.  We have currently built applications using the Smart Client Software Factory (SCSF) and had great success with it  and the Prism model looks much cleaner and sleaker. You aren't quite forced to use every pattern that p&p put in SCSF.  I like being able to choose where and when I want to apply things.  And Silverlight is just an awesome idea - but is still too bleeding edge for mainstream development yet (at least for us).  I haven't spent enough time with Silverlight yet - so this might just be part of the learning curve that I'm in.  Time will tell.

Today, we wrapped up with a look a the future of patterns and practices and keynote by Scott Guthrie.  It was a great session - very interactive and we got to see how dedicated they are to developer platform and solving the real issues we have.


All in all, it was an awesome conference - I highly recommed it.  Congratulations to Keith for another great conference.

Also - check out the flickr photo set from the conference...

Tuesday, November 04, 2008

PnP Day 2

Today started with a keynote by Kent Beck - it was pretty high level but did a good job summarizing some of things that I now realize that were happening but didn't really acknowledge.  For instance he talked about some Strategies; such as Leap, Parallel, Stepping Stone, and Simplification.  Depending on the project size/scope and resources we use the 1st three heavily.  Some projects we make a drastic leap forward and feel the pain of starting over, others we start in Parallel and have to split resources and finally we cherry pick features to update or move to better architectures or designs.   Each has advantages and costs, but we did it based more on gut feeling than acknowledging the costs. I will have to think more about what strategies we use without acknowledging their presence. 

Kent Beck Keynote - Patterns

Then Peter Provost did a great presentation on Architecture without Big Up Front Design.  He also demoed the VS2010 Architecture Explorer.  It was very cool to see the OO class diagrams and the sequence diagrams get reversed engineered from code.  This is huge tool for code reviews and getting started with existing code.  Sometimes things change so much in just a few months that getting comforitable is much harder then you would expect.  Not to mention the huge help in finding sensitive areas of the code.  Everyone will be asking how promiscuous your objects are once you can actually graph it.

Peter Provost Architecture Slide

Before lunch we heard about Distributed Agile which is interesting and challenging, but since we do all development in-house at one location it really doesn't help us.

During lunch Ajoy Kishnamoorthy lead a panel about Tools for Agility.  It was interesting to hear what Kent Beck, Sam Guckenheimer, and Jim Newkirk thought of the tools.  And lunch was really tasty...

After lunch Stephanie Saad talked about how Microsoft uses TFS.  There dogfood numbers outrageous.  It was interesting to hear about the different development cycles that Microsoft uses and how customized TFS is for them.  We think scaling development with 50 devs is hard and they are managing the Windows team with 2000 devs.  This really proves that you have to find what works and always look for process improvement.  It was really good presentation.  The new Excel integrated tracking speadsheets are going to be a huge plus for us - we love to track data.  This session was very timely for us, since we are just now adopting TFS fully.  We are currently working on our transisitons plans but some of our projects are ready and will be moved by the end of the year (keeping fingers crossed).

Stephanie Saad TFS at Microsoft - Build Quality

3 More sessions to go today - very interesting and a great conference.

Day 1 Wrap up

Brad Wilson gave a talk about ASP.NET MVC and Dynamic Data - I like concepts they are proposing but I think it's still a bit young for real usage in a large project like we do at New World.  We did a prototype using ASP.NET MVC and I like the structure and code seperation - it's an amazing step forward and makes things much cleaner - but really felt like it was still being forced.  We can get some of the same benefits using MVC and MVP patterns but without the new bits.  And I do think if I was still consulting it would be something that I be using as a starting point and then pulling back as needed.  As this gets more mature I think it will be extremly powerful.

Next Glenn Block gave a presetation of the Managed Extensibility Framework - I really like this project since we already have a rolled our own version of this to handle the different state field reporting solutions.  It works for us since it give us nice seperation - but still makes the product feel fully integrated.  I'm excited to see how the different teams adopt this.  I know it is something that we will be looking into.


Monday, November 03, 2008

PnP Sessions Day 1

Continued PnP Summit Coverage
The second session was Fundamentalist Functional Programming with Erik Meijer, it was a really interesting explaination of the side effects of lanaguages and how the complier doesn't really know what the expecations are.  The idea that 'code can be data' and 'data can be code' really can cause the some strange side effects - this is most apparant when running the same block of code in C# or Javascript.   

Functional Programming

One of the basic examples he gave was that DateTime.Now.Ticks in .NET is treated like a function that returns a long value - but how many functions do you create that takes zero parameters and never returns the same thing? The idea is stop thinking that it returns a standard long value, but returns the next long value in collection of long values (the theory is that a side effect is occuring causing the value to change).  It was an interesting session and makes me want to learn more about pure functional langagues like Haskell or F#.

The next session was Application Architecture Guidance with Javed Sikander and J.D. Meier.  

Architecture Guidance
I've always thought that the guidance was pretty impressive but really hard to keep a project going under it.  But they explained that you can break it down and focus on the areas you really need to worry about first and then dig deeper later.  The best place to start is with Fast Tracks and then review the Best Practices section. 

After lunch we got an overview of the EntLib 4.1 and Beyond release with a focus on Unity and how it interacts with the rest of the libraries.  I really like Unity and concept of Dependency Injection for complex applications.  We have so many 'unique' customer needs that we have to provide some seperation of concerns and abstract the implementations to support them safely.  It will be interesting to see how this starts to blend/merge with the Managed Extensibility Framework which is a topic this afternoon.

Half way through Day 1 and 4 more to go. 

PnP Conference Day 1

I'm at the Microsoft patterns and practice Summit in Redmond this week and am really excited about learning some new strategies for architecture and building better products.

Jeff Teper started off the day with a Keynote about Developing for SharePoint. Almost the entire room raised thier hands about using SharePoint but hardly anyone is doing development for it.  He focused the first half of the talk about treating SharePoint development like any other software project and following a proper development lifecycle and invest in learning about the system (SharePoint Guidance).  It's both an applicaiton and development platform, so it's complex enough that you can't just code.

He showed a couple of great SharePoint sites that have been customized to give a entire new look and feel.  The two great ones are Hawaiian Airlines and Viacom. We've used SharePoint to store documents in our Mobile Computing solution, this saved us from having to build a front end to manage the documents and dealing with versioning and other development tasks.  We aren't using all the features, but you have to start somewhere.

They wrapped it up with demo a Silverlight and Sharepoint together, basically they just created a new WebPart and manually added a new Silverlight control.  Then you can create the Silverlight control just like normal using WCF services and SharePoint Web Services to displaying the data as you need.  It works pretty well since you get a rich applicaiton feel to it, but can easily deploy it to a standard SharePoint site and still get all the nice layout  and customization features in SharePoint.

One of the best tools that we have looked at is the LINQ to SharePoint project on CodePlex- it makes development much easier.  From an ISV standpoint - I think the deployment stories are still difficult compared to plain old installers that are customers are used too, but the learning curve isn't terrible and we have had a lot of success so far.

Sunday, July 13, 2008

Giving Back - Code Style

Spent the weekend in Ann Arbor helping to build a new web site for Center Stage Productions.

Center Stage Productions is a theater company geared towards young actors in elementary school through high school. Their goal is to provide a safe, fun environment for kids to learn acting and voice skills while producing musicals and more!

Check them out at http://www.centerstageannarbor.org/

Thursday, June 19, 2008

Amazing World...

The world today is so different than even 1 year ago. The fact that I get live updates from a remote controlled rover on Mars - wait, let me repeat that - yes, real-time updates from Mars - from a remote controlled robot on another planet - is amazing.

Does it solve world hunger/world peace/the environment - not all. But it gives me a glimmer of hope that if we choose to solve it, then it's not impossible. We just need a reason to do it - that fact that we need a reason other then the obvious is the real problem...

Oh, yeah - Ice on Mars was just reported... Ice Today - Intelligent Life Tomorrow...

Tuesday, April 01, 2008

Still Can’t Decide Between XP and Vista

Interesting article on lifehacker on creating a slimmed down version of XP. I still can't decide if I want to try Vista on my P4 2.5 GHz box. It doesn't seem like it would be worth it and with hearing the good things about XP SP3 I'm guessing that's how I'll go.