Powered by Twitter Tools.

April 2006
M T W T F S S
« Mar   May »
 12
3456789
10111213141516
17181920212223
24252627282930
Chris Donnan

Create Your Badge

Chris Donnan : Programming – Brooklyn Style

software, trading, family, fun

Outline for Spring Framework presentation

I am planning to do a Spring Framework (.net, java)seminar at the new Finetix office. The general gist is that I would like to cover the .net and java implmentations and I would like this to be open to the public. I already spoke to the Spring.net folks and they will make a post when I have a date sorted out. I imagine I can get the original java based Spring folks to post as well. Anyhow – I was asked to put together a general overview – this post will cover my initial thoughts. I hope that I can comple one of the folks in the Finetix office (perhaps a particular collegue that spent the past serveral years @ sun) to do the Java portion of the chat – while I will do the .Net portion. Below are the .net relevant thoughts I have so far. If one of the other guys will not do the Java chat – I surely will do it.

  1. Intro to Inversion of Control
    1. compare and contrast vs service locator
    2. The importance of seperating interface from implementation
    3. Eliminating the need to pass references through classes that should not need to depend on them
  2. Defering singleton-ness decisions from implementation – when you can – INTERFACE BASED SINGLETONS
  3. How IoC relates to testability
    1. Unit test framework (NUnit)
    2. Mock framework (Rhino Mocks)
  4. Spring general components overview
    1. Core Container
      1. object factory
      2. initialization method
      3. getting properties off of objects in spring
      4. prototype vs singleton
    2. AOP – basic intro
  5. Setter vs Construction Injection
  6. A demo of Spring for implementing a large strategy pattern implementation (.net based)
  7. The need for service locator in UI applications, Windows Forms, Swing UIs
  8. Touch on Copeland Ruby example IoC container, PicoContainer, MicroKernel/ Windsor, etc.

That is about it – anyone with thoughts – put em out there.

-Chris


You can leave a response, or trackback from your own site.



Interaction Design/ UI Design

Aah – I spend so much time trying to make the Presentation Layer of my applications as ‘thin’ as possible – one might think that I believe it to be unimportant. Alas- I believe the opposite is true. While I think of myself as sort of an enterprise software guy – I think that end users CARE about the usability of their software. 9 times out of 10 – there are non-technical end users for my software. These people have some goals. They try to meet these goals by doing some tasks. The ability for the users to understand how to accomplish these tasks to meet their goals is what matters.
Since I tend to believe that the UI is actually very important for software applications – I tend to think about it a lot. I have spent lots of the time on the server – building web services. I have spent lots of time on the server building servlet like services. I have spent lots of time in databases. I have spent lots of time building web UIs. I have spent lots of time building Windows Desktop App UIs. I have had to build service daemons, agent like thingys, and all things in between. All of that said – end users care about their ability to get their goals met and about not being made to feel dumb.

I DO think that prototyping UIs is a good plan. I do think that making the UI as SIMPLE and CLEAR as possible is very important. I DO NOT think that putting zillions of rarely used features into UI applications is useful. I DO NOT think that this is at all ‘hard’ I just think it needs to be considered. Anyhow – here are a few decent links to read some tidbits about designing for usability. Much of this is ‘web geared’ but do not be thrown by that – it is all relevant in any UI environment.
Sites
welie.com
designinginterfaces.com
Yahoo! Patterns
asktog

Books
the design of everyday things
the inmates are running the asylum
user interface design for programmers

Enjoy!

Chris


You can leave a response, or trackback from your own site.



New Spring.Net release

New SpringFramework.net release v 1.0.2.

  • Support for .NET 2.0
  • Support for .NET 2.0 Generics
  • A new object expression language
  • Method Injection functionality
  • AOP AutoProxy functionality
  • Fix ResourceSetMessageSource not falling back to base resources
  • Fix parent objects not being referenced via their aliases in child object definitions
  • VS.NET 2005 style API documentation

As an avid daily user of Springframework.net v1.0 – I am glad to have the method injection and the AST based ‘object expression’ stuff would have been useful. While working on Stuck ObjectBinding – we used the Springframework’s (now deprecated) ObjectNavigator. We had to put a layer of abstraction above it to make it workable – I imagine the new ‘object expression’ framework in spring in combination with some newer databinding stuff would have come in handy. I have also been doing lots of parsing work for Hydrogue – my C# to java parser written in Ruby. The whole AST parser thing is deep and interesting. These days – most folks (the spring.net folks included) are using Antlr a generalized lexer/ parser toolkit. Interesting to say the least. I however have gone the other way … for now.

I will update as I get into the latest stuff from the Spring.net contingent. I am planning (and typing up a post in parallel to this one) a Spring seminar @ the new Finetix offices. I guess this is some new fuel for that fire.

-Chris


You can leave a response, or trackback from your own site.



Welcome a few new Finetix folks

Always good to see new folks on the team.

Mike Roberts – Welcome to NYC :)
Chris Shain – I think we like some similar music..

Welcome on board!
-Chris


You can leave a response, or trackback from your own site.



Get rid of your code – 37 Signals “Get Real”

Here is a GREAT quote.

If programmers got paid to remove code from sofware instead of
writing new code, software would be a whole lot better.
-Nicholas Negroponte, Wiesner Professor of Media Technology at the
Massachusetts Institute of Technology and founding chairman of MIT’s
Media Laboratory ( from And, the rest of the (AIGA Conference) story)

Based on all the code purging that a particular collegue of mine and I have been doing lately – this quote just stood out to me. We have been throwing out the bad, ugly, marginal etc – in favor of LESS code – done better.
This quote is quoted in 37 Signals (of RoR fame) Get Real – interesting read moreover. It covers your basic agile principals – just not really branded as ‘agile stuff’ but 37 Sigs general guide to success developing WEB APPS.  This PDF only book generally describes how small teams, delivering iteratively, being lean can do well. This is the agile song – said well by a good group of guys. I give Get Real the thumbs up. Nothing revolutionary – but it is a decent read.
-Chris


You can leave a response, or trackback from your own site.



Ever want to just look at all the events etc in your WinForms app?

Well – here you go – Managed Spy++. All the more interesting; you can open your running app – and modify properties – just like you would in visual studio:

Pretty impressive. We have been in need of this tool! So – all the more reason – to .net 2.0 ! The MSDN article also goes into some detail about Memory Mapped files for the implementation of ManagedSpy++. All interesting.

-Chris


You can leave a response, or trackback from your own site.



IoC, Dependency Injection for Ruby

Well – After looking at a few other Ruby IoC containers – I am comparing Needle and Copeland. My thought is currently that Copeland feels more comfortable in general. It seems to offer much of what Spring offers from the ‘core container features’ to some AOP type features as well. That being said – I feel the need to try Needle a bit more as it seems less familiar to me (sort of reminds me of PicoContainer). This goes to one of my core ideas that I try to love by:

If you are in your zone of comfort – you are NOT learning.

I will update as I dwindle down to the essentials of daily use with these containers.

-Chris


You can leave a response, or trackback from your own site.



Please … NO! … Oracle Linux Distro, perhaps eat a Suse for lunch

Oracle Looks At Buying Novell AND/ OR making their own linux distro! I am not really a Novell fan – but a Suse fan I am. I would hate to see Oracel eat and destry Suse. Oracle – greate database product (a lil’ pricey friends) but great product. Do not try to make OracleWindows (some linux distro they embrace and extend into Oracle OS).
-Chris


You can leave a response, or trackback from your own site.



Pragmatic Programmers 10 Part interview

Here is a link that has all 10 parts of an interview with the Pragmatic Programmer guys. I refer to lots of these ideas all the time. So – go read this stuff – better – get and read the 1st book The Pragmatic Programmer: From Journeyman to Master

Then get this one and read it: Ship it!: A Practical Guide to Successful Software Projects

Then if you like Ruby – get these – Programming Ruby (2nd Edition) and Agile Web Development with Rails: A Pragmatic Guide

I guess I am a fan of thier work – lol.

Chris


You can leave a response, or trackback from your own site.



1 Metrics backing up an agile approach to software development

Thoughtworks has some ineteresting metrics posted. It seems that they have tasked Forrester Research with quantifying the advantage that ‘their’ agile approach provided their clients. Here is a noteworthy metric excerpt (again, wish we had an xhtml web where I could xlink/ point to this):

Client: Four Fortune 500 Companies
• Improved time to benefit by 69%
• Reduced cost by 57%
• Reduced effort by 62%
• Reduced critical defects by nearly 80%
• Reduced overall defects by more than 60%

Wow. Those are some nice #s. There are links through to some underlying white papers. Being someone that appreciates a good quantification of work being done – this stuff is great.

Here is another interesting excerpt:

“The quality of the ThoughtWorks staff and their ability to handle difficult projects drove
efficiency within the organization, reducing the potential for defects and rework down the
road that can be associated with complex projects.”

I can certainly say that hiring the best is one of the biggest – if not THE biggest element to a winning software project. I think if you combine this notion with an agile process – you really can realize some substantial benefits when running your software projects. I think this is also just what Finetix - my illustrious employer is trying to do; hire the best and brightest and run the projects with an agile approach. Furthermore – they are focused on the financial markets projects – thus winning an edge in specialization over companies like Thoughtworks. While I DO believe and have seen how an agile approach is key to winning software projects – having serious software developers on the team is just as pivotal. Teams of ALL junior developers can realize benefits by follwing an agile approach – but teams with leadership and excellent developers will realize much more substantial benefits.

-Chris


You can leave a response, or trackback from your own site.



Google’s open source AjaXSLT project

I just stumbled across googles AjaXSLT open source XPath and XSLT enjine written in JavaScript.

Pretty cool I must say.

-Chris


You can leave a response, or trackback from your own site.



SpringFramework.net

Simple statement of the day:

SpringFramework.net – after 6 months of constant use – I am not sure how I ever worked without it.

-Chris


You can leave a response, or trackback from your own site.