Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Playing on the edge


Published on

Playing in the huge arena that is 'Java' requires a pragmatic approach and willingness to work at the edges:
* Languages - Java is the core, but there is value in moving out when appropriate (JRuby, SQL, JSON, etc.)
* Frameworks - Why code one, when you can find one: Eclipse RCP
* Developers - local and remote, loose and Agile, and open source

We find efficiency gains from the use of open source, distributed development, agile techniques and language integration.

Published in: Technology
  • Be the first to like this

Playing on the edge

  1. 1. Playing on the Edge
  2. 2. Personal Story <ul><li>Edges in life </li><ul><li>South Africa to Sweden
  3. 3. Science to Software
  4. 4. Open to Closed
  5. 5. Closed to Open
  6. 6. Employee to Entrepreneur </li></ul></ul>“Success is not based on the quality of the original idea, but on the ability to learn and change and ' pivot '” - Eric Ries, 'The Lean Startup', 2 nd Nov 2009 “Freedom to Act” - Marc Lesser, Öredev 2009
  7. 7. So many ideas! Open Source Ruby DSLs Agile / Distr. Cool Applications Domain Model Rich Client GIS / Viz. Lean Startup Java
  8. 8. Efficiency Simple Complex Not Invented Here Standing on the Shoulders of Giants Compromise 1 2 3 S1 A1 4 &quot;That's part of the real power of free software; you can use it in ways that go beyond the imagination of the people who actually created the pieces.&quot; - Mark Shuttleworth, 'Ubuntu User 02' &quot;A good compromise satisfies no-one.&quot; - Jonas Hammarberg, 2005 Simple
  9. 9. AWE 2% market penetration 2% customers pay But cheaper and faster to produce! We cannot predict what users will need to do each day. We need to give them the power to do what they want. Let's open source! What! Are you mad? How would we achieve vendor lock-in?
  10. 10. AWE
  11. 11. AWE-2008
  12. 12. AWE-2009 Neo4j – graph database <ul><li>extremely high performance on deep traversals and mining of complex data,
  13. 13. rapid schema evolution for changing business requirements, and
  14. 14. simplified development through perfect match between domain model </li></ul>and database schema.
  15. 15. AWE-2009 AWE Distribution Analysis Germany AWE Distribution Analysis Germany
  16. 16. Neo4j Spatial Index
  17. 17. Neo4j Spatial Index
  18. 18. Splash =MAX(A1:A10) =max(a1..a10) =max(a1..a10) =max([a1,a2,a3,a4]) =max(a1,a2,a3,a4) Valid Ruby Range Array Varargs
  19. 19. Splash =count(a1..a10) =sum(a1..a10)
  20. 20. Splash = a1 + ' ' + a2 = “My name is #{a1} and your name is #{a2}” My name is <%= a1%> and your name is <%= a2 %> <% (0..6).each {|x| eval “b#{x+1} = '= a#{x+1}'”} %> <% Charts.create(:type => :bar, :categories => a1..a5, :values => b1..b5) %>
  21. 21. Splash-Neo4j = a1 + ' ' + a2 = sum(a1..a3)
  22. 22. AWE-2009 a new start
  23. 23. Reporting DSL
  24. 24. Our Favourite Edge