SlideShare uma empresa Scribd logo
1 de 78
Database-driven mobile
   AIR applications



     The power of ORM
Who Am I?
Steven Peeters
Instructor / consultant at multimediacollegeTM

• Adobe Flex, AIR, Flash Catalyst & ColdFusion Certified Instructor
• Adobe Community Professional
• ColdFusion User Group Manager
• 12+ years of development experience
• Flex & AIR since 2004
• Author for Friends of ED

 Email:        steven@multimediacollege.be
 LinkedIn:     www.linkedin.com/in/stevenpeeters
 Twitter:      @aikisteve
 Blog:         www.flexpert.be
 Website:      www.multimediacollege.be
Topics



• Database in AIR
• Using ColdFusion’s ORM
• Synchronising with a remote server
• Applying to mobile applications
Twitter hash tag: #airorm
Database in AIR
Database in AIR


• SQLite
Database in AIR


• SQLite
 • Lightweight database
Database in AIR


• SQLite
 • Lightweight database
 • Limited type support
Database in AIR


• SQLite
 • Lightweight database
 • Limited type support
 • Easy to use
Database in AIR


• SQLite
 • Lightweight database
 • Limited type support
 • Easy to use
 • Available offline
Database in AIR


• SQLite
 • Lightweight database
 • Limited type support
 • Easy to use
 • Available offline
 • Synchronous AND asynchronous access
Database encryption
Database encryption



• 256-bit AES encryption
Database encryption



• 256-bit AES encryption
• Use EncryptionKeyGenerator to validate strength
  of encryption key
     • as3corelib on code.google.com
Database encryption



• 256-bit AES encryption
• Use EncryptionKeyGenerator to validate strength
  of encryption key
      • as3corelib on code.google.com
• Re-ecryption is possible
Using ColdFusion’s ORM
Using ColdFusion’s ORM

• Server-side technology on client-side?
     • cfair.swc
     • <server root>/CFIDE/Scripts/AIR
Using ColdFusion’s ORM

• Server-side technology on client-side?
     • cfair.swc
     • <server root>/CFIDE/Scripts/AIR
• Works with local database
Using ColdFusion’s ORM

• Server-side technology on client-side?
     • cfair.swc
     • <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
Using ColdFusion’s ORM

• Server-side technology on client-side?
     • cfair.swc
     • <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
• Need to adjust DTOs with metadata
Using ColdFusion’s ORM

• Server-side technology on client-side?
     • cfair.swc
     • <server root>/CFIDE/Scripts/AIR
• Works with local database
• Use SyncManager class
• Need to adjust DTOs with metadata
• No BLOB possible :-(
Entity Metadata
Entity Metadata



• [Entity]
Entity Metadata



• [Entity]
• [Table(name=”<name>”)]
Entity Metadata



• [Entity]
• [Table(name=”<name>”)]
• [RemoteClass(alias=”<cfc>”)]
Entity Metadata



• [Entity]
• [Table(name=”<name>”)]
• [RemoteClass(alias=”<cfc>”)]
• [Bindable]
Field Metadata
Field Metadata


• [Id]
Field Metadata


• [Id]
• [GeneratedValue(strategy=”INCREMENT”,
  initialValue=”1”, incrementBy=”1”)]
Field Metadata


• [Id]
• [GeneratedValue(strategy=”INCREMENT”,
  initialValue=”1”, incrementBy=”1”)]
• [Transient]
Field Metadata


• [Id]
• [GeneratedValue(strategy=”INCREMENT”,
  initialValue=”1”, incrementBy=”1”)]
• [Transient]
• [Column(name=”<name>”,
  columnDefinition=”TEXT|INTEGER|REAL|DATE”,
  nullable=”true|false”, unique=”true|false”]
Relationship Metadata
Relationship Metadata
Relationship Metadata

• [OneToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
Relationship Metadata

• [OneToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [OneToMany(targetEntity=”<entity>”,
  mappedBy=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
Relationship Metadata

• [OneToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [OneToMany(targetEntity=”<entity>”,
  mappedBy=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [ManyToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
Relationship Metadata

• [OneToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [OneToMany(targetEntity=”<entity>”,
  mappedBy=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [ManyToOne(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
• [ManyToMany(targetEntity=”<entity>”,
  fetchType=”EAGER(default)|LAZY”)]
Relationship Metadata
Relationship Metadata

• [JoinTable(name=”<name>”)]
Relationship Metadata

• [JoinTable(name=”<name>”)]
• [JoinColumn(name=”<name>”,
  referencedColumnName=”<name>”)]
Relationship Metadata

• [JoinTable(name=”<name>”)]
• [JoinColumn(name=”<name>”,
  referencedColumnName=”<name>”)]
• [InverseJoinColumn(name=”<name>”,
  referencedColumnName=”<name>”)]
Synchronising with remote server
Synchronising with remote server

• Always asynchronous
Synchronising with remote server

• Always asynchronous
• Using SyncManager class
   • port
   • server
   • syncCFC
   • session
Synchronising with remote server
Synchronising with remote server

• Fetching remote data
   • syncManager.fetch(“foo”)
Synchronising with remote server

• Fetching remote data
   • syncManager.fetch(“foo”)
• Save remote data in local SQLite database
   • session.saveUpdateCache(<ArrayCollection>)
Synchronising with remote server
Synchronising with remote server

• Reading data from local database
Synchronising with remote server

• Reading data from local database
   • session.load(<valueObject>, <filterObject>)
Synchronising with remote server

• Reading data from local database
   • session.load(<valueObject>, <filterObject>)
   • session.loadAll(<valueObject>)
Synchronising with remote server

• Reading data from local database
   • session.load(<valueObject>, <filterObject>)
   • session.loadAll(<valueObject>)
   • session.loadbyPK(<valueObject>, <PK filter>)
Synchronising with remote server

• Reading data from local database
   • session.load(<valueObject>, <filterObject>)
   • session.loadAll(<valueObject>)
   • session.loadbyPK(<valueObject>, <PK filter>)
   • session.loadByQuery(<valueObject>, <SQL
      where condition>)
Synchronising with remote server
Synchronising with remote server

• Saving data to the local database
Synchronising with remote server

• Saving data to the local database
   • session.saveUpdate(<valueObject>)
Synchronising with remote server

• Saving data to the local database
   • session.saveUpdate(<valueObject>)
   • session.delete(<valueObject>)
Synchronising with remote server
Synchronising with remote server




• Pushing data to the remote database
Synchronising with remote server




• Pushing data to the remote database
   • syncManager.autocommit = true
Synchronising with remote server




• Pushing data to the remote database
   • syncManager.autocommit = true
   • session.commit()
What can you do with it?



• Online/offline synchronisation
• Use DB as (temporary) storage
• Protect private data (encryption)
• Colaborate with other people
• ...
What can you do with it?
ORM on mobile devices
How hard is it?
ORM on mobile devices
ORM on mobile devices



• What’s available?
ORM on mobile devices



• What’s available?
   • SQLite database
ORM on mobile devices



• What’s available?
   • SQLite database
   • Disk access
ORM on mobile devices



• What’s available?
   • SQLite database
   • Disk access
   • Data contract?
ORM on mobile devices



• What’s available?
   • SQLite database
   • Disk access
   • Data contract?
   • WiFi?
ORM on mobile devices
ORM on mobile devices



• What’s different?
ORM on mobile devices



• What’s different?
   • AIR 2.5 minimum
ORM on mobile devices



• What’s different?
   • AIR 2.5 minimum
   • Specify access rights in app.xml
ORM on mobile devices



• What’s different?
   • AIR 2.5 minimum
   • Specify access rights in app.xml
   • not much really...
So how hard is it then?




          “It’s like stealing candy
          from a baby!”
What can you do with it?
Thank you



     Twitter:
     @aikisteve

     Email:
     steven@multimediacollege.be

     Personal site:
     www.flexpert.be




                                   2 / 12

Mais conteúdo relacionado

Mais procurados

Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch Taylor Lovett
 
Deep Dive on Amazon Elastic File System (Amazon EFS)
Deep Dive on Amazon Elastic File System (Amazon EFS)Deep Dive on Amazon Elastic File System (Amazon EFS)
Deep Dive on Amazon Elastic File System (Amazon EFS)Amazon Web Services
 
AWS Lunch and Learn - Workspaces. May 27th 2014
AWS Lunch and Learn - Workspaces. May 27th 2014AWS Lunch and Learn - Workspaces. May 27th 2014
AWS Lunch and Learn - Workspaces. May 27th 2014Amazon Web Services
 
Understanding AWS Storage Options
Understanding AWS Storage OptionsUnderstanding AWS Storage Options
Understanding AWS Storage OptionsAmazon Web Services
 
(STG206) Using Amazon CloudFront For Your Websites & Apps
(STG206) Using Amazon CloudFront For Your Websites & Apps(STG206) Using Amazon CloudFront For Your Websites & Apps
(STG206) Using Amazon CloudFront For Your Websites & AppsAmazon Web Services
 
Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchTaylor Lovett
 
AWS Security & Compliance in the AWS Cloud IP Expo 2013
AWS Security & Compliance in the AWS Cloud IP Expo 2013AWS Security & Compliance in the AWS Cloud IP Expo 2013
AWS Security & Compliance in the AWS Cloud IP Expo 2013Amazon Web Services
 
Cloud storage with AWS
Cloud storage with AWSCloud storage with AWS
Cloud storage with AWSAhmad karawash
 
Big Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon AthenaBig Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon AthenaJulien SIMON
 
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFront
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFrontAWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFront
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFrontAmazon Web Services
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateAmazon Web Services
 
Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014Amazon Web Services
 
Best Practices for Backup and Recovery: Windows Workload on AWS
Best Practices for Backup and Recovery: Windows Workload on AWS Best Practices for Backup and Recovery: Windows Workload on AWS
Best Practices for Backup and Recovery: Windows Workload on AWS Amazon Web Services
 
Remote Application Streaming on AWS
Remote Application Streaming on AWS Remote Application Streaming on AWS
Remote Application Streaming on AWS Amazon Web Services
 
Trials and Tribulations of Managed Metadata
Trials and Tribulations of Managed MetadataTrials and Tribulations of Managed Metadata
Trials and Tribulations of Managed MetadataScott Hoag
 
Backup and Recovery for Linux With Amazon S3
Backup and Recovery for Linux With Amazon S3Backup and Recovery for Linux With Amazon S3
Backup and Recovery for Linux With Amazon S3Amazon Web Services
 
Using Active Directory in AWS
Using Active Directory in AWSUsing Active Directory in AWS
Using Active Directory in AWSAllice Shandler
 
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...Amazon Web Services
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)Amazon Web Services
 

Mais procurados (20)

Aws, an intro to startups
Aws, an intro to startupsAws, an intro to startups
Aws, an intro to startups
 
Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch Transforming WordPress Search and Query Performance with Elasticsearch
Transforming WordPress Search and Query Performance with Elasticsearch
 
Deep Dive on Amazon Elastic File System (Amazon EFS)
Deep Dive on Amazon Elastic File System (Amazon EFS)Deep Dive on Amazon Elastic File System (Amazon EFS)
Deep Dive on Amazon Elastic File System (Amazon EFS)
 
AWS Lunch and Learn - Workspaces. May 27th 2014
AWS Lunch and Learn - Workspaces. May 27th 2014AWS Lunch and Learn - Workspaces. May 27th 2014
AWS Lunch and Learn - Workspaces. May 27th 2014
 
Understanding AWS Storage Options
Understanding AWS Storage OptionsUnderstanding AWS Storage Options
Understanding AWS Storage Options
 
(STG206) Using Amazon CloudFront For Your Websites & Apps
(STG206) Using Amazon CloudFront For Your Websites & Apps(STG206) Using Amazon CloudFront For Your Websites & Apps
(STG206) Using Amazon CloudFront For Your Websites & Apps
 
Modernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with ElasticsearchModernizing WordPress Search with Elasticsearch
Modernizing WordPress Search with Elasticsearch
 
AWS Security & Compliance in the AWS Cloud IP Expo 2013
AWS Security & Compliance in the AWS Cloud IP Expo 2013AWS Security & Compliance in the AWS Cloud IP Expo 2013
AWS Security & Compliance in the AWS Cloud IP Expo 2013
 
Cloud storage with AWS
Cloud storage with AWSCloud storage with AWS
Cloud storage with AWS
 
Big Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon AthenaBig Data answers in seconds with Amazon Athena
Big Data answers in seconds with Amazon Athena
 
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFront
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFrontAWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFront
AWS 201 - A Walk through the AWS Cloud: Introduction to Amazon CloudFront
 
Configuration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef AutomateConfiguration Management with AWS OpsWorks for Chef Automate
Configuration Management with AWS OpsWorks for Chef Automate
 
Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014Masterclass Webinar: Amazon DynamoDB July 2014
Masterclass Webinar: Amazon DynamoDB July 2014
 
Best Practices for Backup and Recovery: Windows Workload on AWS
Best Practices for Backup and Recovery: Windows Workload on AWS Best Practices for Backup and Recovery: Windows Workload on AWS
Best Practices for Backup and Recovery: Windows Workload on AWS
 
Remote Application Streaming on AWS
Remote Application Streaming on AWS Remote Application Streaming on AWS
Remote Application Streaming on AWS
 
Trials and Tribulations of Managed Metadata
Trials and Tribulations of Managed MetadataTrials and Tribulations of Managed Metadata
Trials and Tribulations of Managed Metadata
 
Backup and Recovery for Linux With Amazon S3
Backup and Recovery for Linux With Amazon S3Backup and Recovery for Linux With Amazon S3
Backup and Recovery for Linux With Amazon S3
 
Using Active Directory in AWS
Using Active Directory in AWSUsing Active Directory in AWS
Using Active Directory in AWS
 
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...
Accelerating Application Performance with Amazon ElastiCache (DAT207) | AWS r...
 
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
AWS re:Invent 2016: Deep Dive on Amazon Elastic Block Store (STG301)
 

Semelhante a Scotch On The Rocks 2011

Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as CodePradeep Bhadani
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’sVisug
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupalrolf vreijdenberger
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Docker, Inc.
 
Expert guide for PHP
Expert guide for PHPExpert guide for PHP
Expert guide for PHPSteve Fort
 
Portfolio Oversight With eazyBI
Portfolio Oversight With eazyBIPortfolio Oversight With eazyBI
Portfolio Oversight With eazyBIeazyBI
 
There and Back Again, A Developer's Tale
There and Back Again, A Developer's TaleThere and Back Again, A Developer's Tale
There and Back Again, A Developer's TaleNeo4j
 
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸Amazon Web Services
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityGeoff Harcourt
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity frameworkMaxim Shaptala
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformAntonio Peric-Mazar
 
Setting up InfluxData for IoT
Setting up InfluxData for IoTSetting up InfluxData for IoT
Setting up InfluxData for IoTInfluxData
 
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Design
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by DesignJon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Design
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Designjonmccoy
 

Semelhante a Scotch On The Rocks 2011 (20)

Terraform: Infrastructure as Code
Terraform: Infrastructure as CodeTerraform: Infrastructure as Code
Terraform: Infrastructure as Code
 
Embracing HTTP in the era of API’s
Embracing HTTP in the era of API’sEmbracing HTTP in the era of API’s
Embracing HTTP in the era of API’s
 
drupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupaldrupal 7 amfserver presentation: integrating flash and drupal
drupal 7 amfserver presentation: integrating flash and drupal
 
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
Orchestrating Docker with Terraform and Consul by Mitchell Hashimoto
 
Orm loveandhate
Orm loveandhateOrm loveandhate
Orm loveandhate
 
Windows 8 Apps and the Outside World
Windows 8 Apps and the Outside WorldWindows 8 Apps and the Outside World
Windows 8 Apps and the Outside World
 
Expert guide for PHP
Expert guide for PHPExpert guide for PHP
Expert guide for PHP
 
Introduction to Flask Micro Framework
Introduction to Flask Micro FrameworkIntroduction to Flask Micro Framework
Introduction to Flask Micro Framework
 
Portfolio Oversight With eazyBI
Portfolio Oversight With eazyBIPortfolio Oversight With eazyBI
Portfolio Oversight With eazyBI
 
There and Back Again, A Developer's Tale
There and Back Again, A Developer's TaleThere and Back Again, A Developer's Tale
There and Back Again, A Developer's Tale
 
Containers and Security for DevOps
Containers and Security for DevOpsContainers and Security for DevOps
Containers and Security for DevOps
 
Introduction to Monsoon PHP framework
Introduction to Monsoon PHP frameworkIntroduction to Monsoon PHP framework
Introduction to Monsoon PHP framework
 
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸
透過Amazon CloudFront 和AWS WAF來執行安全的內容傳輸
 
DCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production ParityDCRUG: Achieving Development-Production Parity
DCRUG: Achieving Development-Production Parity
 
SIEM.pdf
SIEM.pdfSIEM.pdf
SIEM.pdf
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
01 introduction to entity framework
01   introduction to entity framework01   introduction to entity framework
01 introduction to entity framework
 
Building APIs in an easy way using API Platform
Building APIs in an easy way using API PlatformBuilding APIs in an easy way using API Platform
Building APIs in an easy way using API Platform
 
Setting up InfluxData for IoT
Setting up InfluxData for IoTSetting up InfluxData for IoT
Setting up InfluxData for IoT
 
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Design
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by DesignJon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Design
Jon McCoy - AppSec-USA-2014 Hacking C#(.NET) Applications:Defend by Design
 

Último

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherRemote DBA Services
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
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
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...DianaGray10
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Principled Technologies
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businesspanagenda
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 

Último (20)

Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
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...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
Deploy with confidence: VMware Cloud Foundation 5.1 on next gen Dell PowerEdg...
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 

Scotch On The Rocks 2011

Notas do Editor

  1. \n
  2. \n
  3. \n
  4. \n
  5. \n
  6. \n
  7. \n
  8. \n
  9. \n
  10. \n
  11. \n
  12. \n
  13. \n
  14. \n
  15. \n
  16. \n
  17. \n
  18. \n
  19. \n
  20. \n
  21. \n
  22. \n
  23. \n
  24. \n
  25. \n
  26. \n
  27. \n
  28. \n
  29. \n
  30. \n
  31. \n
  32. \n
  33. \n
  34. \n
  35. \n
  36. \n
  37. \n
  38. \n
  39. \n
  40. \n
  41. \n
  42. \n
  43. \n
  44. \n
  45. \n
  46. \n
  47. \n
  48. \n
  49. \n
  50. \n
  51. \n
  52. \n
  53. \n
  54. \n
  55. \n
  56. \n
  57. \n
  58. \n
  59. \n
  60. \n
  61. \n
  62. \n
  63. \n
  64. \n