SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Ähnlich wie Playing on the edge

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 CloudMark Hinkle
 
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...Steve Poole
 
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 StatelessnessIn-Memory Computing Summit
 
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...Thoughtworks
 
Product! - The road to production deployment
Product! - The road to production deploymentProduct! - The road to production deployment
Product! - The road to production deploymentFilippo Zanella
 
[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 UpdateOpenStack Korea Community
 
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 SQLIAguestfdcb8a
 
Business Intelligence in the Cloud
Business Intelligence in the CloudBusiness Intelligence in the Cloud
Business Intelligence in the CloudRightScale
 
Mammothdb - Public VC Pitchdeck!
Mammothdb - Public VC Pitchdeck!Mammothdb - Public VC Pitchdeck!
Mammothdb - Public VC Pitchdeck!Steve Keil
 
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...OW2
 
Ruby On Rails Presentation
Ruby On Rails PresentationRuby On Rails Presentation
Ruby On Rails PresentationPaul Pajo
 
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 ServiceAndrea Mercanti
 
PeopleSoft and The Cloud
PeopleSoft and The CloudPeopleSoft and The Cloud
PeopleSoft and The CloudDuncan Davies
 
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
 
Semplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessSemplificare l'observability per progetti Serverless
Semplificare l'observability per progetti ServerlessLuciano Mammino
 
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 considerationstoc
 

Ähnlich wie 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
 

Mehr von Craig Taverner

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.2Craig Taverner
 
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 2016Craig Taverner
 
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 2016Craig Taverner
 
Neo4j - Managing Distributed Teams
Neo4j - Managing Distributed TeamsNeo4j - Managing Distributed Teams
Neo4j - Managing Distributed TeamsCraig Taverner
 
Neo4j Spatial - FooCafe September 2015
Neo4j Spatial - FooCafe September 2015Neo4j Spatial - FooCafe September 2015
Neo4j Spatial - FooCafe September 2015Craig Taverner
 
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öCraig Taverner
 
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 2013Craig Taverner
 
Geoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSMGeoprocessing with Neo4j-Spatial and OSM
Geoprocessing with Neo4j-Spatial and OSMCraig Taverner
 
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 databaseCraig Taverner
 

Mehr von 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
 

Kürzlich hochgeladen

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 

Kürzlich hochgeladen (20)

Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 

Playing on the edge

Hinweis der Redaktion

  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