SlideShare une entreprise Scribd logo
1  sur  18
Playing on the Edge
Personal Story ,[object Object]
Science to Software
Open to Closed
Closed to Open
Employee to Entrepreneur “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
So many ideas! Open Source Ruby DSLs Agile / Distr. Cool Applications Domain Model Rich Client GIS / Viz. Lean Startup Java
Efficiency Simple Complex Not Invented Here Standing on the Shoulders of Giants Compromise 1 2 3 S1 A1 4 "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." - Mark Shuttleworth, 'Ubuntu User 02' "A good compromise satisfies no-one." - Jonas Hammarberg, 2005 Simple
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?
AWE
AWE-2008
AWE-2009 Neo4j – graph database ,[object Object]
rapid  schema evolution  for changing business requirements, and
simplified development  through perfect match between domain model and database schema.
AWE-2009 AWE Distribution Analysis Germany AWE Distribution Analysis Germany
Neo4j Spatial Index
Neo4j Spatial Index
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

Contenu connexe

Similaire à Playing on the edge

Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
mfrancis
 

Similaire à Playing on the edge (20)

What is CRATE?
What is CRATE?What is CRATE?
What is CRATE?
 
Openstack mexico
Openstack mexicoOpenstack mexico
Openstack mexico
 
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your CloudCloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
Cloud Expo Silicon Valley 2013 | Why Lease When You Can Buy Your Cloud
 
Assad ul Hassan
Assad ul HassanAssad ul Hassan
Assad ul Hassan
 
All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...All Change! How the new economics of Cloud will make you think differently ab...
All Change! How the new economics of Cloud will make you think differently ab...
 
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of StatelessnessIMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
IMC Summit 2016 Breakout - Aleksandar Seovic - The Illusion of Statelessness
 
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...
The Enterprise Architecture you always wanted: A Billion Transactions Per Mon...
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deployment
 
[OpenStack Day in Korea 2015] Keynote 1 - OpenStack Mission Update
[OpenStack Day in Korea 2015] Keynote 1 - OpenStack Mission Update[OpenStack Day in Korea 2015] Keynote 1 - OpenStack Mission Update
[OpenStack Day in Korea 2015] Keynote 1 - OpenStack Mission Update
 
2 Roads to Redemption - Thoughts on XSS and SQLIA
2 Roads to Redemption - Thoughts on XSS and SQLIA2 Roads to Redemption - Thoughts on XSS and SQLIA
2 Roads to Redemption - Thoughts on XSS and SQLIA
 
Business Intelligence in the Cloud
Business Intelligence in the CloudBusiness Intelligence in the Cloud
Business Intelligence in the Cloud
 
Mammothdb - Public VC Pitchdeck!
Mammothdb - Public VC Pitchdeck!Mammothdb - Public VC Pitchdeck!
Mammothdb - Public VC Pitchdeck!
 
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
Guidance, Code and Education: ScalaCenter and the Scala Community, Heather Mi...
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails Presentation
 
CloudCamp
CloudCampCloudCamp
CloudCamp
 
Reply Webinar Online - Mastering AWS - AI as a Service
Reply Webinar Online - Mastering AWS - AI as a ServiceReply Webinar Online - Mastering AWS - AI as a Service
Reply Webinar Online - Mastering AWS - AI as a Service
 
PeopleSoft and The Cloud
PeopleSoft and The CloudPeopleSoft and The Cloud
PeopleSoft and The Cloud
 
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
Providing a Holistic, Service-Oriented Infrastructure for Integration of Real...
 
Semplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessSemplificare l'observability per progetti Serverless
Semplificare l'observability per progetti Serverless
 
Building an XML workflow: Tools and key considerations
Building an XML workflow: Tools and key considerationsBuilding an XML workflow: Tools and key considerations
Building an XML workflow: Tools and key considerations
 

Plus de Craig Taverner

Plus de Craig Taverner (9)

GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2
GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2
GraphConnect EU 2017 - Performance Improvements in Neo4j 3.2
 
The Panama Papers: analysing it with neo4j and neo4j spatial - MINC 2016
The Panama Papers: analysing it with neo4j and neo4j spatial - MINC 2016The Panama Papers: analysing it with neo4j and neo4j spatial - MINC 2016
The Panama Papers: analysing it with neo4j and neo4j spatial - MINC 2016
 
Neo4j and the Panama Papers - FooCafe June 2016
Neo4j and the Panama Papers - FooCafe June 2016Neo4j and the Panama Papers - FooCafe June 2016
Neo4j and the Panama Papers - FooCafe June 2016
 
Neo4j - Managing Distributed Teams
Neo4j - Managing Distributed TeamsNeo4j - Managing Distributed Teams
Neo4j - Managing Distributed Teams
 
Neo4j Spatial - FooCafe September 2015
Neo4j Spatial - FooCafe September 2015Neo4j Spatial - FooCafe September 2015
Neo4j Spatial - FooCafe September 2015
 
Neo4j Spatial at LocationDay 2013 in Malmö
Neo4j Spatial at LocationDay 2013 in MalmöNeo4j Spatial at LocationDay 2013 in Malmö
Neo4j Spatial at LocationDay 2013 in Malmö
 
Data Modeling in Telecoms - GraphConnect NY 2013
Data Modeling in Telecoms - GraphConnect NY 2013Data Modeling in Telecoms - GraphConnect NY 2013
Data Modeling in Telecoms - GraphConnect NY 2013
 
Geoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSMGeoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSM
 
Neo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph databaseNeo4j Spatial - Backing a GIS with a true graph database
Neo4j Spatial - Backing a GIS with a true graph database
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Dernier (20)

TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Developing An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of BrazilDeveloping An App To Navigate The Roads of Brazil
Developing An App To Navigate The Roads of Brazil
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 

Playing on the edge

Notes de l'éditeur

  1. Two and a half years ago I was on safari in South Africa and I took this photograph. This is my nephew standing on the edge of a 100m high cliff Why is he doing that? The view is great! You can see families of giraffe in the valley. It is exciting, kids are attracted to excitement. My talk is about finding excitement in development by playing on the edge. Taking risks and thereby finding a more efficient route. Unless you fall off the edge, that is! (Two types of edge – cliffs and interfaces)
  2. I have been doing some really fun stuff over the last two years And so I applied to talk at Öredev because I was burning to share some of the cooler things we've done But what track to talk in, there are many elements of interest … do transitions I thought I could focus on agile development, distributed project management, or alternative languages So I asked the 'boffins' at Öredev, and those geniuses pointed out the obvious … it is all about Java ! Java is so omnipresent we easily forget that it is there.
  3. I would like to make a personal observation For ten years I developed proprietary software, and each new project was more complex and as a result more difficult to meet deadlines.
  4. But seriously, how do we enable users to do whatever they want every day? The best place to start is by looking at what they already use: Excel MapInfo Well, who in their right minds will consider competing with Excel? Certainly not me. I'm not mad, or am I? My vision started with three ideas: Eclipse RCP Open Source GIS Ruby scripting
  5. What you see on the screen never existed. It was created by me using the gimp. This is the vision I had two years ago for what I planned to create. Not a single one of the projects I presented on the previous slide contained any of the visual features of this new vision. So, I was taking a major risk. A new vision, new technologies and only a piece of visual art to show for it. What is it really: Load, visualize and analyse data. Emphasis on visualize, because that is what was weakest before. But the second most critical difference was allowing our users to program the system.
  6. So, in 2008 we took the first steps, and integrated JRuby scripting console into the GIS. This gives a domain specific language for talking to map data, using GIS terminology like map, layer and feature. The cool thing about this is the same API will work on data in local databases, as well as served across the internet from WFS and WMS web services. We even wrote our own JSON based language for communicating via REST to our own Ruby on Rails web application. But there are some problems with this: - Too slow to perform analyses over large volumns of data remotely - Too much abstraction, making it too complex - No support for non-GIS data
  7. We made a key, revolutionary change. Look, the map is still there and the scripting console is still there, but what is that ferris wheel to the top right? Ported the data structures onto the graph database, Neo4j, made by Neo Technologies right here in Malmö. This is one of the very first screenshots of the prototype results of getting the network data onto neo4j.
  8. The addition of neo4j lead to a revolution in thinking. Instead of data and analysis and reporting being different levels or different structures, they are all just graph structure in the database. This means you can analyse the results of previous analyses. Just keep adding structure to the database. All the views are direct maps onto the database: GIS traverses gis-next edges Tree traverses child edges Charts traverse aggregation-child edges Property tables display node properties Neo4j has added a whole new angle to the use of the word 'EDGE' :-)
  9. Spatial data can extend to a much wider area than the current map view. So asking the database for all data when only viewing a small area is a big problem. Even though the map does filter the data out before the final draw, we are putting a high load on the database and on the map engine. We need a spatial index. I decided to make my own. It seemed simple, but after a day of bad java code, I stepped back and simplified the problem: 1- Do a paper analysis 2- Verify by writing a Ruby script (test the maths) 3- Go back and re-write the Java The result – a solid index with 25 times times map re-draw performance on on test case.
  10. Remember that I said that writing a spreadsheet was too hard? That is true, unless you get a really lucky break and find a shortcut! I found two. The first was the realization that I did not need to write a formula parser, Ruby was already that. The second was that I did not need to write an efficient data stucture, neo4j was already that.
  11. Remember that I said that writing a spreadsheet was too hard? That is true, unless you get a really lucky break and find a shortcut! I found two. The first was the realization that I did not need to write a formula parser, Ruby was already that. The second was that I did not need to write an efficient data stucture, neo4j was already that.
  12. In early 2009 we decided to get started again, and this time to bet on AWE. We built a remote development team composed of outsourced developers. How can you get high quality developers using outsourcing? It is challenging, but not impossible. I decided to do it a new way: - no CV's - no interviews - wrote 10 mini-project specs on the website - evaluate people based on the code they submit - got 12 submissions, contracted 4 for further trials - took 2 months to get efficient - now 8 months later we have a highly efficient team of excellent developers