Chris Donnan : Programming – Brooklyn Style

30/04/2006

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

Filed under: c#,java,patterns and principals,programming — chrisdrop @ 19:52

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

Filed under: interaction design,programming,User Interfaces — chrisdrop @ 03:58

29/04/2006

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

Filed under: programming — chrisdrop @ 23:19

21/04/2006

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

Filed under: Agile Development,programming — chrisdrop @ 04:11

18/04/2006

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

Filed under: programming,ruby — chrisdrop @ 03:41

17/04/2006

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

Filed under: linux — chrisdrop @ 18:36

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

Filed under: Agile Development,books,programming,ruby — chrisdrop @ 16:00

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

Filed under: Agile Development,Software Project Management — chrisdrop @ 15:43

15/04/2006

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

Filed under: internet,Xml — chrisdrop @ 18:58

12/04/2006

Books I have been reading

Beyond the C++ Standard Library : An Introduction to Boost
CLR via C#
Behind Closed Doors : Secrets of Great Management
Pragmatic Version Control Using Subversion
Java Threads (3rd edition includes the latest JDK’s stuff)
Ajax Patterns and Best Practices
Filed under: books,C++,coding,Software Project Management — chrisdrop @ 16:05

Just some interesting posts…

I finally got to reading through many folks blogs this evening. Here are several interesting posts that I eventually drilled through to:

Is Static Typing a Form of Bad Coupling? – More static/ dynamic language stuff

Finlabs – REAL COOL Algorithmic Trading
The 48 Laws of Power

Development Abstraction – go Joel – this is a great article. As Jeremy put it – I had almost given up on Joel – but this IS a great article – I particularly like this:

Management, in a software company, is primarily responsible for creating abstractions for programmers. We build the yacht, we service the yacht, we are the yacht, but we don’t steer the yacht. Everything we do comes down to providing a non-leaky abstraction for the programmers so that they can create great code and that code can get into the hands of customers who benefit from it.

That is just great. I call this idea “Building Boxes”. We try to – in essence, build boxes for the development teams. We build non-leaky abstractions – and they fill up the boxes. I talk about this all the time – well said Joel!

Go ObieA web-based IDE for Ruby on Rails

Oh yes – SharpRobo – I am a FIT fan – so this ROCKS -

SharpRobo is a Functional Testing and Recording tool for WinForm applications written in .NET supported language. It supports all the standard WinForm controls. SharpRobo records the tests in FIT format which can be played back using Fit (File or Directory Runner).

More cool stuff via ObieActiveMessaging – for Ruby.

Lots of interesting stuff in the world as always :)

-Chris

10/04/2006

ISDA offering an FPML Course in NYC tomorrow

ISDA FPML Course in NYC tomorrow

ISDA – the International Swaps and Derivatives Association is giving an intro level course on FPML (Financial products Mark-up Language) tomorrow in NYC. They will cover the ‘basics’ of FPML/ XML and also go into some product examples with CDS and Interest Rate products. Anyone programming in the capital markets space should have some basic notion of how this stuff works :)

-Chris

Filed under: Finance,Xml — chrisdrop @ 19:58
Next Page »

Powered by WordPress