SlideShare une entreprise Scribd logo
1  sur  46
THE ANATOMY OF A SERIOUSLY  SOPHISTICATED AIR APPLICATION
BEFORE WE GET DOWN TO BUSINESS…
WHAT WAS OUR BRIEF FROM FIAT? BUILD A PRODUCT THAT HELPS IMPROVE YOUR DRIVING USING TELEMATIC DATA COLLECTED FROM THE CAR
WHY IS ECO:DRIVE “SOPHISTICATED”? THE CHALLENGES CONNECTING YOUR CAR TO YOUR COMPUTER IS A NEW CONCEPT TO MOST DRIVING DATA CAN BE CONFUSING LARGE AMOUNTS OF DATA, ONCE PER SECOND OF EVERY JOURNEY
WHY IS ECO:DRIVE “SOPHISTICATED”? THE CHALLENGES CONNECTING YOUR CAR TO YOUR COMPUTER IS A NEW CONCEPT TO MOST DRIVING DATA CAN BE CONFUSING LARGE AMOUNTS OF DATA, ONCE PER SECOND OF EVERY JOURNEY YET THE SOLUTION HAD TO BE INTUITIVE EASY TO USE RESPONSIVE
A LITTLE BIT MORE DETAIL… BUILT USING ADOBE AIR 1.1 AND FLEX
A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 BUILT USING ADOBE AIR 1.1 AND FLEX
A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 CREATED USING FLEXBUILDER 3 PROFESSIONAL EDITION BUILT USING ADOBE AIR 1.1 AND FLEX
A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 CREATED USING FLEXBUILDER 3 PROFESSIONAL EDITION LAUNCHED IN 3 LANGUAGES, SOON TO BE 5 BUILT USING ADOBE AIR 1.1 AND FLEX
WHY ADOBE AIR? CROSS PLATFORM
WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION CROSS PLATFORM
WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION EASY AUTO-UPDATE FUNCTIONALITY CROSS PLATFORM
WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION EASY AUTO-UPDATE FUNCTIONALITY INTERGRATED SQLITE DB CROSS PLATFORM
WHAT DOES ECO:DRIVE  LOOK LIKE INSIDE?
THE MANDATORY BLOCK DIAGRAM
THE MANDATORY BLOCK DIAGRAM USB KEY
THE MANDATORY BLOCK DIAGRAM USB KEY ECO:INDEX WEB SERVICE HTTP COMMUNITY WEB SERVICE HTTP FUEL PRICE WEB SERVICE HTTP
DELVING DEEPER IMPORTING DATA GRAPHING THE DATA CONTEXTUALISING THE DATA
IMPORTING DATA: PARSING LIMITED SPACE AVAILABLE IN BLUE & ME COMPUTER MORE COMPUTING POWER AVAILABLE ON THE DESKTOP THAN IN THE CAR EASE OF PARSING WAS NOT THE FIRST PRIORITY NO BITARRAY IN ACTIONSCRIPT 3 DATA IS STORED IN A TIGHTLY PACKED BIT ARRAY
IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE
IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE THERE WERE TWO PROBLEMS USING A TIMER WAS NOT FAST ENOUGH USING “FOR” LOOPS MEANT AN UNRESPONSIVE APPLICATION
IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE THERE WERE TWO PROBLEMS USING A TIMER WAS NOT FAST ENOUGH USING “FOR” LOOPS MEANT AN UNRESPONSIVE APPLICATION THE SOLUTION? THE “ASYNC CHUNKER MONKEY”
IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING A TIMER USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
IMPORTING DATA: THE ASYNC CHUNKER WHAT? MAX TIME FOR EXECUITION IS SET BY DEVELOPER USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
IMPORTING DATA: THE ASYNC CHUNKER WHAT? MAX TIME FOR EXECUITION IS SET BY DEVELOPER USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
THE PEOPLE BEHIND THE PRODUCT…
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW YOU MIGHT THINK IT WORKED
HOW DID IT ALL WORK OUT? HERE’S HOW YOU MIGHT THINK IT WORKED
HERE’S HOW WE ENDED UP SEEING IT…
THE MOST TRICKY PART…
KEEPING QUALITY HIGH
KEEPING QUALITY HIGH PROOF OF CONCEPTS CONTINUOUS INTEGRATION USING CRUISECONTROL.NET PEER REVIEW ON EVERY CHECK-IN UNIT TESTS USING FLEXUNIT AND FLEXCOVER
TOP TIPS AND LESSONS LEARNED
TOP TIPS AND LESSONS LEARNED FILE.GETROOTDIRECTORIES ISN’T AS GREAT AS YOU MIGHT THINK NEVER  WRITE DATA TO THE APPLICATION DIRECTORY MULTI-LINGUAL? ALWAYS GET THE USER TO CHOOSE THEIR OWN LANGUAGE USE THE VIEWSTACK CLASS CAREFULLY KEEP YOUR DATABASE ACCESS STRATEGY CONSISTENT
CLOSING WORDS
CLOSING WORDS… DO PROOF OF CONCEPTS FOR ANY RISKY AND ESSENTIAL FUNCTIONALITY UNIT TEST YOUR CODE. IT HELPS PREVENT BUGS AND IMPROVES THE APPLICATION ARCHITECTURE. THINK ABOUT PERFORMANCE – ESPECIALLY IF YOU ARE PROCESSING LARGE AMOUNTS OF DATA ADOBE AIR IS A GREAT PLATFORM FOR INNOVATIVE DESKTOP APPLICATIONS.
LINKS AND Q&A http://www.fiat.co.uk/ecoDrive - eco:Drive home page http://code.google.com/p/as3localelib/ - Locale Library http://thanksmister.com/?p=92 – Detecting Local Drives with Adobe AIR http://is.gd/7RcW - Article about Usability, Interactivity in Agile Processes Rick’s blog: http://www.pixelpod.co.uk Adam’s blog: http://blog.adamcreeger.com

Contenu connexe

Tendances

Self-healing Applications with Ansible
Self-healing Applications with AnsibleSelf-healing Applications with Ansible
Self-healing Applications with AnsibleJürgen Etzlstorfer
 
Testing in Infrastructure
Testing in InfrastructureTesting in Infrastructure
Testing in InfrastructureMuhammet Arslan
 
Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.125101AVNREGT
 
Deployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventDeployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventAmazon Web Services
 
Python in SQL 2019
Python in SQL 2019Python in SQL 2019
Python in SQL 2019Rich Benner
 
Herding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayHerding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayAtlassian
 
My first WordPress Plugin
My first WordPress PluginMy first WordPress Plugin
My first WordPress PluginAbbas Siddiqi
 
AWS モニタリングソリューションのご紹介
AWS モニタリングソリューションのご紹介AWS モニタリングソリューションのご紹介
AWS モニタリングソリューションのご紹介Takanori Ohba
 
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらい
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらいAWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらい
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらいTakumiHaruta
 
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...TotalCloud Inc.
 
Integrate drupal 8 with alexa - Rakshith
Integrate drupal 8 with alexa - RakshithIntegrate drupal 8 with alexa - Rakshith
Integrate drupal 8 with alexa - RakshithRakshith Tb
 
Terraform for Azure Quickstart
Terraform for Azure QuickstartTerraform for Azure Quickstart
Terraform for Azure QuickstartGiulio Vian
 
Deploying and Managing Red Hat Enterprise Linux in Amazon Web Services
Deploying and Managing Red Hat Enterprise Linux in Amazon Web ServicesDeploying and Managing Red Hat Enterprise Linux in Amazon Web Services
Deploying and Managing Red Hat Enterprise Linux in Amazon Web ServicesDLT Solutions
 
WeirdAAL (AWS Attack Library)
WeirdAAL (AWS Attack Library) WeirdAAL (AWS Attack Library)
WeirdAAL (AWS Attack Library) Chris Gates
 

Tendances (20)

Microsoft Azure Automation
Microsoft Azure AutomationMicrosoft Azure Automation
Microsoft Azure Automation
 
Akamai-as-Code with The Washington Post
Akamai-as-Code with The Washington PostAkamai-as-Code with The Washington Post
Akamai-as-Code with The Washington Post
 
Self-healing Applications with Ansible
Self-healing Applications with AnsibleSelf-healing Applications with Ansible
Self-healing Applications with Ansible
 
Testing in Infrastructure
Testing in InfrastructureTesting in Infrastructure
Testing in Infrastructure
 
Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12Aero app updates how to v1.1510.12
Aero app updates how to v1.1510.12
 
Deployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup EventDeployment with Elastic Beanstalk at Edinburgh Startup Event
Deployment with Elastic Beanstalk at Edinburgh Startup Event
 
Rails on Rack
Rails on RackRails on Rack
Rails on Rack
 
Python in SQL 2019
Python in SQL 2019Python in SQL 2019
Python in SQL 2019
 
WordPress REST API
WordPress REST APIWordPress REST API
WordPress REST API
 
Herding Microservices – the Atlassian Way
Herding Microservices – the Atlassian WayHerding Microservices – the Atlassian Way
Herding Microservices – the Atlassian Way
 
My first WordPress Plugin
My first WordPress PluginMy first WordPress Plugin
My first WordPress Plugin
 
AWS モニタリングソリューションのご紹介
AWS モニタリングソリューションのご紹介AWS モニタリングソリューションのご紹介
AWS モニタリングソリューションのご紹介
 
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらい
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらいAWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらい
AWSのDatabase・Analytics系サービス 概要と使いどころをざくっとおさらい
 
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...
The ultimate dilemma of choosing container environment on AWS: ECS, EKS or Fa...
 
Lightning Components Best Practices by Fabien Taillon
Lightning Components Best Practices by Fabien TaillonLightning Components Best Practices by Fabien Taillon
Lightning Components Best Practices by Fabien Taillon
 
Integrate drupal 8 with alexa - Rakshith
Integrate drupal 8 with alexa - RakshithIntegrate drupal 8 with alexa - Rakshith
Integrate drupal 8 with alexa - Rakshith
 
Rs Sdone
Rs SdoneRs Sdone
Rs Sdone
 
Terraform for Azure Quickstart
Terraform for Azure QuickstartTerraform for Azure Quickstart
Terraform for Azure Quickstart
 
Deploying and Managing Red Hat Enterprise Linux in Amazon Web Services
Deploying and Managing Red Hat Enterprise Linux in Amazon Web ServicesDeploying and Managing Red Hat Enterprise Linux in Amazon Web Services
Deploying and Managing Red Hat Enterprise Linux in Amazon Web Services
 
WeirdAAL (AWS Attack Library)
WeirdAAL (AWS Attack Library) WeirdAAL (AWS Attack Library)
WeirdAAL (AWS Attack Library)
 

Similaire à The Anatomy of a Seriously Sophisticated AIR Application

Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...Quentin Adam
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2Matteo Emili
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Future Insights
 
The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...Quentin Adam
 
The End of server management - Continuous delivery meetup Paris
The End of server management  - Continuous delivery meetup ParisThe End of server management  - Continuous delivery meetup Paris
The End of server management - Continuous delivery meetup ParisQuentin Adam
 
Flume & FluentD (ETL Comparison)
Flume & FluentD (ETL Comparison)Flume & FluentD (ETL Comparison)
Flume & FluentD (ETL Comparison)David V.P.
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Noah Sussman
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsDynatrace
 
The End of server management - Opening keynote Lux i/o 2016
The End of server management - Opening keynote Lux i/o 2016The End of server management - Opening keynote Lux i/o 2016
The End of server management - Opening keynote Lux i/o 2016Quentin Adam
 
The end of server management - devoxx UK talk version
The end of server management - devoxx UK talk versionThe end of server management - devoxx UK talk version
The end of server management - devoxx UK talk versionQuentin Adam
 
Agility® Product Management for Commerce: The Simplest PIM on the Planet
Agility® Product Management for Commerce: The Simplest PIM on the PlanetAgility® Product Management for Commerce: The Simplest PIM on the Planet
Agility® Product Management for Commerce: The Simplest PIM on the PlanetAgility Multichannel
 
NPR API: Create Once Publish Everywhere
NPR API: Create Once Publish EverywhereNPR API: Create Once Publish Everywhere
NPR API: Create Once Publish Everywherezachbrand
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk
 
Developing a successful big data business strategy
Developing a successful big data business strategyDeveloping a successful big data business strategy
Developing a successful big data business strategySebastian Darrington
 
Success Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationSuccess Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationDustin Ruehle
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447Steve Poole
 
It automation & devops - devopsdays istambul 2016
It automation & devops -  devopsdays istambul 2016It automation & devops -  devopsdays istambul 2016
It automation & devops - devopsdays istambul 2016Quentin Adam
 
Application Security in a Container World - Akash Mahajan - BCC 2017
Application Security in a Container World - Akash Mahajan - BCC 2017Application Security in a Container World - Akash Mahajan - BCC 2017
Application Security in a Container World - Akash Mahajan - BCC 2017CodeOps Technologies LLP
 
How to stop fingerpointing when your application is down
How to stop fingerpointing when your application is downHow to stop fingerpointing when your application is down
How to stop fingerpointing when your application is downCompuware ASEAN
 

Similaire à The Anatomy of a Seriously Sophisticated AIR Application (20)

Fiat eco:Drive
Fiat eco:DriveFiat eco:Drive
Fiat eco:Drive
 
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
Be a modern developer ! #liveCoding #cloud #docker #akka #scala #amqp - at Ch...
 
Am i doing deployments right v2
Am i doing deployments right v2Am i doing deployments right v2
Am i doing deployments right v2
 
Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)Optimizing for Change (Henrik Joreteg)
Optimizing for Change (Henrik Joreteg)
 
The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...The end of server management : hosting have to become a commodity - #devoxxPL...
The end of server management : hosting have to become a commodity - #devoxxPL...
 
The End of server management - Continuous delivery meetup Paris
The End of server management  - Continuous delivery meetup ParisThe End of server management  - Continuous delivery meetup Paris
The End of server management - Continuous delivery meetup Paris
 
Flume & FluentD (ETL Comparison)
Flume & FluentD (ETL Comparison)Flume & FluentD (ETL Comparison)
Flume & FluentD (ETL Comparison)
 
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
Fast and Good: Alternate Approaches to Quality at Etsy - STPCon fall 2011
 
Starting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for OpsStarting Your DevOps Journey – Practical Tips for Ops
Starting Your DevOps Journey – Practical Tips for Ops
 
The End of server management - Opening keynote Lux i/o 2016
The End of server management - Opening keynote Lux i/o 2016The End of server management - Opening keynote Lux i/o 2016
The End of server management - Opening keynote Lux i/o 2016
 
The end of server management - devoxx UK talk version
The end of server management - devoxx UK talk versionThe end of server management - devoxx UK talk version
The end of server management - devoxx UK talk version
 
Agility® Product Management for Commerce: The Simplest PIM on the Planet
Agility® Product Management for Commerce: The Simplest PIM on the PlanetAgility® Product Management for Commerce: The Simplest PIM on the Planet
Agility® Product Management for Commerce: The Simplest PIM on the Planet
 
NPR API: Create Once Publish Everywhere
NPR API: Create Once Publish EverywhereNPR API: Create Once Publish Everywhere
NPR API: Create Once Publish Everywhere
 
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection ArchitectureSplunk Data Onboarding Overview - Splunk Data Collection Architecture
Splunk Data Onboarding Overview - Splunk Data Collection Architecture
 
Developing a successful big data business strategy
Developing a successful big data business strategyDeveloping a successful big data business strategy
Developing a successful big data business strategy
 
Success Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices ImplementationSuccess Factors for a Mature Microservices Implementation
Success Factors for a Mature Microservices Implementation
 
JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447JavaOne 2015 Devops and the Darkside CON6447
JavaOne 2015 Devops and the Darkside CON6447
 
It automation & devops - devopsdays istambul 2016
It automation & devops -  devopsdays istambul 2016It automation & devops -  devopsdays istambul 2016
It automation & devops - devopsdays istambul 2016
 
Application Security in a Container World - Akash Mahajan - BCC 2017
Application Security in a Container World - Akash Mahajan - BCC 2017Application Security in a Container World - Akash Mahajan - BCC 2017
Application Security in a Container World - Akash Mahajan - BCC 2017
 
How to stop fingerpointing when your application is down
How to stop fingerpointing when your application is downHow to stop fingerpointing when your application is down
How to stop fingerpointing when your application is down
 

Dernier

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Dernier (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

The Anatomy of a Seriously Sophisticated AIR Application

  • 1. THE ANATOMY OF A SERIOUSLY SOPHISTICATED AIR APPLICATION
  • 2. BEFORE WE GET DOWN TO BUSINESS…
  • 3. WHAT WAS OUR BRIEF FROM FIAT? BUILD A PRODUCT THAT HELPS IMPROVE YOUR DRIVING USING TELEMATIC DATA COLLECTED FROM THE CAR
  • 4. WHY IS ECO:DRIVE “SOPHISTICATED”? THE CHALLENGES CONNECTING YOUR CAR TO YOUR COMPUTER IS A NEW CONCEPT TO MOST DRIVING DATA CAN BE CONFUSING LARGE AMOUNTS OF DATA, ONCE PER SECOND OF EVERY JOURNEY
  • 5. WHY IS ECO:DRIVE “SOPHISTICATED”? THE CHALLENGES CONNECTING YOUR CAR TO YOUR COMPUTER IS A NEW CONCEPT TO MOST DRIVING DATA CAN BE CONFUSING LARGE AMOUNTS OF DATA, ONCE PER SECOND OF EVERY JOURNEY YET THE SOLUTION HAD TO BE INTUITIVE EASY TO USE RESPONSIVE
  • 6. A LITTLE BIT MORE DETAIL… BUILT USING ADOBE AIR 1.1 AND FLEX
  • 7. A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 BUILT USING ADOBE AIR 1.1 AND FLEX
  • 8. A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 CREATED USING FLEXBUILDER 3 PROFESSIONAL EDITION BUILT USING ADOBE AIR 1.1 AND FLEX
  • 9. A LITTLE BIT MORE DETAIL… BUILT IN 4 MONTHS BY A DEVELOPMENT TEAM OF 5 CREATED USING FLEXBUILDER 3 PROFESSIONAL EDITION LAUNCHED IN 3 LANGUAGES, SOON TO BE 5 BUILT USING ADOBE AIR 1.1 AND FLEX
  • 10. WHY ADOBE AIR? CROSS PLATFORM
  • 11. WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION CROSS PLATFORM
  • 12. WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION EASY AUTO-UPDATE FUNCTIONALITY CROSS PLATFORM
  • 13. WHY ADOBE AIR? SMOOTH INSTALL OF THE FRAMEWORK AND APPLICATION EASY AUTO-UPDATE FUNCTIONALITY INTERGRATED SQLITE DB CROSS PLATFORM
  • 14. WHAT DOES ECO:DRIVE LOOK LIKE INSIDE?
  • 16. THE MANDATORY BLOCK DIAGRAM USB KEY
  • 17. THE MANDATORY BLOCK DIAGRAM USB KEY ECO:INDEX WEB SERVICE HTTP COMMUNITY WEB SERVICE HTTP FUEL PRICE WEB SERVICE HTTP
  • 18. DELVING DEEPER IMPORTING DATA GRAPHING THE DATA CONTEXTUALISING THE DATA
  • 19. IMPORTING DATA: PARSING LIMITED SPACE AVAILABLE IN BLUE & ME COMPUTER MORE COMPUTING POWER AVAILABLE ON THE DESKTOP THAN IN THE CAR EASE OF PARSING WAS NOT THE FIRST PRIORITY NO BITARRAY IN ACTIONSCRIPT 3 DATA IS STORED IN A TIGHTLY PACKED BIT ARRAY
  • 20. IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE
  • 21. IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE THERE WERE TWO PROBLEMS USING A TIMER WAS NOT FAST ENOUGH USING “FOR” LOOPS MEANT AN UNRESPONSIVE APPLICATION
  • 22. IMPORTING DATA: WRITING DATA TO THE DATABASE THERE WERE TWO MAJOR REQUIREMENTS IMPORT HAD TO BE HIGHLY PERFORMANT USER INTERFACE HAD TO REMAIN SMOOTH AND RESPONSIVE THERE WERE TWO PROBLEMS USING A TIMER WAS NOT FAST ENOUGH USING “FOR” LOOPS MEANT AN UNRESPONSIVE APPLICATION THE SOLUTION? THE “ASYNC CHUNKER MONKEY”
  • 23. IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
  • 24. IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING A TIMER USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
  • 25. IMPORTING DATA: THE ASYNC CHUNKER WHAT? USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
  • 26. IMPORTING DATA: THE ASYNC CHUNKER WHAT? MAX TIME FOR EXECUITION IS SET BY DEVELOPER USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
  • 27. IMPORTING DATA: THE ASYNC CHUNKER WHAT? MAX TIME FOR EXECUITION IS SET BY DEVELOPER USING THE ASYNC CHUNKER MONKEY USING SYNCHRONOUS “FOR” LOOP TO PROCESS EACH ITEM IN AN ARRAY
  • 28. THE PEOPLE BEHIND THE PRODUCT…
  • 29. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 30. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 31. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 32. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 33. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 34. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 35. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 36. HERE’S HOW YOU MIGHT THINK IT WORKED
  • 37. HOW DID IT ALL WORK OUT? HERE’S HOW YOU MIGHT THINK IT WORKED
  • 38. HERE’S HOW WE ENDED UP SEEING IT…
  • 39. THE MOST TRICKY PART…
  • 41. KEEPING QUALITY HIGH PROOF OF CONCEPTS CONTINUOUS INTEGRATION USING CRUISECONTROL.NET PEER REVIEW ON EVERY CHECK-IN UNIT TESTS USING FLEXUNIT AND FLEXCOVER
  • 42. TOP TIPS AND LESSONS LEARNED
  • 43. TOP TIPS AND LESSONS LEARNED FILE.GETROOTDIRECTORIES ISN’T AS GREAT AS YOU MIGHT THINK NEVER WRITE DATA TO THE APPLICATION DIRECTORY MULTI-LINGUAL? ALWAYS GET THE USER TO CHOOSE THEIR OWN LANGUAGE USE THE VIEWSTACK CLASS CAREFULLY KEEP YOUR DATABASE ACCESS STRATEGY CONSISTENT
  • 45. CLOSING WORDS… DO PROOF OF CONCEPTS FOR ANY RISKY AND ESSENTIAL FUNCTIONALITY UNIT TEST YOUR CODE. IT HELPS PREVENT BUGS AND IMPROVES THE APPLICATION ARCHITECTURE. THINK ABOUT PERFORMANCE – ESPECIALLY IF YOU ARE PROCESSING LARGE AMOUNTS OF DATA ADOBE AIR IS A GREAT PLATFORM FOR INNOVATIVE DESKTOP APPLICATIONS.
  • 46. LINKS AND Q&A http://www.fiat.co.uk/ecoDrive - eco:Drive home page http://code.google.com/p/as3localelib/ - Locale Library http://thanksmister.com/?p=92 – Detecting Local Drives with Adobe AIR http://is.gd/7RcW - Article about Usability, Interactivity in Agile Processes Rick’s blog: http://www.pixelpod.co.uk Adam’s blog: http://blog.adamcreeger.com