SlideShare a Scribd company logo
GDG London & Google
Developer Experts
at Google London
Next 2 hours
● Who is GDG London & GDE
● What we trying to do
● Retrospective Game on Google Cloud Platform
● Interview with Developer Jose Luis Arenas
● Retrospective Game continue
● Wrap up
● 8:15pm Live Broadcast After Party
Goal of the Group
● Hold event every 2 months
● Work with PHP, Java, Python and other user
groups
● Spread the knowledge of Google Cloud
Platform
● Give feedback to Google
Where to find us
● Find out about our events & goals at http:
//www.meetup.com/Google-Cloud-Platform-
App-Engine-Compute-Engine-BigQuery/
Google Cloud Platform Hackathon
Building apps with opendata from data.gov.uk
● Friday 18th July to 20th
● Build apps in 48 hours using data from data.
gov.uk
● 13,000+ government dataset
● Hosted at Google Campus
Retrospective Game
Write on coloured Post-it note your ideas for the following.
Only 1 idea per Post-it note
Green - Favourite announcement in the keynote
Pink - Feature Request for Google App Engine
Orange - Feature Request for Google Compute Engine
Yellow - Other Feature
Other info Job Role & Which product you're using.
Interview with Developer
Jose Luis Arenas
Jose Luis Arenas from NDS & TeamUno
Rif Kiamil from FOODit & TeamUno
Problem
Need to find all the names of streets in a
radius.
Wanted to take open source data “OS Locator”
from Ordnance Survey and make it into an API.
Application Architecture v1
Search API is the forgotten database of Google Cloud Platform. It has it’s own SLA and totally different to datastore
Search API still learning to count
Search API - Giving us results outside search radius
Link to source code https://github.com/FOODit/street-geo-search/blob/master/streetsearch.py#L123
Issue 8824: Distance queries in Search API return results that are further away than specified https:
//code.google.com/p/googleappengine/issues/detail?id=8824
We could have
● Used CloudSQL - Cost a lot more!
Customer said No (see mySQL geo euery example)
● Tried GeoHashing with a Project called
“geomodel” - But it was too slow. But we
liked to idea of it using datastore over
search api. (see geomodel example)
Went back to Search API, but with
our workaround
Latitude
Latitude & Longitude
Check which 4 results are 3km away
Using Haversine Formula found objects
Why not do this in datastore?
Inequality Filters Are Allowed On One Property Only
Street.query().filter(‘lat >’, min_lat).filter(‘lat <’ max_lat).filter(‘lon >’, min_lon).filter(‘lon <’,max_lon)
Workarround:
[s for s Street.query().filter(‘lat >’, min_lat).filter(‘lat <’ max_lat) if s.lon > and s.lon < max_lon]
but an stripe of 2 km wide from East to West in UK has lots of streets….
Application Architecture v2
End Points
Go to https://street-geo-search.appspot.com/
Why I love endpoints
Google APIs Explorer
Field filtering and versioning
Generate client libraries for iOS and Android
End Points
What I like about End Points & GAE
I like this style as never have to think about it
again..
I know always going to work and not going to
cost me or client much!
I liked Endpoints so much that..
My new startup TeamUno using just Google
End Points and AngularJS
We don’t have any server side templates.
I would love to see it Google make it easier to bind
datastore/cloudsql to End Points ( LESS CODE)
Find us online at
Jose Luis Arenas jla@sblk.co from NDS & TeamUno
Rif Kiamil rif@foodit.com from FOODit & TeamUno
Notes - Import
How did you do the import…
https://github.com/FOODit/street-geo-
search/blob/master/tools/OSLocator-Import.php
How did covert OS Grid References to Lat &
Long
PHPCoord http://www.jstott.me.uk/phpcoord/
Notes - mySQL Geo Query
$query = <<<EOD
SELECT NAME, CLASSIFICATION, SETTLEMENT, LOCALITY, COU_UNIT, LOCAL_AUTHORITY, TILE_10K, TILE_25K, SOURCE, CENTLAT, CENTLNG, DISTANCE
FROM (
SELECT NAME, CLASSIFICATION, SETTLEMENT, LOCALITY, COU_UNIT, LOCAL_AUTHORITY, TILE_10K, TILE_25K, SOURCE, CENTLAT, CENTLNG, r,
(6378.10 * ACOS(COS(RADIANS(latpoint))
* COS(RADIANS(CENTLAT))
* COS(RADIANS(longpoint) - RADIANS(CENTLNG))
+ SIN(RADIANS(latpoint))
* SIN(RADIANS(CENTLAT)))) AS DISTANCE
FROM OSL
JOIN (
SELECT $lat AS latpoint, $lng AS longpoint, $rad AS r
) AS p
WHERE CENTLAT
BETWEEN latpoint - (r / 111.045)
AND latpoint + (r / 111.045)
AND CENTLNG
BETWEEN longpoint - (r / (111.045 * COS(RADIANS(latpoint))))
AND longpoint + (r / (111.045 * COS(RADIANS(latpoint))))
) d
WHERE DISTANCE <= r
ORDER BY DISTANCE
EOD;
Notes - Example of GeoHashing
geomodel Project https://code.google.com/p/geomodel/
from geo.geomodel import GeoModel
class OSLocator(GeoModel, ndb.Model):
…….
entity = OSLocator()
entity.location = ndb.GeoPt(item.centlat, item.centlng)
……
results = OSLocator.proximity_fetch(
OSLocator.query(),
ndb.GeoPt(request.latitude, request.longitude),
max_results=10000,
max_distance=int(request.radius * 1000.0))
Retrospective Game Summary
Retrospective Game
Write on coloured Post-it note your ideas for the following.
Only 1 idea per Post-it note
Green - Favourite announcement in the keynote
Pink - Feature Request for Google App Engine
Orange - Feature Request for Google Compute Engine
Yellow - Other Feature
Other info Job Role & Which product you're using.

More Related Content

What's hot

GCPUG Shimane #02-1
GCPUG Shimane #02-1GCPUG Shimane #02-1
GCPUG Shimane #02-1
yoshioka_cb
 
GitHub Data and Insights
GitHub Data and InsightsGitHub Data and Insights
GitHub Data and Insights
Jeff McAffer
 
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
崇之 清水
 
Gittalk
GittalkGittalk
Gittalk
prtinsley
 
Sparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In SecondsSparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In Seconds
Kei Sawada
 
From airflow to google cloud composer
From airflow to google cloud composerFrom airflow to google cloud composer
From airflow to google cloud composer
Bruce Kuo
 
Weightlifting at SimplySocial
Weightlifting at SimplySocialWeightlifting at SimplySocial
Weightlifting at SimplySocial
Bogdan Gaza
 
DevOpsDays Cape Town 2018 - Serverless with Google App Engine
DevOpsDays Cape Town 2018 - Serverless with Google App EngineDevOpsDays Cape Town 2018 - Serverless with Google App Engine
DevOpsDays Cape Town 2018 - Serverless with Google App Engine
Günter Grodotzki
 
Manageable data pipelines with airflow (and kubernetes) november 27, 11 45 ...
Manageable data pipelines with airflow (and kubernetes)   november 27, 11 45 ...Manageable data pipelines with airflow (and kubernetes)   november 27, 11 45 ...
Manageable data pipelines with airflow (and kubernetes) november 27, 11 45 ...
Jarek Potiuk
 
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
javier ramirez
 
GCPUG Shimane #02-2
GCPUG Shimane #02-2GCPUG Shimane #02-2
GCPUG Shimane #02-2
yoshioka_cb
 
Git in pills : git stash
Git in pills : git stashGit in pills : git stash
Git in pills : git stash
Federico Panini
 
Ansible party in the [Google] clouds
Ansible party in the [Google] cloudsAnsible party in the [Google] clouds
Ansible party in the [Google] clouds
Esther Lozano
 
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat
 
Knockout extender
Knockout extenderKnockout extender
Knockout extender
LearningTech
 
Implementing GraphQL - Without a Backend
Implementing GraphQL - Without a BackendImplementing GraphQL - Without a Backend
Implementing GraphQL - Without a Backend
Showmax Engineering
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
themystic_ca
 

What's hot (17)

GCPUG Shimane #02-1
GCPUG Shimane #02-1GCPUG Shimane #02-1
GCPUG Shimane #02-1
 
GitHub Data and Insights
GitHub Data and InsightsGitHub Data and Insights
GitHub Data and Insights
 
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
WordPress RESTful API & Amazon API Gateway - WordCamp Kansai 2016
 
Gittalk
GittalkGittalk
Gittalk
 
Sparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In SecondsSparknize - Visualize CSV Data With Sparkline In Seconds
Sparknize - Visualize CSV Data With Sparkline In Seconds
 
From airflow to google cloud composer
From airflow to google cloud composerFrom airflow to google cloud composer
From airflow to google cloud composer
 
Weightlifting at SimplySocial
Weightlifting at SimplySocialWeightlifting at SimplySocial
Weightlifting at SimplySocial
 
DevOpsDays Cape Town 2018 - Serverless with Google App Engine
DevOpsDays Cape Town 2018 - Serverless with Google App EngineDevOpsDays Cape Town 2018 - Serverless with Google App Engine
DevOpsDays Cape Town 2018 - Serverless with Google App Engine
 
Manageable data pipelines with airflow (and kubernetes) november 27, 11 45 ...
Manageable data pipelines with airflow (and kubernetes)   november 27, 11 45 ...Manageable data pipelines with airflow (and kubernetes)   november 27, 11 45 ...
Manageable data pipelines with airflow (and kubernetes) november 27, 11 45 ...
 
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
Big Data Analytics with Google BigQuery. GDG Summit Spain 2014
 
GCPUG Shimane #02-2
GCPUG Shimane #02-2GCPUG Shimane #02-2
GCPUG Shimane #02-2
 
Git in pills : git stash
Git in pills : git stashGit in pills : git stash
Git in pills : git stash
 
Ansible party in the [Google] clouds
Ansible party in the [Google] cloudsAnsible party in the [Google] clouds
Ansible party in the [Google] clouds
 
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
LF_APIStrat17_Bringing GraphQL to the Enterprise: When REST Isn't Enough
 
Knockout extender
Knockout extenderKnockout extender
Knockout extender
 
Implementing GraphQL - Without a Backend
Implementing GraphQL - Without a BackendImplementing GraphQL - Without a Backend
Implementing GraphQL - Without a Backend
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshop
 

Similar to Interview with Developer Jose Luis Arenas regarding Google App Engine & Geospatial Datas

Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloud
wesley chun
 
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
KAI CHU CHUNG
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScript
wesley chun
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
wesley chun
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
Brandon Mueller
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
Márton Kodok
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
wesley chun
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
wesley chun
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB
 
Firestore MENA digital days : GDG Abu dhabi
Firestore MENA digital days : GDG Abu dhabiFirestore MENA digital days : GDG Abu dhabi
Firestore MENA digital days : GDG Abu dhabi
Shashank Kakroo
 
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Bret McGowen - NYC Google Developer Advocate
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
wesley chun
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
wesley chun
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
Pablo Godel
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
wesley chun
 
How Google Cloud Platform can help in the classroom/lab
How Google Cloud Platform can help in the classroom/labHow Google Cloud Platform can help in the classroom/lab
How Google Cloud Platform can help in the classroom/lab
wesley chun
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
NgLQun
 
Exploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overviewExploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overview
wesley chun
 
Google Cloud Platform Update
Google Cloud Platform UpdateGoogle Cloud Platform Update
Google Cloud Platform Update
Ido Green
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
e-Legion
 

Similar to Interview with Developer Jose Luis Arenas regarding Google App Engine & Geospatial Datas (20)

Introduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google CloudIntroduction to Cloud Computing with Google Cloud
Introduction to Cloud Computing with Google Cloud
 
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
60分鐘完送百萬edm,背後雲端ci/cd實戰大公開
 
Exploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScriptExploring Google (Cloud) APIs with Python & JavaScript
Exploring Google (Cloud) APIs with Python & JavaScript
 
Powerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hackPowerful Google Cloud tools for your hack
Powerful Google Cloud tools for your hack
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
 
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQueryCodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
CodeCamp Iasi - Creating serverless data analytics system on GCP using BigQuery
 
Introduction to serverless computing on Google Cloud
Introduction to serverless computing on Google CloudIntroduction to serverless computing on Google Cloud
Introduction to serverless computing on Google Cloud
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Python
 
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDBMongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
MongoDB Days Silicon Valley: Winning the Dreamforce Hackathon with MongoDB
 
Firestore MENA digital days : GDG Abu dhabi
Firestore MENA digital days : GDG Abu dhabiFirestore MENA digital days : GDG Abu dhabi
Firestore MENA digital days : GDG Abu dhabi
 
Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...Google Home and Google Assistant Workshop: Build your own serverless Action o...
Google Home and Google Assistant Workshop: Build your own serverless Action o...
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIs
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIs
 
Lone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New AngleLone StarPHP 2013 - Building Web Apps from a New Angle
Lone StarPHP 2013 - Building Web Apps from a New Angle
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloud
 
How Google Cloud Platform can help in the classroom/lab
How Google Cloud Platform can help in the classroom/labHow Google Cloud Platform can help in the classroom/lab
How Google Cloud Platform can help in the classroom/lab
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
 
Exploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overviewExploring Google (Cloud) APIs & Cloud Computing overview
Exploring Google (Cloud) APIs & Cloud Computing overview
 
Google Cloud Platform Update
Google Cloud Platform UpdateGoogle Cloud Platform Update
Google Cloud Platform Update
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
 

Recently uploaded

Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
Enterprise Knowledge
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
Neo4j
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
Zilliz
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
MichaelKnudsen27
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
Tatiana Kojar
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
Neo4j
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
Ivo Velitchkov
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
DianaGray10
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
Jason Yip
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Pitangent Analytics & Technology Solutions Pvt. Ltd
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
Hiroshi SHIBATA
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
christinelarrosa
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
ScyllaDB
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
christinelarrosa
 

Recently uploaded (20)

Demystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through StorytellingDemystifying Knowledge Management through Storytelling
Demystifying Knowledge Management through Storytelling
 
Leveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and StandardsLeveraging the Graph for Clinical Trials and Standards
Leveraging the Graph for Clinical Trials and Standards
 
Fueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte WebinarFueling AI with Great Data with Airbyte Webinar
Fueling AI with Great Data with Airbyte Webinar
 
Nordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptxNordic Marketo Engage User Group_June 13_ 2024.pptx
Nordic Marketo Engage User Group_June 13_ 2024.pptx
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance PanelsNorthern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
Northern Engraving | Modern Metal Trim, Nameplates and Appliance Panels
 
Skybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoptionSkybuffer SAM4U tool for SAP license adoption
Skybuffer SAM4U tool for SAP license adoption
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge GraphGraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
GraphRAG for LifeSciences Hands-On with the Clinical Knowledge Graph
 
Apps Break Data
Apps Break DataApps Break Data
Apps Break Data
 
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsConnector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectors
 
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...
 
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
Crafting Excellence: A Comprehensive Guide to iOS Mobile App Development Serv...
 
Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving | Nameplate Manufacturing Process - 2024
Northern Engraving | Nameplate Manufacturing Process - 2024
 
Introduction of Cybersecurity with OSS at Code Europe 2024
Introduction of Cybersecurity with OSS  at Code Europe 2024Introduction of Cybersecurity with OSS  at Code Europe 2024
Introduction of Cybersecurity with OSS at Code Europe 2024
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
Christine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptxChristine's Product Research Presentation.pptx
Christine's Product Research Presentation.pptx
 
A Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's ArchitectureA Deep Dive into ScyllaDB's Architecture
A Deep Dive into ScyllaDB's Architecture
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptxPRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
PRODUCT LISTING OPTIMIZATION PRESENTATION.pptx
 

Interview with Developer Jose Luis Arenas regarding Google App Engine & Geospatial Datas

  • 1. GDG London & Google Developer Experts at Google London
  • 2. Next 2 hours ● Who is GDG London & GDE ● What we trying to do ● Retrospective Game on Google Cloud Platform ● Interview with Developer Jose Luis Arenas ● Retrospective Game continue ● Wrap up ● 8:15pm Live Broadcast After Party
  • 3. Goal of the Group ● Hold event every 2 months ● Work with PHP, Java, Python and other user groups ● Spread the knowledge of Google Cloud Platform ● Give feedback to Google
  • 4. Where to find us ● Find out about our events & goals at http: //www.meetup.com/Google-Cloud-Platform- App-Engine-Compute-Engine-BigQuery/
  • 5. Google Cloud Platform Hackathon Building apps with opendata from data.gov.uk ● Friday 18th July to 20th ● Build apps in 48 hours using data from data. gov.uk ● 13,000+ government dataset ● Hosted at Google Campus
  • 6. Retrospective Game Write on coloured Post-it note your ideas for the following. Only 1 idea per Post-it note Green - Favourite announcement in the keynote Pink - Feature Request for Google App Engine Orange - Feature Request for Google Compute Engine Yellow - Other Feature Other info Job Role & Which product you're using.
  • 7. Interview with Developer Jose Luis Arenas Jose Luis Arenas from NDS & TeamUno Rif Kiamil from FOODit & TeamUno
  • 8. Problem Need to find all the names of streets in a radius. Wanted to take open source data “OS Locator” from Ordnance Survey and make it into an API.
  • 9.
  • 10. Application Architecture v1 Search API is the forgotten database of Google Cloud Platform. It has it’s own SLA and totally different to datastore
  • 11. Search API still learning to count Search API - Giving us results outside search radius Link to source code https://github.com/FOODit/street-geo-search/blob/master/streetsearch.py#L123 Issue 8824: Distance queries in Search API return results that are further away than specified https: //code.google.com/p/googleappengine/issues/detail?id=8824
  • 12. We could have ● Used CloudSQL - Cost a lot more! Customer said No (see mySQL geo euery example) ● Tried GeoHashing with a Project called “geomodel” - But it was too slow. But we liked to idea of it using datastore over search api. (see geomodel example)
  • 13. Went back to Search API, but with our workaround
  • 16. Check which 4 results are 3km away
  • 17. Using Haversine Formula found objects
  • 18. Why not do this in datastore? Inequality Filters Are Allowed On One Property Only Street.query().filter(‘lat >’, min_lat).filter(‘lat <’ max_lat).filter(‘lon >’, min_lon).filter(‘lon <’,max_lon) Workarround: [s for s Street.query().filter(‘lat >’, min_lat).filter(‘lat <’ max_lat) if s.lon > and s.lon < max_lon] but an stripe of 2 km wide from East to West in UK has lots of streets….
  • 20. End Points Go to https://street-geo-search.appspot.com/
  • 21. Why I love endpoints Google APIs Explorer Field filtering and versioning Generate client libraries for iOS and Android
  • 23.
  • 24.
  • 25. What I like about End Points & GAE I like this style as never have to think about it again.. I know always going to work and not going to cost me or client much!
  • 26. I liked Endpoints so much that.. My new startup TeamUno using just Google End Points and AngularJS We don’t have any server side templates. I would love to see it Google make it easier to bind datastore/cloudsql to End Points ( LESS CODE)
  • 27. Find us online at Jose Luis Arenas jla@sblk.co from NDS & TeamUno Rif Kiamil rif@foodit.com from FOODit & TeamUno
  • 28. Notes - Import How did you do the import… https://github.com/FOODit/street-geo- search/blob/master/tools/OSLocator-Import.php How did covert OS Grid References to Lat & Long PHPCoord http://www.jstott.me.uk/phpcoord/
  • 29. Notes - mySQL Geo Query $query = <<<EOD SELECT NAME, CLASSIFICATION, SETTLEMENT, LOCALITY, COU_UNIT, LOCAL_AUTHORITY, TILE_10K, TILE_25K, SOURCE, CENTLAT, CENTLNG, DISTANCE FROM ( SELECT NAME, CLASSIFICATION, SETTLEMENT, LOCALITY, COU_UNIT, LOCAL_AUTHORITY, TILE_10K, TILE_25K, SOURCE, CENTLAT, CENTLNG, r, (6378.10 * ACOS(COS(RADIANS(latpoint)) * COS(RADIANS(CENTLAT)) * COS(RADIANS(longpoint) - RADIANS(CENTLNG)) + SIN(RADIANS(latpoint)) * SIN(RADIANS(CENTLAT)))) AS DISTANCE FROM OSL JOIN ( SELECT $lat AS latpoint, $lng AS longpoint, $rad AS r ) AS p WHERE CENTLAT BETWEEN latpoint - (r / 111.045) AND latpoint + (r / 111.045) AND CENTLNG BETWEEN longpoint - (r / (111.045 * COS(RADIANS(latpoint)))) AND longpoint + (r / (111.045 * COS(RADIANS(latpoint)))) ) d WHERE DISTANCE <= r ORDER BY DISTANCE EOD;
  • 30. Notes - Example of GeoHashing geomodel Project https://code.google.com/p/geomodel/ from geo.geomodel import GeoModel class OSLocator(GeoModel, ndb.Model): ……. entity = OSLocator() entity.location = ndb.GeoPt(item.centlat, item.centlng) …… results = OSLocator.proximity_fetch( OSLocator.query(), ndb.GeoPt(request.latitude, request.longitude), max_results=10000, max_distance=int(request.radius * 1000.0))
  • 32. Retrospective Game Write on coloured Post-it note your ideas for the following. Only 1 idea per Post-it note Green - Favourite announcement in the keynote Pink - Feature Request for Google App Engine Orange - Feature Request for Google Compute Engine Yellow - Other Feature Other info Job Role & Which product you're using.