SlideShare una empresa de Scribd logo
1 de 32
Descargar para leer sin conexión
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.

Más contenido relacionado

La actualidad más candente

GCPUG Shimane #02-1
GCPUG Shimane #02-1GCPUG Shimane #02-1
GCPUG Shimane #02-1yoshioka_cb
 
GitHub Data and Insights
GitHub Data and InsightsGitHub Data and Insights
GitHub Data and InsightsJeff 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崇之 清水
 
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 SecondsKei Sawada
 
From airflow to google cloud composer
From airflow to google cloud composerFrom airflow to google cloud composer
From airflow to google cloud composerBruce Kuo
 
Weightlifting at SimplySocial
Weightlifting at SimplySocialWeightlifting at SimplySocial
Weightlifting at SimplySocialBogdan 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 EngineGü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 2014javier ramirez
 
GCPUG Shimane #02-2
GCPUG Shimane #02-2GCPUG Shimane #02-2
GCPUG Shimane #02-2yoshioka_cb
 
Git in pills : git stash
Git in pills : git stashGit in pills : git stash
Git in pills : git stashFederico Panini
 
Ansible party in the [Google] clouds
Ansible party in the [Google] cloudsAnsible party in the [Google] clouds
Ansible party in the [Google] cloudsEsther 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
 
Implementing GraphQL - Without a Backend
Implementing GraphQL - Without a BackendImplementing GraphQL - Without a Backend
Implementing GraphQL - Without a BackendShowmax Engineering
 
Introduction To Git Workshop
Introduction To Git WorkshopIntroduction To Git Workshop
Introduction To Git Workshopthemystic_ca
 

La actualidad más candente (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 a 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 Cloudwesley 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 & JavaScriptwesley 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 hackwesley chun
 
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 BigQueryMá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 Cloudwesley chun
 
Exploring Google APIs with Python
Exploring Google APIs with PythonExploring Google APIs with Python
Exploring Google APIs with Pythonwesley 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 MongoDBMongoDB
 
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 dhabiShashank Kakroo
 
Using Google (Cloud) APIs
Using Google (Cloud) APIsUsing Google (Cloud) APIs
Using Google (Cloud) APIswesley chun
 
Accessing Google Cloud APIs
Accessing Google Cloud APIsAccessing Google Cloud APIs
Accessing Google Cloud APIswesley 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 AnglePablo Godel
 
Serverless Computing with Google Cloud
Serverless Computing with Google CloudServerless Computing with Google Cloud
Serverless Computing with Google Cloudwesley 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/labwesley 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.pptxNgLQun
 
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 overviewwesley chun
 
Google Cloud Platform Update
Google Cloud Platform UpdateGoogle Cloud Platform Update
Google Cloud Platform UpdateIdo Green
 
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...
#MBLTdev: Разработка backend для мобильного приложения с использованием Googl...e-Legion
 

Similar a 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...
 

Último

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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
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
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Último (20)

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
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
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
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
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
 
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!
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
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
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

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.