Adam Dangoor - Verified Fakes of Web Services

A
Adam DangoorSoftware Engineer at Independent
@adamdangoor
adamtheturtle
VERIFIED FAKES OF
WEB SERVICES
@adamdangoor
adamtheturtle
VERIFIED FAKES OF
WEB SERVICES
Adam Dangoor - Verified Fakes of Web Services
VUFORIA WEB
SERVICES
VUFORIA WEB
SERVICES
VUFORIA
WEB
SERVICES
OUR APP DATABASE
def get_match(image):
...
response = requests.request(
method=‘GET',
url=‘https://vws.vuforia.com/match',
data={‘image’: b64encode(image)},
)
return wine_from_db(id=response.json()[‘id’])
Adam Dangoor - Verified Fakes of Web Services
INITIAL TEST CASE
DATABASE PHOTO RESULT
def test_match_wine():
add_wine(image=blue_nun, name=“Blue Nun”)
add_wine(image=cristal, name=“Cristal”)
result = get_match(image=blue_nun)
assert result.name == ”Blue Nun”
INITIAL TEST CASE
PROBLEMS
PROBLEMS
๏ FLAKY TESTS
PROBLEMS
๏ FLAKY TESTS
PROBLEMS
๏ FLAKY TESTS
๏ € € €
PROBLEMS
๏ FLAKY TESTS
๏ € € €
๏ SLOW TESTS
๏ RESOURCE LIMITS
INTEGRATION
TESTS
UNIT
TESTS
INTEGRATION
TESTS
UNIT
TESTS
‣ COVER A LOT
OF CODE
PER TEST
‣ COVER
LESS CODE
PER TEST
INTEGRATION
TESTS
UNIT
TESTS
‣ COVER A LOT
OF CODE
PER TEST
‣ CAN BE
SLOW
‣ COVER
LESS CODE
PER TEST
‣ FAST
INTEGRATION
TESTS
UNIT
TESTS
‣ COVER A LOT
OF CODE
PER TEST
‣ CAN BE
SLOW
‣ COVER
LESS CODE
PER TEST
‣ FAST
INTEGRATION
TESTS
UNIT
TESTS
MOCKS
MOCKS
MOCKS
MOCKING REQUESTS
$ pip install requests-mock
with requests_mock.mock() as mock:
mock.get('http://test.com', text='data')
print(requests.get('http://test.com').text)
# prints 'data'
MOCKING REQUESTS
$ pip install requests-mock
with requests_mock.mock() as mock:
mock.get('http://test.com', text='data')
print(requests.get('http://test.com').text)
# prints 'data'
PYTEST FIXTURES
$ pip install pytest
@pytest.fixture()
def mock_vuforia() -> Generator:
with requests_mock.mock() as mock:
mock.get('http://test.com', text='data')
...
yield
@pytest.mark.usefixture('mock_vuforia')
def test_add_target():
...
@pytest.fixture()
def mock_vuforia() -> Generator:
with requests_mock.mock() as mock:
mock.get('http://test.com', text='data')
...
yield
@pytest.mark.usefixture('mock_vuforia')
def test_add_target():
...
PYTEST FIXTURES
$ pip install pytest
REQUESTS-MOCK DYNAMIC
RESPONSES
@pytest.fixture()
def mock_vuforia() -> Generator:
pattern = re.compile(‘http://vws.vuforia.com/targets/w+')
with requests_mock.mock() as mock:
mock.register_uri(
‘POST',
pattern,
text=add_target_to_database,
)
...
yield
REQUESTS-MOCK DYNAMIC
RESPONSES
def add_target_to_database(request, context):
context.headers['Date'] = rfc_1123_date()
return json.dumps({'status': 'added'})
REQUESTS-MOCK DYNAMIC
RESPONSES
def add_target_to_database(request, context):
context.headers['Date'] = rfc_1123_date()
return json.dumps({'status': 'added'})
REQUESTS-MOCK DYNAMIC
RESPONSES
def add_target_to_database(request, context):
context.headers['Date'] = rfc_1123_date()
return json.dumps({'status': 'added'})
@pytest.fixture()
def mock_vuforia() -> Generator:
pattern = re.compile(‘http://vws.vuforia.com/targets/w+')
with requests_mock.mock() as mock:
mock.register_uri(
‘POST',
pattern,
text=add_target_to_database,
)
...
yield
USING THE MOCK IN A TEST
@pytest.mark.usefixtures(‘mock_vuforia’)
def test_match_wine():
add_wine(image=blue_nun, name=“Blue Nun”)
add_wine(image=cristal, name=“Cristal”)
result = get_match(image=blue_nun)
assert result.name == ”Blue Nun”
๏ HUMAN ERROR
PROBLEMS WITH MOCKS
๏ HUMAN ERROR
๏ BECOME OUTDATED
PROBLEMS WITH MOCKS
VWS-PYTHON
COMING SOON TO PYPI
GOALS
๏ PYTHON LIBRARY FOR
VUFORIA
๏ MOCK ANYONE CAN USE
TRAVIS CI
๏ FREE FOR OSS
๏ SUPPORT FOR
SECRETS
๏ FREE FOR OSS
๏ SUPPORT FOR
SECRETS
TRAVIS CI
WRITING A
MOCK
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
VERIFIED FAKE
[A verified fake] is verified against (a
subset of) the same test suite as the
real implementation, as well as
providing an introspection API that
allows test cases to verify that it did
the right thing. — Glyph
PARAMETRIZING PYTEST
FIXTURES
@pytest.fixture(params=[True, False])
def my_fixture(request):
assert request.param
decorated_test[True]PASSED
decorated_test[False]FAILED
@pytest.mark.usefixtures(‘my_fixture’)
def decorated_test():
pass
PARAMETRIZING PYTEST
FIXTURES
@pytest.fixture(params=[True, False])
def my_fixture(request):
assert request.param
decorated_test[True]PASSED
decorated_test[False]FAILED
@pytest.mark.usefixtures(‘my_fixture’)
def decorated_test():
pass
PARAMETRIZING PYTEST
FIXTURES
@pytest.fixture(
params=[True, False],
ids=['Real Vuforia', 'Mock Vuforia'])
def verify_fake_vuforia(request):
use_real_vuforia = request.param
if use_real_vuforia:
yield
else:
pattern = re.compile(‘http://vws.vuforia.com/targets/w+')
with requests_mock.mock() as mock:
mock.post(pattern, text=add_target_to_database)
...
yield
TEST RESULTS
test_add_target.py::test_existing_target_name[Real Vuforia]PASSED
test_add_target.py::test_existing_target_name[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_existing_target_name[Real Vuforia]PASSED
test_add_target.py::test_existing_target_name[Mock Vuforia]PASSED
๏ WE TRUST THE
MOCK…SO WE TRUST
THE TESTS WHICH USE
THE MOCK
BENEFITS
๏ WE TRUST THE
MOCK…SO WE TRUST
THE TESTS WHICH USE
THE MOCK
BENEFITS
๏ TESTS TELL US IF THE
MOCK IS OUTDATED
BENEFITS
๏ TESTS TELL US IF THE
MOCK IS OUTDATED
BENEFITS
SCHEDULED TESTS
WITH
TRAVIS CI CRON JOBS
SCHEDULED TESTS
WITH
TRAVIS CI CRON JOBS
SCHEDULED TESTS
WITH
TRAVIS CI CRON JOBS
SCHEDULED TESTS
WITH
TRAVIS CI CRON JOBS
WHEN THE
SERVICE
CHANGES
@pytest.mark.usefixtures(‘verify_fake_vuforia’)
def test_zero_width_valid():
data = {
'name': 'example',
'width': 0,
'image': image_data_encoded,
}
response = add_target_to_vws(data=data)
assert_success(response=response)
Adam Dangoor - Verified Fakes of Web Services
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
TEST RESULTS
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
test_add_target.py::test_zero_width[Real Vuforia]FAILED
test_add_target.py::test_zero_width[Mock Vuforia]PASSED
TEST RESULTS
SHIPPING A VERIFIED
FAKE ADDS VALUE TO
YOUR PRODUCT
SHIPPING A VERIFIED
FAKE ADDS VALUE TO
YOUR PRODUCT
SHIPPING A VERIFIED
FAKE ADDS VALUE TO
YOUR PRODUCT
SHIPPING A VERIFIED
FAKE ADDS VALUE TO
YOUR PRODUCT
SHIPPING A VERIFIED
FAKE ADDS VALUE TO
YOUR PRODUCT
CROSS-
LANGUAGE
SUPPORT
DOCKER
DOCKER
CHEERS
@adamdangoor
adamtheturtle
1 of 77

Recommended

Espresso devoxx 2014 by
Espresso devoxx 2014Espresso devoxx 2014
Espresso devoxx 2014Publicis Sapient Engineering
842 views42 slides
Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016] by
Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016]Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016]
Selenide alternative in Python - Introducing Selene [SeleniumCamp 2016]Iakiv Kramarenko
10.1K views93 slides
Quality Assurance for PHP projects - ZendCon 2012 by
Quality Assurance for PHP projects - ZendCon 2012Quality Assurance for PHP projects - ZendCon 2012
Quality Assurance for PHP projects - ZendCon 2012Michelangelo van Dam
9.3K views223 slides
QA for PHP projects by
QA for PHP projectsQA for PHP projects
QA for PHP projectsMichelangelo van Dam
2.6K views105 slides
KISS Automation.py by
KISS Automation.pyKISS Automation.py
KISS Automation.pyIakiv Kramarenko
449 views68 slides
Confident Refactoring - Ember SF Meetup by
Confident Refactoring - Ember SF MeetupConfident Refactoring - Ember SF Meetup
Confident Refactoring - Ember SF MeetupFastly
568 views23 slides

More Related Content

What's hot

Building Commerce into Mobile Apps with Shopify's Android Buy SDK by
Building Commerce into Mobile Apps with Shopify's Android Buy SDKBuilding Commerce into Mobile Apps with Shopify's Android Buy SDK
Building Commerce into Mobile Apps with Shopify's Android Buy SDKJosh Brown
388 views39 slides
Workshop quality assurance for php projects tek12 by
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12Michelangelo van Dam
3.2K views221 slides
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT) by
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Mike Schinkel
10.5K views92 slides
Developing eCommerce Apps with the Shopify API by
Developing eCommerce Apps with the Shopify APIDeveloping eCommerce Apps with the Shopify API
Developing eCommerce Apps with the Shopify APIJosh Brown
357 views73 slides
ISSTA 2010 Presentation by
ISSTA 2010 PresentationISSTA 2010 Presentation
ISSTA 2010 PresentationJulian Dolby
567 views22 slides
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create by
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createPeter Lehto
2.2K views98 slides

What's hot(20)

Building Commerce into Mobile Apps with Shopify's Android Buy SDK by Josh Brown
Building Commerce into Mobile Apps with Shopify's Android Buy SDKBuilding Commerce into Mobile Apps with Shopify's Android Buy SDK
Building Commerce into Mobile Apps with Shopify's Android Buy SDK
Josh Brown388 views
Workshop quality assurance for php projects tek12 by Michelangelo van Dam
Workshop quality assurance for php projects tek12Workshop quality assurance for php projects tek12
Workshop quality assurance for php projects tek12
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT) by Mike Schinkel
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 (PPT)
Mike Schinkel10.5K views
Developing eCommerce Apps with the Shopify API by Josh Brown
Developing eCommerce Apps with the Shopify APIDeveloping eCommerce Apps with the Shopify API
Developing eCommerce Apps with the Shopify API
Josh Brown357 views
ISSTA 2010 Presentation by Julian Dolby
ISSTA 2010 PresentationISSTA 2010 Presentation
ISSTA 2010 Presentation
Julian Dolby567 views
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create by Peter Lehto
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.createRemote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Remote controlling Parrot AR drone with Vaadin & Spring Boot @ GWT.create
Peter Lehto2.2K views
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014 by Mike Schinkel
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014Hardcore URL Routing for WordPress - WordCamp Atlanta 2014
Hardcore URL Routing for WordPress - WordCamp Atlanta 2014
Mike Schinkel10.4K views
From typing the test to testing the type by Wim Godden
From typing the test to testing the typeFrom typing the test to testing the type
From typing the test to testing the type
Wim Godden1.3K views
Django’s nasal passage by Erik Rose
Django’s nasal passageDjango’s nasal passage
Django’s nasal passage
Erik Rose6.5K views
Testing My Patience by Adam Lowry
Testing My PatienceTesting My Patience
Testing My Patience
Adam Lowry2.4K views
Pytest: escreva menos, teste mais by Erick Wilder
Pytest: escreva menos, teste maisPytest: escreva menos, teste mais
Pytest: escreva menos, teste mais
Erick Wilder854 views
"Managing API Complexity". Matthew Flaming, Temboo by Yandex
"Managing API Complexity". Matthew Flaming, Temboo"Managing API Complexity". Matthew Flaming, Temboo
"Managing API Complexity". Matthew Flaming, Temboo
Yandex3K views
Satellite Apps around the Cloud: Integrating your infrastructure with JIRA St... by Atlassian
Satellite Apps around the Cloud: Integrating your infrastructure with JIRA St...Satellite Apps around the Cloud: Integrating your infrastructure with JIRA St...
Satellite Apps around the Cloud: Integrating your infrastructure with JIRA St...
Atlassian462 views
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma... by apidays
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
APIdays Helsinki 2019 - API Versioning with REST, JSON and Swagger with Thoma...
apidays256 views
Workshop quality assurance for php projects - ZendCon 2013 by Michelangelo van Dam
Workshop quality assurance for php projects - ZendCon 2013Workshop quality assurance for php projects - ZendCon 2013
Workshop quality assurance for php projects - ZendCon 2013
Michelangelo van Dam21.5K views
UA testing with Selenium and PHPUnit - PFCongres 2013 by Michelangelo van Dam
UA testing with Selenium and PHPUnit - PFCongres 2013UA testing with Selenium and PHPUnit - PFCongres 2013
UA testing with Selenium and PHPUnit - PFCongres 2013
Py.test by soasme
Py.testPy.test
Py.test
soasme6.7K views
Web ui tests examples with selenide, nselene, selene & capybara by Iakiv Kramarenko
Web ui tests examples with  selenide, nselene, selene & capybaraWeb ui tests examples with  selenide, nselene, selene & capybara
Web ui tests examples with selenide, nselene, selene & capybara
Iakiv Kramarenko1.1K views
Practical unit testing 2014 by Andrew Fray
Practical unit testing 2014Practical unit testing 2014
Practical unit testing 2014
Andrew Fray388 views

Similar to Adam Dangoor - Verified Fakes of Web Services

How to test complex SaaS applications - The family july 2014 by
How to test complex SaaS applications - The family july 2014How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014Guillaume POTIER
673 views38 slides
Javascript in Plone by
Javascript in PloneJavascript in Plone
Javascript in PloneSteve McMahon
2.2K views72 slides
Unit testing with zend framework tek11 by
Unit testing with zend framework tek11Unit testing with zend framework tek11
Unit testing with zend framework tek11Michelangelo van Dam
3.6K views102 slides
WordPress Realtime - WordCamp São Paulo 2015 by
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015Fernando Daciuk
3.7K views81 slides
Unit testing with zend framework PHPBenelux by
Unit testing with zend framework PHPBeneluxUnit testing with zend framework PHPBenelux
Unit testing with zend framework PHPBeneluxMichelangelo van Dam
4.6K views102 slides
Seven Peaks Speaks - Compose Screenshot Testing Made Easy by
Seven Peaks Speaks - Compose Screenshot Testing Made EasySeven Peaks Speaks - Compose Screenshot Testing Made Easy
Seven Peaks Speaks - Compose Screenshot Testing Made EasySeven Peaks Speaks
49 views53 slides

Similar to Adam Dangoor - Verified Fakes of Web Services(20)

How to test complex SaaS applications - The family july 2014 by Guillaume POTIER
How to test complex SaaS applications - The family july 2014How to test complex SaaS applications - The family july 2014
How to test complex SaaS applications - The family july 2014
Guillaume POTIER673 views
WordPress Realtime - WordCamp São Paulo 2015 by Fernando Daciuk
WordPress Realtime - WordCamp São Paulo 2015WordPress Realtime - WordCamp São Paulo 2015
WordPress Realtime - WordCamp São Paulo 2015
Fernando Daciuk3.7K views
Seven Peaks Speaks - Compose Screenshot Testing Made Easy by Seven Peaks Speaks
Seven Peaks Speaks - Compose Screenshot Testing Made EasySeven Peaks Speaks - Compose Screenshot Testing Made Easy
Seven Peaks Speaks - Compose Screenshot Testing Made Easy
스프링 시큐리티로 시작하는 웹 어플리케이션 보안 by HyungTae Lim
스프링 시큐리티로 시작하는 웹 어플리케이션 보안스프링 시큐리티로 시작하는 웹 어플리케이션 보안
스프링 시큐리티로 시작하는 웹 어플리케이션 보안
HyungTae Lim4K views
Deploying Next Gen Systems with Zero Downtime by Twilio Inc
Deploying Next Gen Systems with Zero DowntimeDeploying Next Gen Systems with Zero Downtime
Deploying Next Gen Systems with Zero Downtime
Twilio Inc2.4K views
Summit2011 satellites-robinf-20110605 by Robin Fernandes
Summit2011 satellites-robinf-20110605Summit2011 satellites-robinf-20110605
Summit2011 satellites-robinf-20110605
Robin Fernandes683 views
Continuous Integration with Gitlab by Junyoung Park
Continuous Integration with GitlabContinuous Integration with Gitlab
Continuous Integration with Gitlab
Junyoung Park272 views
Crafting Quality PHP Applications: an overview (PHPSW March 2018) by James Titcumb
Crafting Quality PHP Applications: an overview (PHPSW March 2018)Crafting Quality PHP Applications: an overview (PHPSW March 2018)
Crafting Quality PHP Applications: an overview (PHPSW March 2018)
James Titcumb210 views
Best practices for crafting high quality PHP apps (PHP South Africa 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP South Africa 2018)Best practices for crafting high quality PHP apps (PHP South Africa 2018)
Best practices for crafting high quality PHP apps (PHP South Africa 2018)
James Titcumb122 views
Guard Authentication: Powerful, Beautiful Security by Ryan Weaver
Guard Authentication: Powerful, Beautiful SecurityGuard Authentication: Powerful, Beautiful Security
Guard Authentication: Powerful, Beautiful Security
Ryan Weaver9.4K views
Post Sharp Talk by willmation
Post Sharp TalkPost Sharp Talk
Post Sharp Talk
willmation632 views
RIAs Done Right: Grails, Flex, and EXT GWT by Michael Galpin
RIAs Done Right: Grails, Flex, and EXT GWTRIAs Done Right: Grails, Flex, and EXT GWT
RIAs Done Right: Grails, Flex, and EXT GWT
Michael Galpin870 views
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018) by James Titcumb
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
Best practices for crafting high quality PHP apps (PHP Yorkshire 2018)
James Titcumb264 views

Recently uploaded

Transcript: The Details of Description Techniques tips and tangents on altern... by
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...BookNet Canada
130 views15 slides
Future of Learning - Khoong Chan Meng by
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan MengNUS-ISS
33 views7 slides
[2023] Putting the R! in R&D.pdf by
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdfEleanor McHugh
38 views127 slides
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica... by
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...NUS-ISS
16 views28 slides
Understanding GenAI/LLM and What is Google Offering - Felix Goh by
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix GohNUS-ISS
41 views33 slides
ChatGPT and AI for Web Developers by
ChatGPT and AI for Web DevelopersChatGPT and AI for Web Developers
ChatGPT and AI for Web DevelopersMaximiliano Firtman
181 views82 slides

Recently uploaded(20)

Transcript: The Details of Description Techniques tips and tangents on altern... by BookNet Canada
Transcript: The Details of Description Techniques tips and tangents on altern...Transcript: The Details of Description Techniques tips and tangents on altern...
Transcript: The Details of Description Techniques tips and tangents on altern...
BookNet Canada130 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS33 views
[2023] Putting the R! in R&D.pdf by Eleanor McHugh
[2023] Putting the R! in R&D.pdf[2023] Putting the R! in R&D.pdf
[2023] Putting the R! in R&D.pdf
Eleanor McHugh38 views
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica... by NUS-ISS
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
Emerging & Future Technology - How to Prepare for the Next 10 Years of Radica...
NUS-ISS16 views
Understanding GenAI/LLM and What is Google Offering - Felix Goh by NUS-ISS
Understanding GenAI/LLM and What is Google Offering - Felix GohUnderstanding GenAI/LLM and What is Google Offering - Felix Goh
Understanding GenAI/LLM and What is Google Offering - Felix Goh
NUS-ISS41 views
Data-centric AI and the convergence of data and model engineering: opportunit... by Paolo Missier
Data-centric AI and the convergence of data and model engineering:opportunit...Data-centric AI and the convergence of data and model engineering:opportunit...
Data-centric AI and the convergence of data and model engineering: opportunit...
Paolo Missier34 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin75 views
Empathic Computing: Delivering the Potential of the Metaverse by Mark Billinghurst
Empathic Computing: Delivering  the Potential of the MetaverseEmpathic Computing: Delivering  the Potential of the Metaverse
Empathic Computing: Delivering the Potential of the Metaverse
Mark Billinghurst470 views
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze by NUS-ISS
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng TszeDigital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
Digital Product-Centric Enterprise and Enterprise Architecture - Tan Eng Tsze
NUS-ISS19 views
AI: mind, matter, meaning, metaphors, being, becoming, life values by Twain Liu 刘秋艳
AI: mind, matter, meaning, metaphors, being, becoming, life valuesAI: mind, matter, meaning, metaphors, being, becoming, life values
AI: mind, matter, meaning, metaphors, being, becoming, life values
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen... by NUS-ISS
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
Upskilling the Evolving Workforce with Digital Fluency for Tomorrow's Challen...
NUS-ISS28 views
Spesifikasi Lengkap ASUS Vivobook Go 14 by Dot Semarang
Spesifikasi Lengkap ASUS Vivobook Go 14Spesifikasi Lengkap ASUS Vivobook Go 14
Spesifikasi Lengkap ASUS Vivobook Go 14
Dot Semarang35 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk88 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet55 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS34 views
Five Things You SHOULD Know About Postman by Postman
Five Things You SHOULD Know About PostmanFive Things You SHOULD Know About Postman
Five Things You SHOULD Know About Postman
Postman27 views
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu... by NUS-ISS
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
Architecting CX Measurement Frameworks and Ensuring CX Metrics are fit for Pu...
NUS-ISS37 views
AMAZON PRODUCT RESEARCH.pdf by JerikkLaureta
AMAZON PRODUCT RESEARCH.pdfAMAZON PRODUCT RESEARCH.pdf
AMAZON PRODUCT RESEARCH.pdf
JerikkLaureta15 views

Adam Dangoor - Verified Fakes of Web Services