SlideShare a Scribd company logo
2016: A YEAR IN REVIEW (THE
DRINKING GAME)➤ Every time I change languages take a shot.
➤ Every time I change jobs take two shots.
➤ Every time I change what I’m working on drink a beer.
➤ Call emergency services.
“I NEED TO SHIP SOMETHING
-Me (Around July . . . Roughly)
BREADCRUMB TRAIL TO AN IDEA
➤ Munging the iTunes Review Feed took a lot of time.
➤ Fragile Data
➤ Frequent Problems
➤ It would be nice to check the status on my phone…
HOW ABOUT A
MOBILE-FIRST
DASHBOARD?
THE CHALLENGE
➤ Build a …
➤ API and SDK’s
➤ Command Line Interface (CLI)
➤ Web App
➤ Serverless Data Pipeline Component
➤ Mobile App
➤ Treat it like a hackathon
➤ MVP-Focused
➤ Time-Box
Web Application
CLI API (Express.js)
SDK’s Mobile
Serverless (Azure Function)
Web ApplicationSDK’s Mobile
CLI API (Express.js) Serverless (Azure Function)
Web ApplicationSDK’s Mobile
?
CLI API (Express.js) Serverless (Azure Function)
Web ApplicationSDK’s Mobile
CLI API (Express.js) Serverless (Azure Function)
THE CHALLENGE
➤ Build …
➤ API and SDK’s
➤ Command Line Interface (CLI)
➤ Web App
➤ Serverless Component
➤ Mobile App
➤ Treat it like a hackathon
➤ MVP-Focused
➤ Time-Box
STAND UP THE WEB APP
➤ Create the initial database schema.
➤ Allow for account sign-up and basic sharing.
➤ Templates:
➤ https://railskits.com
➤ https://github.com/railsapps
➤ https://github.com/abdesigner/SaaStarter
➤ Customize the template.
➤ Total Time: 10 Hours
HOW TO LOSE A MONTH
➤ Learn Docker Networking
➤ Learn About Kubernetes
➤ Make Contributions to Open Source Projects
➤ https://github.com/deis/deis/pull/5097
➤ https://github.com/deis/postgres/pull/159
➤ https://github.com/kubernetes/kubernetes-
anywhere/pull/258
DESIGNING THE API
➤ Use swagger.io to create the API spec.
➤ Use the existing schema setup by the web app.
➤ Keep it RESTful and simple.
BUILDING THE API
➤ Configs: dotenv, config
➤ ORM: Sequelize
➤ Bonus: Sequelize CLI
➤ Validation: express-validator
➤ Authorization: Passport
➤ Authentication: Custom
➤ Security: Helmet
➤ Total Time: 16 Hours
DESIGNING THE CLI
➤ Similar to Heroku, CloudFoundry, or Dies.
➤ Users should be able to login and logout.
➤ Help should be part of the command definitions.
➤ Help should be available at the command group.
➤ No funky UI in the CLI.
BUILDING THE CLI
➤ Security: netrc, dashery-js
➤ Use the API to login.
➤ Store token using .netrc
➤ CLI Framework: COA
➤ JavaScript Compiler: Nexe
➤ Gotchas:
➤ No relative paths! (Browserify loves your tears)
➤ I got 1 problem and CoffeeScript is 99 of them.
➤ Don’t keep your Nexe file open.
➤ Hey Nexe, can I have some HDD space back?
➤ Total Time: 32 Hours
BUILDING THE SERVERLESS
COMPONENT (AZURE FUNCTION)➤ Re-use code from the API:
➤ dashery-models
➤ dashery-auth
➤ Middleware: https://github.com/christopheranderson/func-
middleware
➤ Strategies: Custom-Rolled
API +
SERVERLESS
ABOUT THOSE AZURE APPLICATION
GATEWAYS➤ Great SSL Offloading
➤ Super Slow For Applying Configuration Changes
➤ Configuration Templates Are Verbose
➤ No Good URL Routing Options
➤ Wanted: /applications/{appId}/dashboards/{dashId}/data
➤ Got: /data/applications/{appId}/dashboards/{dashId}
➤ Total Time: 36 Hours
DESIGNING THE MOBILE APP
➤ Make it simple
➤ Doesn’t have to be beautiful, just not jarring.
➤ Users should be able to login and logout.
➤ Session state goes to local storage.
➤ Users stay logged in.
➤ Slide out menu for Application selection.
➤ Swipe left and right to go to different dashboards.
➤ Pull to refresh Dashboard.
➤ Dashboards render with common dashboard library.
LEARNING REACT, REDUX, AND REACT
NATIVE➤ Apply lessons learned from Polymer.
➤ Read the docs:
➤ https://facebook.github.io/react-native/
➤ https://facebook.github.io/react/
➤ http://redux.js.org/
➤ Watch some videos:
➤ https://egghead.io/courses/getting-started-with-redux
➤ Read some blogs:
➤ https://medium.com/@jonlebensold/getting-started-with-react-native-
redux-2b01408c0053#.4bhmi09ry
➤ Total Time: 16 Hours
REACT NATIVE (AND HOW REAL THE
STRUGGLE GETS)➤ Security: dashery-js
➤ Use the API to login.
➤ Store token in state.
➤ Validation: validator
➤ Patch Timers: react-mixin, react-timer-mixin
➤ Animations:
➤ Just curl up in a ball right here.
➤ Rock back and forth crying.
➤ Total Time: 8 Hours . . . and counting
BUILDING THE SDK’S
➤ Create Package Configurations
➤ Use Swagger Codegen
➤ Total Time: 1 Hour
THINGS TO DO
➤ Finish up the React Native application.
➤ Automate builds and deployments:
➤ fastlane.tools
➤ travis-ci.com
➤ Create basic dashboards for everyone.
➤ Time Budget: 4 Hours
➤ Write some support documentation.
➤ Time Budget: 4 Hours
➤ Launch!
➤ Time Budget: ?????
QUESTIONS?
https://getdashery.io

More Related Content

What's hot

Introduce phaser
Introduce phaserIntroduce phaser
Introduce phaser
Phuong Hoang Vu
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEB
GR8Conf
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014
Stéphane Bégaudeau
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Ido Green
 
Geb for testing your grails application
Geb for testing your grails applicationGeb for testing your grails application
Geb for testing your grails application
JacobAae
 
Andrew Mykhaliuk - Sorry, I need to make a build for frontend
Andrew Mykhaliuk - Sorry, I need to make a build for frontendAndrew Mykhaliuk - Sorry, I need to make a build for frontend
Andrew Mykhaliuk - Sorry, I need to make a build for frontend
OdessaJS Conf
 
Android development war stories
Android development war storiesAndroid development war stories
Android development war stories
Lope Emano
 
Amsterdam.js talk: node webkit
Amsterdam.js talk: node webkitAmsterdam.js talk: node webkit
Amsterdam.js talk: node webkitFabian Jakobs
 
Taming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and GebTaming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and Geb
C4Media
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
Adrian Philipp
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
JAX London
 
Acceptance testing with Geb
Acceptance testing with GebAcceptance testing with Geb
Acceptance testing with Geb
Richard Paul
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
Bramus Van Damme
 
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web AppBring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
The Software House
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Pantheon
 
Building a community of Open Source intranet users
Building a community of Open Source intranet usersBuilding a community of Open Source intranet users
Building a community of Open Source intranet users
Luke Oatham
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
Darren Cruse
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)
Kyle Lin
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchApps
Bradley Holt
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
Clay Smith
 

What's hot (20)

Introduce phaser
Introduce phaserIntroduce phaser
Introduce phaser
 
Functional testing your Grails app with GEB
Functional testing your Grails app with GEBFunctional testing your Grails app with GEB
Functional testing your Grails app with GEB
 
Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014Modern Web Application Development Workflow - EclipseCon France 2014
Modern Web Application Development Workflow - EclipseCon France 2014
 
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)
 
Geb for testing your grails application
Geb for testing your grails applicationGeb for testing your grails application
Geb for testing your grails application
 
Andrew Mykhaliuk - Sorry, I need to make a build for frontend
Andrew Mykhaliuk - Sorry, I need to make a build for frontendAndrew Mykhaliuk - Sorry, I need to make a build for frontend
Andrew Mykhaliuk - Sorry, I need to make a build for frontend
 
Android development war stories
Android development war storiesAndroid development war stories
Android development war stories
 
Amsterdam.js talk: node webkit
Amsterdam.js talk: node webkitAmsterdam.js talk: node webkit
Amsterdam.js talk: node webkit
 
Taming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and GebTaming Functional Web Testing with Spock and Geb
Taming Functional Web Testing with Spock and Geb
 
Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016Experiences building apps with React Native @DomCode 2016
Experiences building apps with React Native @DomCode 2016
 
Play framework 2 : Peter Hilton
Play framework 2 : Peter HiltonPlay framework 2 : Peter Hilton
Play framework 2 : Peter Hilton
 
Acceptance testing with Geb
Acceptance testing with GebAcceptance testing with Geb
Acceptance testing with Geb
 
Hybrid Apps with Ionic Framework
Hybrid Apps with Ionic FrameworkHybrid Apps with Ionic Framework
Hybrid Apps with Ionic Framework
 
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web AppBring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
Bring Your Web App to the Next Level. Wprowadzenie do Progressive Web App
 
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
Creating a Smooth Development Workflow for High-Quality Modular Open-Source P...
 
Building a community of Open Source intranet users
Building a community of Open Source intranet usersBuilding a community of Open Source intranet users
Building a community of Open Source intranet users
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
 
淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)淺談 Geb 網站自動化測試(JCConf 2014)
淺談 Geb 網站自動化測試(JCConf 2014)
 
jQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchAppsjQuery Conference Boston 2011 CouchApps
jQuery Conference Boston 2011 CouchApps
 
Javascript Apps at Build Artifacts
Javascript Apps at Build ArtifactsJavascript Apps at Build Artifacts
Javascript Apps at Build Artifacts
 

Viewers also liked

Personal Go Trip
Personal Go TripPersonal Go Trip
Personal Go Trip
Eduardo Karsten
 
Ducks
DucksDucks
Additional resource activity
Additional resource activityAdditional resource activity
Additional resource activity
The Economist Educational Foundation
 
43 font graffiti free download
43 font graffiti free download43 font graffiti free download
43 font graffiti free download
badar masbadar
 
Presentación 3 genetica y conducta genoma humano
Presentación 3 genetica y conducta genoma humanoPresentación 3 genetica y conducta genoma humano
Presentación 3 genetica y conducta genoma humano
Adarcelis Castillo Camacaro
 
Improving Your Hustle With Content
Improving Your Hustle With ContentImproving Your Hustle With Content
Improving Your Hustle With Content
Jordan Yaker
 
It project final version
It project final versionIt project final version
It project final versioncoulter_quin
 
Five Reasons Not to Use EdTech
Five Reasons Not to Use EdTechFive Reasons Not to Use EdTech
Five Reasons Not to Use EdTech
Andrew Campbell
 
Abc songs
Abc songsAbc songs
Abc songs
yolanda moya
 
Investor communityentreprenuerplan[1]
Investor communityentreprenuerplan[1]Investor communityentreprenuerplan[1]
Investor communityentreprenuerplan[1]Community Cash, Inc.
 
Lesson 8 Charts Presintation
Lesson 8 Charts PresintationLesson 8 Charts Presintation
Lesson 8 Charts Presintationrzapata12
 
Invest With Us5.8
Invest With Us5.8Invest With Us5.8
Invest With Us5.8
Community Cash, Inc.
 
Community cash investor slides
Community cash   investor slidesCommunity cash   investor slides
Community cash investor slides
Community Cash, Inc.
 
Nuevos mecanismos implicados en la Alergia
Nuevos mecanismos implicados en la AlergiaNuevos mecanismos implicados en la Alergia
Nuevos mecanismos implicados en la Alergia
Juan Carlos Ivancevich
 

Viewers also liked (19)

Personal Go Trip
Personal Go TripPersonal Go Trip
Personal Go Trip
 
Ducks
DucksDucks
Ducks
 
Additional resource activity
Additional resource activityAdditional resource activity
Additional resource activity
 
43 font graffiti free download
43 font graffiti free download43 font graffiti free download
43 font graffiti free download
 
Presentación 3 genetica y conducta genoma humano
Presentación 3 genetica y conducta genoma humanoPresentación 3 genetica y conducta genoma humano
Presentación 3 genetica y conducta genoma humano
 
Jobportfolio
JobportfolioJobportfolio
Jobportfolio
 
Presentación1
Presentación1Presentación1
Presentación1
 
La edad media
La edad mediaLa edad media
La edad media
 
Narcolepsia
NarcolepsiaNarcolepsia
Narcolepsia
 
Improving Your Hustle With Content
Improving Your Hustle With ContentImproving Your Hustle With Content
Improving Your Hustle With Content
 
It project final version
It project final versionIt project final version
It project final version
 
Five Reasons Not to Use EdTech
Five Reasons Not to Use EdTechFive Reasons Not to Use EdTech
Five Reasons Not to Use EdTech
 
Abc songs
Abc songsAbc songs
Abc songs
 
Investor communityentreprenuerplan[1]
Investor communityentreprenuerplan[1]Investor communityentreprenuerplan[1]
Investor communityentreprenuerplan[1]
 
Lesson 8 Charts Presintation
Lesson 8 Charts PresintationLesson 8 Charts Presintation
Lesson 8 Charts Presintation
 
Invest With Us5.8
Invest With Us5.8Invest With Us5.8
Invest With Us5.8
 
Invest withus5.8
Invest withus5.8Invest withus5.8
Invest withus5.8
 
Community cash investor slides
Community cash   investor slidesCommunity cash   investor slides
Community cash investor slides
 
Nuevos mecanismos implicados en la Alergia
Nuevos mecanismos implicados en la AlergiaNuevos mecanismos implicados en la Alergia
Nuevos mecanismos implicados en la Alergia
 

Similar to JavaScript All The Things

Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
Pursuit Consulting
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Cisco DevNet
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example
360|Conferences
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Michael Lihs
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
Abhinav Gupta
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
Jorge Morales
 
Docker for Development
Docker for DevelopmentDocker for Development
Docker for Development
allingeek
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
Cloud Native NoVA
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World Domination
Emma Jane Hogbin Westby
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
VMware Tanzu Korea
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategiesrahulbot
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?
AFUP_Limoges
 
App sec in the time of docker containers
App sec in the time of docker containersApp sec in the time of docker containers
App sec in the time of docker containers
Akash Mahajan
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
Ivano Malavolta
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Systems
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
Sébastien Morel
 
Continuous Integration with Hackintosh
Continuous Integration with HackintoshContinuous Integration with Hackintosh
Continuous Integration with Hackintosh
David Ventura, M.E.T.
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
Kyrylo Reznykov
 
PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
Mihai Corlan
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
Shaka Huang
 

Similar to JavaScript All The Things (20)

Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010Distributed Versioning Tools, BeJUG 2010
Distributed Versioning Tools, BeJUG 2010
 
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
Golang 101 for IT-Pros - Cisco Live Orlando 2018 - DEVNET-1808
 
Jun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By ExampleJun Heider - Flex Application Profiling By Example
Jun Heider - Flex Application Profiling By Example
 
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
Continuous Integration with Open Source Tools - PHPUgFfm 2014-11-20
 
Fun with Jenkins & Salesforce
Fun with Jenkins & SalesforceFun with Jenkins & Salesforce
Fun with Jenkins & Salesforce
 
Odo improving the developer experience on OpenShift - hack & sangria
Odo   improving the developer experience on OpenShift - hack & sangriaOdo   improving the developer experience on OpenShift - hack & sangria
Odo improving the developer experience on OpenShift - hack & sangria
 
Docker for Development
Docker for DevelopmentDocker for Development
Docker for Development
 
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
A Love Story with Kubevirt and Backstage from Cloud Native NoVA meetup Feb 2024
 
Writing Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World DominationWriting Effective Self-Help Guides for World Domination
Writing Effective Self-Help Guides for World Domination
 
SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진SpringOne Platform recap 정윤진
SpringOne Platform recap 정윤진
 
[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies[Mas 500] Software Development Strategies
[Mas 500] Software Development Strategies
 
Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?Comment améliorer le quotidien des Développeurs PHP ?
Comment améliorer le quotidien des Développeurs PHP ?
 
App sec in the time of docker containers
App sec in the time of docker containersApp sec in the time of docker containers
App sec in the time of docker containers
 
Apache Cordova
Apache CordovaApache Cordova
Apache Cordova
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...
 
Continuous Integration with Hackintosh
Continuous Integration with HackintoshContinuous Integration with Hackintosh
Continuous Integration with Hackintosh
 
Raising ux bar with offline first design
Raising ux bar with offline first designRaising ux bar with offline first design
Raising ux bar with offline first design
 
PhoneGap/Cordova
PhoneGap/CordovaPhoneGap/Cordova
PhoneGap/Cordova
 
Head first android apps dev tools
Head first android apps dev toolsHead first android apps dev tools
Head first android apps dev tools
 

Recently uploaded

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Łukasz Chruściel
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
ShamsuddeenMuhammadA
 

Recently uploaded (20)

Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️Need for Speed: Removing speed bumps from your Symfony projects ⚡️
Need for Speed: Removing speed bumps from your Symfony projects ⚡️
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptxText-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
Text-Summarization-of-Breaking-News-Using-Fine-tuning-BART-Model.pptx
 

JavaScript All The Things

  • 1.
  • 2. 2016: A YEAR IN REVIEW (THE DRINKING GAME)➤ Every time I change languages take a shot. ➤ Every time I change jobs take two shots. ➤ Every time I change what I’m working on drink a beer. ➤ Call emergency services.
  • 3.
  • 4.
  • 5. “I NEED TO SHIP SOMETHING -Me (Around July . . . Roughly)
  • 6. BREADCRUMB TRAIL TO AN IDEA ➤ Munging the iTunes Review Feed took a lot of time. ➤ Fragile Data ➤ Frequent Problems ➤ It would be nice to check the status on my phone…
  • 8. THE CHALLENGE ➤ Build a … ➤ API and SDK’s ➤ Command Line Interface (CLI) ➤ Web App ➤ Serverless Data Pipeline Component ➤ Mobile App ➤ Treat it like a hackathon ➤ MVP-Focused ➤ Time-Box
  • 9. Web Application CLI API (Express.js) SDK’s Mobile Serverless (Azure Function)
  • 10. Web ApplicationSDK’s Mobile CLI API (Express.js) Serverless (Azure Function)
  • 11. Web ApplicationSDK’s Mobile ? CLI API (Express.js) Serverless (Azure Function)
  • 12. Web ApplicationSDK’s Mobile CLI API (Express.js) Serverless (Azure Function)
  • 13.
  • 14. THE CHALLENGE ➤ Build … ➤ API and SDK’s ➤ Command Line Interface (CLI) ➤ Web App ➤ Serverless Component ➤ Mobile App ➤ Treat it like a hackathon ➤ MVP-Focused ➤ Time-Box
  • 15. STAND UP THE WEB APP ➤ Create the initial database schema. ➤ Allow for account sign-up and basic sharing. ➤ Templates: ➤ https://railskits.com ➤ https://github.com/railsapps ➤ https://github.com/abdesigner/SaaStarter ➤ Customize the template. ➤ Total Time: 10 Hours
  • 16.
  • 17.
  • 18. HOW TO LOSE A MONTH ➤ Learn Docker Networking ➤ Learn About Kubernetes ➤ Make Contributions to Open Source Projects ➤ https://github.com/deis/deis/pull/5097 ➤ https://github.com/deis/postgres/pull/159 ➤ https://github.com/kubernetes/kubernetes- anywhere/pull/258
  • 19. DESIGNING THE API ➤ Use swagger.io to create the API spec. ➤ Use the existing schema setup by the web app. ➤ Keep it RESTful and simple.
  • 20. BUILDING THE API ➤ Configs: dotenv, config ➤ ORM: Sequelize ➤ Bonus: Sequelize CLI ➤ Validation: express-validator ➤ Authorization: Passport ➤ Authentication: Custom ➤ Security: Helmet ➤ Total Time: 16 Hours
  • 21. DESIGNING THE CLI ➤ Similar to Heroku, CloudFoundry, or Dies. ➤ Users should be able to login and logout. ➤ Help should be part of the command definitions. ➤ Help should be available at the command group. ➤ No funky UI in the CLI.
  • 22. BUILDING THE CLI ➤ Security: netrc, dashery-js ➤ Use the API to login. ➤ Store token using .netrc ➤ CLI Framework: COA ➤ JavaScript Compiler: Nexe ➤ Gotchas: ➤ No relative paths! (Browserify loves your tears) ➤ I got 1 problem and CoffeeScript is 99 of them. ➤ Don’t keep your Nexe file open. ➤ Hey Nexe, can I have some HDD space back? ➤ Total Time: 32 Hours
  • 23. BUILDING THE SERVERLESS COMPONENT (AZURE FUNCTION)➤ Re-use code from the API: ➤ dashery-models ➤ dashery-auth ➤ Middleware: https://github.com/christopheranderson/func- middleware ➤ Strategies: Custom-Rolled
  • 25.
  • 26.
  • 27. ABOUT THOSE AZURE APPLICATION GATEWAYS➤ Great SSL Offloading ➤ Super Slow For Applying Configuration Changes ➤ Configuration Templates Are Verbose ➤ No Good URL Routing Options ➤ Wanted: /applications/{appId}/dashboards/{dashId}/data ➤ Got: /data/applications/{appId}/dashboards/{dashId} ➤ Total Time: 36 Hours
  • 28. DESIGNING THE MOBILE APP ➤ Make it simple ➤ Doesn’t have to be beautiful, just not jarring. ➤ Users should be able to login and logout. ➤ Session state goes to local storage. ➤ Users stay logged in. ➤ Slide out menu for Application selection. ➤ Swipe left and right to go to different dashboards. ➤ Pull to refresh Dashboard. ➤ Dashboards render with common dashboard library.
  • 29. LEARNING REACT, REDUX, AND REACT NATIVE➤ Apply lessons learned from Polymer. ➤ Read the docs: ➤ https://facebook.github.io/react-native/ ➤ https://facebook.github.io/react/ ➤ http://redux.js.org/ ➤ Watch some videos: ➤ https://egghead.io/courses/getting-started-with-redux ➤ Read some blogs: ➤ https://medium.com/@jonlebensold/getting-started-with-react-native- redux-2b01408c0053#.4bhmi09ry ➤ Total Time: 16 Hours
  • 30. REACT NATIVE (AND HOW REAL THE STRUGGLE GETS)➤ Security: dashery-js ➤ Use the API to login. ➤ Store token in state. ➤ Validation: validator ➤ Patch Timers: react-mixin, react-timer-mixin ➤ Animations: ➤ Just curl up in a ball right here. ➤ Rock back and forth crying. ➤ Total Time: 8 Hours . . . and counting
  • 31. BUILDING THE SDK’S ➤ Create Package Configurations ➤ Use Swagger Codegen ➤ Total Time: 1 Hour
  • 32. THINGS TO DO ➤ Finish up the React Native application. ➤ Automate builds and deployments: ➤ fastlane.tools ➤ travis-ci.com ➤ Create basic dashboards for everyone. ➤ Time Budget: 4 Hours ➤ Write some support documentation. ➤ Time Budget: 4 Hours ➤ Launch! ➤ Time Budget: ?????