SlideShare a Scribd company logo
1 of 89
How to build your own ride-share app
Richard Süselbeck
Amsterdam | April 2-3, 2019
How do they do that?
Richard Süselbeck
Principal Developer Evangelist
HERE Technologies
@sueselbeck @heredev
https://developer.here.com
2018-08-29 12.52.24.jpg
2018-08-29 12.52.24.jpg
2018-08-29 12.52.24.jpg
Where to?
Pickup: 72 Noble St, Brooklyn
Confirm ride
"Where am I?"
"Where am I?"
Positioning API
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
PositioningManager positioningManager = PositioningManager.getInstance();
positioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);
GeoCoordinate coordinate = positioningManager.getPosition().getGeocoordinate();
String locationString = coordinate.getLatitude() + "," + coordinate.getLongitude();
Toast.makeText(getApplicationContext(), locationString, Toast.LENGTH_SHORT).show();
"Where am I?"
40.728215,-73.958251
"Where am I?"
52.38326, 4.92032
We are currently at 52.38326, 4.92032. What does that mean?
Latitude & Longitude
Latitude Longitude
Equator
Prime Meridian
+60
-30
-90 (South)
+90 (North) 180
-120 (West)
+30 (East)
Where does the lat/long come from?
Where does the lat/long come from?
GPS
GNSS
Where does the lat/long come from?
GPS, GLONASS, GALILEO, BeiDou, IRNSS, QZSS
Where does the lat/long come from?
GNSS
"Where am I?"
40.728215, -73.958251
"Where am I?"
40.728215, -73.958251
Maps API
"Where am I?"
Making maps is hard
Making maps is hard
m_map.setCenter(new GeoCoordinate(40.75051,-73.99335),
Map.Animation.NONE);
m_map.setMapScheme(Map.Scheme.HYBRID_NIGHT_TRANSIT);
m_map.setLandmarksVisible(true);
m_map.setZoomLevel(17);
m_map.setTilt(45);
"Where am I?"
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
"Where am I?"
Pickup: 72 Noble St, Brooklyn
Geocoder API
Gedempt Hamerkanaal,
1021 Amsterdam, Nederland52.38344, 4.92044
72 Noble St, Brooklyn,
NY 11222, USA
40.728215, -73.958251
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGeocodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGeocodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
GeoCoordinate pickup = new GeoCoordinate(40.728215,-73.958251);
ReverseGeocodeRequest2 revGecodeRequest = new
ReverseGeocodeRequest2(pickup);
revGecodeRequest.execute(new ResultListener<Location>() {
@Override
public void onCompleted(Location location, ErrorCode errorCode) {
updateTextView(location.getAddress().toString());
}
});
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
"Where are the drivers?"
Pickup: 72 Noble St, Brooklyn
Positioning API
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
"Where am I going?"200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
Geocoder
Autocomplete API
200 Central Park W
Pickup: 72 Noble St, Brooklyn
200 Central Park W, New York
200 Central Park S, New York
200 Central Park N, New York
200 Central Ave, Brooklyn
"Where am I going?"
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
http://autocomplete.geocoder.api.here.com/6.2/suggest.json
?app_id=MY_APP_ID
&app_code=MY_APP_CODE
&query=200+central+park
&prox=40.76863,-73.97626,3000
{
"suggestions": [
{
"label": "United States, NY, New York, 200 Central Park W",
"language": "en",
"countryCode": "USA",
"locationId": "NT_srx4m-dHrwiUBDnXi3NAwD_yADM",
"address": {
"country": "United States",
"state": "NY",
"county": "New York",
"city": "New York",
"district": "Upper West Side",
"street": "Central Park W",
"houseNumber": "200",
"postalCode": "10024"
},
"matchLevel": "houseNumber"
},
{
"label": "United States, NY, New York, 200 Central Park S",
...
},
...
]
}
"Where am I going?"american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
Places API
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"Where am I going?"
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
DiscoveryRequest request = new SearchRequest("american museum of");
GeoCoordinate manhattan = new GeoCoordinate(40.71451, -74.00602);
request.setSearchCenter(manhattan);
request.setCollectionSize(5);
request.execute(new SearchRequestListener());
class SearchRequestListener implements ResultListener<DiscoveryResultPage> {
@Override
public void onCompleted(DiscoveryResultPage data, ErrorCode error) {
List<DiscoveryResult> items = data.getItems();
for (DiscoveryResult item : items) {
PlaceLink placeLink = (PlaceLink) item;
// display information
}
}
}
"How long does it take?"
"How much does it cost?"
"What is the route?"
american museum of
Pickup: 72 Noble St, Brooklyn
American Museum of Natural History
American Museum of the Moving Image
Museum of the American Gangster
Museum of Chinese in the Americas
"How long does it take?"
"How much does it cost?"
"What is the route?"
Confirm ride
28 min - $24 - $29
Routing API
"How long does it take?"
"How much does it cost?"
"What is the route?"
Confirm ride
28 min - $24 - $29
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
CoreRouter router = new CoreRouter();
RoutePlan routePlan = new RoutePlan();
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(40.728215,-73.958251)));
routePlan.addWaypoint(new RouteWaypoint(
new GeoCoordinate(49.1947289, -123.1762924)));
RouteOptions routeOptions = new RouteOptions();
routeOptions.setTransportMode(RouteOptions.TransportMode.CAR);
routeOptions.setRouteType(RouteOptions.Type.FASTEST);
routePlan.setRouteOptions(routeOptions);
router.calculateRoute(routePlan, new RouteListener());
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
private class RouteListener implements CoreRouter.Listener {
public void onProgress(int percentage) {
// Display a message indicating calculation progress
}
public void onCalculateRouteFinished(List<RouteResult> routeResult,
RoutingError error) {
mapRoute = new MapRoute(routeResult.get(0).getRoute());
map.addMapObject(mapRoute);
updateTextView(routeResult.get(0).getRoute().getLength());
}
}
...
"length": 9919,
"travelTime": 1664,
"maneuver": [
{
"position": {
"latitude": 40.728361,
“longitude": -73.9582743
},
"instruction": "Head toward West St on Noble St. Go for 79 m.",
"travelTime": 15,
"length": 79,
"id": "M1",
"_type": "PrivateTransportManeuverType"
},
{
"position": {
"latitude": 40.7282925,
"longitude": -73.9590061
},
"instruction": "Turn right onto West St. Go for 239 m.",
...
"Which drivers are nearby?"
Finding nearby drivers…
Isoline Routing API
"Which drivers are nearby?"
Finding nearby drivers…
Isoline Routing API
"Which drivers can reach
me in 10 minutes?"
Finding nearby drivers…
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
https://isoline.route.api.here.com/routing/7.2/calculateisoline.json
?app_id={YOUR_APP_ID}
&app_code={YOUR_APP_CODE}
&mode=fastest;car;traffic:enabled
&destination=40.728215,-73.958251
&range=600
&rangetype=time
Routing API
Positioning API
"Where is my driver?"
"When does she arrive?"
Where to?
Your driver will arrive in 4 mins
Confirm ride
$28.27
Thanks for riding with HERE, Richard!
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec ac mi a
sem viverra lobortis. Donec at massa vel nibh lobortis laoreet. Orci varius
natoque penatibus et magnis dis parturient montes, nascetur ridiculus
mus. Praesent finibus facilisis nisi, id consectetur eros scelerisque non.
Suspendisse ut ligula interdum, dictum velit vel, interdum erat. Sed
vulputate laoreet tempus. Sed varius felis sed lorem semper commodo.
Thank you for riding with Richard!
Give a compliment?
@sueselbeck
https://developer.here.com/

More Related Content

Similar to Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019

How to Build Your Own Ridesharing App (droidcon NYC 2018)
How to Build Your Own Ridesharing App (droidcon NYC 2018)How to Build Your Own Ridesharing App (droidcon NYC 2018)
How to Build Your Own Ridesharing App (droidcon NYC 2018)Richard Süselbeck
 
Creating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfCreating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfShaiAlmog1
 
GeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectGeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectKentaro Ishimaru
 
Background Life with Android O and beyond - Yonatan Levin, KolGene
Background Life with Android O and beyond - Yonatan Levin, KolGeneBackground Life with Android O and beyond - Yonatan Levin, KolGene
Background Life with Android O and beyond - Yonatan Levin, KolGeneDroidConTLV
 
Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Astrails
 
10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGluMobCon
 
Creating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfCreating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfShaiAlmog1
 
Where20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialWhere20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialShoaib Burq
 
Barcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduBarcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduMilos Lenoch
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-Oncodebits
 
Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands Oncodebits
 
Garmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkGarmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkHERE Technologies
 
Creating an Uber Clone - Part XXIX.pdf
Creating an Uber Clone - Part XXIX.pdfCreating an Uber Clone - Part XXIX.pdf
Creating an Uber Clone - Part XXIX.pdfShaiAlmog1
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsJeff Prestes
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android projectIpsit Dash
 
Developing Applications with Microsoft Virtual Earth
Developing Applications with Microsoft Virtual EarthDeveloping Applications with Microsoft Virtual Earth
Developing Applications with Microsoft Virtual Earthgoodfriday
 
Creating an Uber Clone - Part XV.pdf
Creating an Uber Clone - Part XV.pdfCreating an Uber Clone - Part XV.pdf
Creating an Uber Clone - Part XV.pdfShaiAlmog1
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talkshonjo2
 

Similar to Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019 (20)

How to Build Your Own Ridesharing App (droidcon NYC 2018)
How to Build Your Own Ridesharing App (droidcon NYC 2018)How to Build Your Own Ridesharing App (droidcon NYC 2018)
How to Build Your Own Ridesharing App (droidcon NYC 2018)
 
Creating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdfCreating an Uber Clone - Part XVII.pdf
Creating an Uber Clone - Part XVII.pdf
 
GeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri ProjectGeoTechTalk InkSatogaeri Project
GeoTechTalk InkSatogaeri Project
 
Background Life with Android O and beyond - Yonatan Levin, KolGene
Background Life with Android O and beyond - Yonatan Levin, KolGeneBackground Life with Android O and beyond - Yonatan Levin, KolGene
Background Life with Android O and beyond - Yonatan Levin, KolGene
 
Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.Migrating from Flux to Redux. Why and how.
Migrating from Flux to Redux. Why and how.
 
10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu10. Kapusta, Stofanak - eGlu
10. Kapusta, Stofanak - eGlu
 
Creating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdfCreating an Uber Clone - Part XVIII - Transcript.pdf
Creating an Uber Clone - Part XVIII - Transcript.pdf
 
Where20 2008 Ruby Tutorial
Where20 2008 Ruby TutorialWhere20 2008 Ruby Tutorial
Where20 2008 Ruby Tutorial
 
Barcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kóduBarcamp GoogleMaps - praktické ukázky kódu
Barcamp GoogleMaps - praktické ukázky kódu
 
Sapo GIS Hands-On
Sapo GIS Hands-OnSapo GIS Hands-On
Sapo GIS Hands-On
 
Gis SAPO Hands On
Gis SAPO Hands OnGis SAPO Hands On
Gis SAPO Hands On
 
Garmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - TalkGarmin Developer Summit 2018 - Talk
Garmin Developer Summit 2018 - Talk
 
Creating an Uber Clone - Part XXIX.pdf
Creating an Uber Clone - Part XXIX.pdfCreating an Uber Clone - Part XXIX.pdf
Creating an Uber Clone - Part XXIX.pdf
 
Beacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.js
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android project
 
Developing Applications with Microsoft Virtual Earth
Developing Applications with Microsoft Virtual EarthDeveloping Applications with Microsoft Virtual Earth
Developing Applications with Microsoft Virtual Earth
 
Creating an Uber Clone - Part XV.pdf
Creating an Uber Clone - Part XV.pdfCreating an Uber Clone - Part XV.pdf
Creating an Uber Clone - Part XV.pdf
 
Mashup caravan android-talks
Mashup caravan android-talksMashup caravan android-talks
Mashup caravan android-talks
 
Fact, Fiction, and FP
Fact, Fiction, and FPFact, Fiction, and FP
Fact, Fiction, and FP
 
YQL Tutorial
YQL TutorialYQL Tutorial
YQL Tutorial
 

More from Codemotion

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Codemotion
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyCodemotion
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaCodemotion
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserCodemotion
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Codemotion
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Codemotion
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 - Codemotion
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Codemotion
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Codemotion
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Codemotion
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Codemotion
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Codemotion
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Codemotion
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Codemotion
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...Codemotion
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Codemotion
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Codemotion
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Codemotion
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Codemotion
 
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...Codemotion
 

More from Codemotion (20)

Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
Fuzz-testing: A hacker's approach to making your code more secure | Pascal Ze...
 
Pompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending storyPompili - From hero to_zero: The FatalNoise neverending story
Pompili - From hero to_zero: The FatalNoise neverending story
 
Pastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storiaPastore - Commodore 65 - La storia
Pastore - Commodore 65 - La storia
 
Pennisi - Essere Richard Altwasser
Pennisi - Essere Richard AltwasserPennisi - Essere Richard Altwasser
Pennisi - Essere Richard Altwasser
 
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
Michel Schudel - Let's build a blockchain... in 40 minutes! - Codemotion Amst...
 
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
Eward Driehuis - What we learned from 20.000 attacks - Codemotion Amsterdam 2019
 
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 - Francesco Baldassarri  - Deliver Data at Scale - Codemotion Amsterdam 2019 -
Francesco Baldassarri - Deliver Data at Scale - Codemotion Amsterdam 2019 -
 
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
Martin Förtsch, Thomas Endres - Stereoscopic Style Transfer AI - Codemotion A...
 
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
Melanie Rieback, Klaus Kursawe - Blockchain Security: Melting the "Silver Bul...
 
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
Angelo van der Sijpt - How well do you know your network stack? - Codemotion ...
 
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
Lars Wolff - Performance Testing for DevOps in the Cloud - Codemotion Amsterd...
 
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
Sascha Wolter - Conversational AI Demystified - Codemotion Amsterdam 2019
 
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
Michele Tonutti - Scaling is caring - Codemotion Amsterdam 2019
 
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
Pat Hermens - From 100 to 1,000+ deployments a day - Codemotion Amsterdam 2019
 
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
James Birnie - Using Many Worlds of Compute Power with Quantum - Codemotion A...
 
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
Don Goodman-Wilson - Chinese food, motor scooters, and open source developmen...
 
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
Pieter Omvlee - The story behind Sketch - Codemotion Amsterdam 2019
 
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
Dave Farley - Taking Back “Software Engineering” - Codemotion Amsterdam 2019
 
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
Joshua Hoffman - Should the CTO be Coding? - Codemotion Amsterdam 2019
 
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
Mike Kotsur - What can philosophy teach us about programming - Codemotion Ams...
 

Recently uploaded

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 

Recently uploaded (20)

Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 

Richard Süselbeck - Building your own ride share app - Codemotion Amsterdam 2019

Editor's Notes

  1. DONE
  2. DONE
  3. DONE
  4. DONE
  5. DONE
  6. TODO: final imagery
  7. TODO: final imagery
  8. TODO: final imagery
  9. East Cut