SlideShare a Scribd company logo
THE LIFE
OF
YOUR APP
Eyal LEZMY

SLIDES

http://bit.ly/lifeofapp
http://eyal.fr
AGENDA
CODEURS EN SEINE

01

02

03

04

Install it

Launch it

Look at it

Use it
01

IT ALL STARTS ON THE
PLAY STORE
MINIMISE PERMISSIONS

Users should
prefer apps
requesting the
least
permissions

Request only what your app
requires
1/3 of apps request more permissions
than they need
MINIMISE PERMISSIONS

Users should
prefer apps
requesting the
least
permissions

You don’t need permission
Use ContentProviders
MINIMISE PERMISSIONS

Permission are not required to
launch another activity that has
the permission
MINIMISE PERMISSIONS

Need a
contact?
MINIMISE PERMISSIONS

Use the force,
Luke
MINIMISE PERMISSIONS

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, MY_REQUEST_CODE);

void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = getContentResolver().query(uri, new String[]
{Contacts.DISPLAY_NAME, Phone.NUMBER}, null, null, null);}
}
}
}
MINIMISE PERMISSIONS
Start the contact app

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, MY_REQUEST_CODE);

void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = getContentResolver().query(uri, new String[]
{Contacts.DISPLAY_NAME, Phone.NUMBER}, null, null, null);}
}
}
}
MINIMISE PERMISSIONS
Start the contact app

Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType(Phone.CONTENT_ITEM_TYPE);
startActivityForResult(intent, MY_REQUEST_CODE);

void onActivityResult(int requestCode, int resultCode, Intent
data) {
if (data != null) {
Uri uri = data.getData();
if (uri != null) {
Cursor c = getContentResolver().query(uri, new String[]
{Contacts.DISPLAY_NAME, Phone.NUMBER}, null, null, null);}
}
}
}

Handle the result
MINIMISE PERMISSIONS

Need an
UUID?

TelephonyManager.getDeviceId()
Requires READ_PHONE_STATE permission

Settings.Secure.ANDROID_ID
Reset at every wipe
Not applicable on multi user environment
MINIMISE PERMISSIONS

Need an
UUID?

TelephonyManager.getDeviceId()
Requires READ_PHONE_STATE permission

Settings.Secure.ANDROID_ID
Reset at every wipe
Not applicable on multi user environment

NO!
MINIMISE PERMISSIONS

Need an
UUID?

Generate your own UUID and use
Backup API !
String id = UUID.randomUUID().
toString();
MINIMISE PERMISSIONS

Need an
UUID?

Generate your own UUID and use
Backup API !
String id = UUID.randomUUID().
toString();

YES!
MINIMISE PERMISSIONS

Android Backup API
· API is available on all Android devices.
· Manufacturors can implements their own
transport and storage for the API
· Each device as its own backup data
· A new device will take a backup from a device
associated with your google account.
· IT'S NOT A SYNC API !
02

THE FIRST LAUNCH
THE FIRST LAUNCH

Make a
good
impression
THE FIRST LAUNCH

Lets start!
http://cyrilmottier.com
THE FIRST LAUNCH

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.MyTheme"
... >

We define our personal theme
including the correct styles and colors
THE FIRST LAUNCH

Let’s start...
Again!
My Big

BR
D
AN
LOADING ...
THE FIRST LAUNCH

A bunch of
data to
insert?

Use SQL transactions to save
time!
THE FIRST LAUNCH
Start transaction

db.beginTransaction();
try{
for(int i=0; i<selectedIds.length; i++){
values.put(COLUMN_ID,selectedIds[i]);
values.put(COLUMN_STARRED,starred);
db.insert(TABLE_STARRED,null,values);
db.yieldIfContendedSafely();
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
THE FIRST LAUNCH
Start transaction

db.beginTransaction();
try{
for(int i=0; i<selectedIds.length; i++){
values.put(COLUMN_ID,selectedIds[i]);
values.put(COLUMN_STARRED,starred);
db.insert(TABLE_STARRED,null,values);
db.yieldIfContendedSafely();
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}

End transaction
THE FIRST LAUNCH
Start transaction

db.beginTransaction();
try{
for(int i=0; i<selectedIds.length; i++){
values.put(COLUMN_ID,selectedIds[i]);
values.put(COLUMN_STARRED,starred);
db.insert(TABLE_STARRED,null,values);
db.yieldIfContendedSafely();
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}

End transaction

Optimise multi-threaded insertion
THE FIRST LAUNCH

Faster?
Import directly, ready to use
databases
THE FIRST LAUNCH

ON THE SERVER
· Create your db file using SQlite and fill it
· Name your primary key columns "_id"
· Create the table : "android_metadata"
· And insert a single row containing the local

if defined (ex: "en_US"), or open your database
using :
openDatabase(dbPath, null,
SQLiteDatabase.NO_LOCALIZED_COLLATORS |
SQLiteDatabase.CREATE_IF_NECESSARY);
THE FIRST LAUNCH

ON THE MOBILE
· Grab the zipped database from assets or

network
· Unzip it to your getDatabaseDir()
· Open the database

Be careful of the SQLite version !
03

LOOK AND FEEL
?

?

?
LOOK AND FEEL

HOTMAIL

OUTLOOK.COM
LOOK AND FEEL

SAME!

HOTMAIL

OUTLOOK.COM
LOOK AND FEEL

FOLLOW THE GUIDELINES!
http://d.android.com/design
LOOK AND FEEL

Redesigned by Taylor Ling
LOOK AND FEEL

By Microsoft
LOOK AND FEEL
LOOK AND FEEL
LOOK AND FEEL

FOLLOW THE GUIDELINES!
http://d.android.com/design
LOOK AND FEEL

PLEASE!

FOLLOW THE GUIDELINES!
http://d.android.com/design
04

A DAILY USE
SMOOTHEN YOUR UI

UI Thread
=
Events+Draw

16 ms to draw a frame (~60 fps)
Garbage Collector may take 10ms
And stop all threads
SMOOTHEN YOUR UI

Flatten the
View
Hierarchy

· Use RelativeLayout instead of

LinearLayout
· Use the <merge/> tag when possible
· Use hierarchyviewer to inspect

your layouts
SMOOTHEN YOUR UI

Avoid
overdraws

· Do not draw your background several times
· Use the “GPU Overdraw” tool from Android

4.2
SMOOTHEN YOUR UI

Avoid
autoboxing

Use SparseArray
SMOOTHEN YOUR UI

Hashmap<Integer, Object> hashmap = new HashMap<Integer, Object>();
hashmap.put(1789, mRevolution);
...
hashmap.get(1789);

SparseArray<Object> sparseArray = new SparseArray<Object>();
sparseArray.put(1789, mRevolution);
...
sparseArray.get(1789);
SMOOTHEN YOUR UI

Hashmap<Integer, Object> hashmap = new HashMap<Integer, Object>();
hashmap.put(1789, mRevolution);
...
hashmap.get(1789);
new Integer(1789)

SparseArray<Object> sparseArray = new SparseArray<Object>();
sparseArray.put(1789, mRevolution);
...
sparseArray.get(1789);
SMOOTHEN YOUR UI

Hashmap<Integer, Object> hashmap = new HashMap<Integer, Object>();
hashmap.put(1789, mRevolution);
...
hashmap.get(1789);
new Integer(1789)

new Integer(1789)

SparseArray<Object> sparseArray = new SparseArray<Object>();
sparseArray.put(1789, mRevolution);
...
sparseArray.get(1789);
SMOOTHEN YOUR UI

Hashmap<Integer, Object> hashmap = new HashMap<Integer, Object>();
hashmap.put(1789, mRevolution);
...
hashmap.get(1789);
new Integer(1789)

new Integer(1789)

SparseArray<Object> sparseArray = new SparseArray<Object>();
sparseArray.put(1789, mRevolution);
...
sparseArray.get(1789);
Low memory footprint and no more GC!
SMOOTHEN YOUR UI

Load
bitmap
cleverly

·

Reuse it

· Use sampling
SMOOTHEN YOUR UI

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inBitmap = myOldBitmap;
Bitmap scaledBitmap = BitmapFactory.decode...(..., bitmapOptions);

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inSampleSize = sampleSize;
SMOOTHEN YOUR UI

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inBitmap = myOldBitmap;
Bitmap scaledBitmap = BitmapFactory.decode...(..., bitmapOptions);
Define the bitmap to reuse (API level 11)

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inSampleSize = sampleSize;
SMOOTHEN YOUR UI

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inBitmap = myOldBitmap;
Bitmap scaledBitmap = BitmapFactory.decode...(..., bitmapOptions);
Define the bitmap to reuse (API level 11)

Use the option for loading

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inSampleSize = sampleSize;
SMOOTHEN YOUR UI

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inBitmap = myOldBitmap;
Bitmap scaledBitmap = BitmapFactory.decode...(..., bitmapOptions);
Define the bitmap to reuse (API level 11)

Use the option for loading

BitmapFactory.Options bitmapOptions = new BitmapFactory.Options();
bitmapOptions.inSampleSize = sampleSize;

Define the subsampling level (API Level 1)
PRESERVE THE BATTERY
PRESERVE THE BATTERY

Screen: 1st item of consumtion
30 to 70% of the battery life
PRESERVE THE BATTERY

WakeLocks

Basically you don’t need it
Only a few kind of applications should need to
stay the device awake (Reader, Games, …)

Think about the context
Release wake lock if you have good
assumptions that the user is not using your
app anymore
PRESERVE THE BATTERY

Geolocation

GPS
· Permission ACCESS_FINE_LOCATION
· Drains a lot of power
· Works offline

Network location
·
·
·
·

Permission ACCESS_COARSE_LOCATION

Need to be online
Fast
Precise in urban area
PRESERVE THE BATTERY

Geolocation

Define a strategy
· What is the needed precision for my app?
· Define the measure interval wisely
· Consider the GPS fix time

Use Fused Location Provider
On Google Play Services
PRESERVE THE BATTERY

Network

Radio drains a lot of power
Group data to minimize the number of
requests

Use caching!
PRESERVE THE BATTERY

private void enableHttpResponseCache() {
try {
long httpCacheSize = 10 * 1024 * 1024; // 10 MiB
File httpCacheDir = new File(getCacheDir(), “http”);
Class.forName(“android.net.http.HttpResponseCache”)
.getMethod(“install”, File.class, long.class)
.invoke(null, httpCacheDir, httpCacheSize);
} catch (Exception httpResponseCacheNotAvailable) {
Log.d(TAG, “HTTP response cache is unavailable.”);
}
}

Enable cache, if available (API level 13)
Or use a backport like HttpResponseCache
PRESERVE THE BATTERY

Network

Enable GZIP on the server
30 to 50% less trafic

Use ETAGs
PRESERVE THE BATTERY
BE INSPIRED

Gestures Text to Speech Accelerometer
Voice recognition Proximity sensor Bluetooth
NFC
Direct Wifi Second Screen
BE INSPIRED

Explore all the device’s possibilities
Thank You for your time !

SLIDES
http://bit.ly/lifeofapp

http://eyal.fr

More Related Content

What's hot

Using android's action bar
Using android's action barUsing android's action bar
Using android's action bar
Danilo Freitas de Souza
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App Store
Geoffrey Goetz
 
Automating the Gaps of Unit Testing Mobile Apps
Automating the Gaps of Unit Testing Mobile AppsAutomating the Gaps of Unit Testing Mobile Apps
Automating the Gaps of Unit Testing Mobile Apps
Geoffrey Goetz
 
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Applets
amitksaha
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648Eing Ong
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.jsVerold
 
Applet programming
Applet programming Applet programming
Applet programming
Devyani Vaidya
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
Tareq Hasan
 
L18 applets
L18 appletsL18 applets
L18 applets
teach4uin
 
java Applet Introduction
java Applet Introductionjava Applet Introduction
java Applet Introduction
yugandhar vadlamudi
 
Java applets
Java appletsJava applets
Java applets
Khan Mac-arther
 
ITFT- Applet in java
ITFT- Applet in javaITFT- Applet in java
ITFT- Applet in java
Atul Sehdev
 
Java Applets
Java AppletsJava Applets

What's hot (13)

Using android's action bar
Using android's action barUsing android's action bar
Using android's action bar
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App Store
 
Automating the Gaps of Unit Testing Mobile Apps
Automating the Gaps of Unit Testing Mobile AppsAutomating the Gaps of Unit Testing Mobile Apps
Automating the Gaps of Unit Testing Mobile Apps
 
Applet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java AppletsApplet Architecture - Introducing Java Applets
Applet Architecture - Introducing Java Applets
 
2012 java one-con3648
2012 java one-con36482012 java one-con3648
2012 java one-con3648
 
Getting started with Verold and Three.js
Getting started with Verold and Three.jsGetting started with Verold and Three.js
Getting started with Verold and Three.js
 
Applet programming
Applet programming Applet programming
Applet programming
 
Java: Java Applets
Java: Java AppletsJava: Java Applets
Java: Java Applets
 
L18 applets
L18 appletsL18 applets
L18 applets
 
java Applet Introduction
java Applet Introductionjava Applet Introduction
java Applet Introduction
 
Java applets
Java appletsJava applets
Java applets
 
ITFT- Applet in java
ITFT- Applet in javaITFT- Applet in java
ITFT- Applet in java
 
Java Applets
Java AppletsJava Applets
Java Applets
 

Similar to Android, the life of your app

Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backend
Joseluis Laso
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
Aeshan Wijetunge
 
Tizen application inside out
Tizen application inside outTizen application inside out
Tizen application inside out
Eun Young Lee
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
Bitbar
 
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
Wim Selles
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Opersys inc.
 
Best practices android_2010
Best practices android_2010Best practices android_2010
Best practices android_2010
Sunil Bhatia (Certified Scrum Master)
 
Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel Puterman
Applitools
 
Top Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on TabletsTop Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on Tablets
Motorola Mobility - MOTODEV
 
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptxLecture 12 - Maps, AR_VR_aaaaHardware.pptx
Lecture 12 - Maps, AR_VR_aaaaHardware.pptx
NgLQun
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
katayoon_bz
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
Keshav Chauhan
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
Ed Zel
 
Appium- part 1
Appium- part 1Appium- part 1
Appium- part 1
Mithilesh Singh
 
21 android2 updated
21 android2 updated21 android2 updated
21 android2 updated
GhanaGTUG
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015
Aleksander Piotrowski
 

Similar to Android, the life of your app (20)

Introduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backendIntroduction to Titanium and how to connect with a PHP backend
Introduction to Titanium and how to connect with a PHP backend
 
Lightning Talk - Xamarin
Lightning Talk - Xamarin Lightning Talk - Xamarin
Lightning Talk - Xamarin
 
Sst hackathon express
Sst hackathon expressSst hackathon express
Sst hackathon express
 
Tizen application inside out
Tizen application inside outTizen application inside out
Tizen application inside out
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
 
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018How React Native, Appium and me made each other shine @Frontmania 16-11-2018
How React Native, Appium and me made each other shine @Frontmania 16-11-2018
 
Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014Running Code in the Android Stack at ABS 2014
Running Code in the Android Stack at ABS 2014
 
Best practices android_2010
Best practices android_2010Best practices android_2010
Best practices android_2010
 
Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel Puterman
 
Top Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on TabletsTop Tips for Android UIs - Getting the Magic on Tablets
Top Tips for Android UIs - Getting the Magic on Tablets
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android
AndroidAndroid
Android
 
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
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Android tutorial
Android tutorialAndroid tutorial
Android tutorial
 
Appium- part 1
Appium- part 1Appium- part 1
Appium- part 1
 
21 android2 updated
21 android2 updated21 android2 updated
21 android2 updated
 
Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015Android 5.0 internals and inferiority complex droidcon.de 2015
Android 5.0 internals and inferiority complex droidcon.de 2015
 

Recently uploaded

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
Vlad Stirbu
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
James Anderson
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Paige Cruz
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
Product School
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
Elena Simperl
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
Alison B. Lowndes
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
Kari Kakkonen
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

Quantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIsQuantum Computing: Current Landscape and the Future Role of APIs
Quantum Computing: Current Landscape and the Future Role of APIs
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...
 
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdfObservability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
Observability Concepts EVERY Developer Should Know -- DeveloperWeek Europe.pdf
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Assure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyesAssure Contact Center Experiences for Your Customers With ThousandEyes
Assure Contact Center Experiences for Your Customers With ThousandEyes
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........Bits & Pixels using AI for Good.........
Bits & Pixels using AI for Good.........
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
DevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA ConnectDevOps and Testing slides at DASA Connect
DevOps and Testing slides at DASA Connect
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

Android, the life of your app