Cross-Platform Data Models and API Using grpc
|
|
- Maria Morris
- 5 years ago
- Views:
Transcription
1 Cross-Platform Data Models and API Using grpc Sebastian Hagedorn, Felix Lamouroux
2 Outline 1. Motivation & Goals 2. Choosing the Right Cross-Platform Technology 3. Introduction to Protocol Buffers and grpc 4. Collaborative API Design 5. Here Be Dragons
3 Create a Playful & Performant App that Feels Native
4 Starting Point Green field: New project, clean slate, no legacy components, engineering-driven decisions Team of experienced developers per platform Preferred languages: ios (Swift), Android (Kotlin), Web (Elm), Server-Backend (Go) No complex business logic on mobile/desktop clients
5 Goals Ensure consistent API usage Reduce boilerplate per platform Parsing & serialization Transport layer No critical 3rd party dependencies above transport layer Integrate seamlessly with native languages & tools
6 Options Considered: JNI/Djinni Interfaces defined in platform-agnostic Interface Definition Language (IDL) Platform-specific interfaces (Java or C++/Objective-C) are generated Service/shared code must be implemented in C++ Decided against it: Not usable for web client Our team lacks C++ experience for large/critical code bases Little client-side business logic in our UI-heavy project
7 Options Considered: React Native Allows cross-platform code (way) beyond data model and networking Enables JavaScript developers to write native apps Decided against it: Does not help to define a common model unless all components use React Native (backend must use node.js) Our team consists of experienced platform developers (with little JS experience) Does not align with our goal of playful & performant apps
8 Technology Stack: Protocol Buffers Binary serialization format developed by Google Model types are defined in simple Protobuf language Per-platform/per-language code is generated from Proto files Generates interface and implementation for (de)serialization Official support for many languages: Java, Python, Objective-C, C++, Go, Ruby, and C# More can be added via plugins, as Apple did for Swift:
9 Auto-generated types Golang Java Proto Objective-C Swift code generator available from Apple: Swift
10 Technology Stack: grpc A high performance, open-source universal RPC framework" (grpc.io) API endpoints are defined in IDL (Protobuf by default) Server and client libraries are generated Protobuf handles (de)serialization grpc handles networking Apps call generated endpoint APIs in native language grpc-protorpc generators & runtimes available in Swift and ObjC We chose ObjC for better stability (Swift support is declared experimental) Interdependency between Protobuf (Swift support implemented by Apple) and grpc (Swift support implemented by official project maintainers): Cannot (necessarily) update components individually Apple uses grpc-protorpc in private CloudKit server-to-server API
11 Code Speaks Louder than Words
12 Login Example: API Specs (Service) Support JSON fall-back via proxy Shared documentation also provided in auto-generated clients.
13 Login Example: API Specs (Model)
14 Login Example: ios Callsite (Swift)
15 Login Example: Backend Implementation (Go)
16 Collaborative API Design: Tooling & Setup Bridge gap between frontend & backend teams: Design API collaboratively Cross-platform API submodule Central source of truth for model and API definitions (Proto files) Tooling to generate code for all platforms (using Makefiles) Integration of runtimes and generated files solved per platform repository All developers invited to contribute via Pull Requests to shared API specs On-the-fly code generation allows local iterations Review & verification on all platforms Shared vocabulary about types (user, account, profile, )
17 Don't Let Clients Send Messages With Ignored Fields Messages that are used in requests should only contain fields that are mutable by the client. Information about an entity that is only mutable by the server should only be available as part of responses. Combine messages to decorate them (composition over inheritance)
18 Avoid Duplicate Fields Avoid repeating fields by wrapping decorating messages around existing ones.
19 Here Be Dragons
20 Beware: All Fields are Optional Protocol buffers 3 no longer allows marking fields as required Makes backwards/forward-compatibility easier: required fields invalidate the entire message regardless of context parts of an application could pass around partially-complete messages internally whole applications might simply be interested in passing message through (see routers) Ensure that each callsite using a message performs sensible validation (no blanket rejections) Provide invalid default values to fields if you need to ensure that clients set them explicitly (see enums) Only validate messages when you care about the content See also:
21 Optionality & Versioning We re mitigating [backward and forward compatibility issues] by using Protocol Buffers and controlling most new features with flags, which remain turned off during a partition upgrade, and are enabled only after all hosts are updated. From Apple s CloudKit paper (
22 Check Your Defaults Explicit UNINITIALIZED_* values in enums ensure that unset values are caught Check if your business logic makes sense for other type defaults, such as empty string or zero integers
23 Enforce Client-Side Non-Optional Values Linter enforces usage of convenience initializers Unit tests make sure that model changes do not go unnoticed
24 Tooling Quirks Custom Makefile to process Proto files Not trivial to write Integration is different per platform/ide Make modifies output file timestamps regardless of content diff Swift compiler re-builds the entire module Solution: Extra script using rsync that only makes actual changes available to Xcode Integration of grpc runtime is not trivial except when using CocoaPods Protobuf optionality is not reflected by ObjC header annotations All properties are force-unwrapped
25 We Are Hiring We are building a product team here in Cologne. Looking for ios, Android, Web, Backend, UI/UX design. Strong mobile focus with many senior developers.
26 Sebastian Hagedorn Felix Lamouroux ios Lead Developer Project Lead - New Ventures (and ios felix.lamouroux@sumup.com
Protocol Buffers, grpc
Protocol Buffers, grpc Szolgáltatásorientált rendszerintegráció Service-Oriented System Integration Dr. Balázs Simon BME, IIT Outline Remote communication application level vs. transport level protocols
More informationSignals Documentation
Signals Documentation Release 0.1 Yeti November 22, 2015 Contents 1 Quickstart 1 2 What is Signals? 3 3 Contents 5 3.1 Get Started................................................ 5 3.2 Try the Demo Server...........................................
More informationgrpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer
grpc - A solution for RPCs by Google Distributed Systems Seminar at Charles University in Prague, Nov 2016 Jan Tattermusch - grpc Software Engineer About me Software Engineer at Google (since 2013) Working
More informationHOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN
HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN WITALEC @SEBAWITA NATIVE DEVELOPMENT WHY DO I EVEN HAVE TO CHOOSE? THE PROBLEM WHAT WE WANT REALITY DEV SETUP OBJECTIVE- C SWIFT
More informationAdvance Mobile& Web Application development using Angular and Native Script
Advance Mobile& Web Application development using Angular and Native Script Objective:- As the popularity of Node.js continues to grow each day, it is highly likely that you will use it when you are building
More informationTeach your (micro)services speak Protocol Buffers with grpc.
Teach your (micro)services speak Protocol Buffers with grpc. Mihai Iachimovschi @mishunika mihai.iachimovschi@gmail.com What s inside? What s inside? Message serialization and deserialization What s inside?
More informationThe C-Suite Guide to Mobile Technologies for mhealth Development. Medical Web ExpertsTM
The C-Suite Guide to Mobile Technologies for mhealth Development Medical Web ExpertsTM January 2017 Executive Summary mhealth technologies are forming a more integral part of many healthcare organizations
More informationPROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...
PROCE55 Mobile: Web API App PROCE55 Mobile with Test Web API App Web API App Example This example shows how to access a typical Web API using your mobile phone via Internet. The returned data is in JSON
More informationA New Model for Image Distribution
A New Model for Image Distribution Stephen Day Distribution, Tech Lead Docker, Inc. stephen@docker.com @stevvooe github.com/stevvooe Overview Why does this matter? History Docker Registry API V2 Implementation
More informationThink like an Elm developer
Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services
More informationImplementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications
Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications By, Janakiram MSV Executive Summary Application development has gone through a fundamental shift in the recent past.
More informationGoogle Protocol Buffers for Embedded IoT
Google Protocol Buffers for Embedded IoT Integration in a medical device project Quick look 1: Overview What is it and why is useful Peers and alternatives Wire format and language syntax Libraries for
More informationApache Thrift Introduction & Tutorial
Apache Thrift Introduction & Tutorial Marlon Pierce, Suresh Marru Q & A TIOBE Index Programming Language polyglotism Modern distributed applications are rarely composed of modules written in a single language.
More informationMobile Application Development
Android Native Application Development Mobile Application Development 1. Android Framework and Android Studio b. Android Software Layers c. Android Libraries d. Components of an Android Application e.
More informationThis release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software Security Center
Fortify Software What s New in Micro Focus Fortify Software 18.20 November 2018 This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software
More informationMulti-platform Mobile App. Development with Apache Cordova
Multi-platform Mobile App. Development with Apache Cordova MTAT.03.262 2017 Fall Jakob Mass jakob.mass@ut.ee 27.10.2017 MTAT.03.262 Introduction Fragmented market Developers have limited resources Platform
More informationPiqi-RPC. Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP. Friday, March 25, 2011
Piqi-RPC Exposing Erlang services via JSON, XML and Google Protocol Buffers over HTTP 1 Anton Lavrik http://piqi.org http://www.alertlogic.com 2 Overview Call Erlang functions using HTTP POST : Server
More informationConsumer Driven Contract Testing with Pact and Docker. By Harry
Consumer Driven Contract Testing with Pact and Docker By Harry Winser @Hazz223 1 2 OR CONFIDENCE IN PRODUCTION In the beginning, there were monoliths Image from: http://odino.org/on-monoliths-service-oriented-architectures-and-microservices/
More informationPivotal Tracker Kanban Prototype COLORADO SCHOOL OF MINES 2017 FIELD SESSION
Pivotal Tracker Kanban Prototype COLORADO SCHOOL OF MINES 2017 FIELD SESSION Ann Gustafson Emily Dederick Christopher Bonin Gerald Ung CLIENT Morgan Whitney Table of Contents 1. Introduction... 2 1.1.
More informationIBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC
IBM Case Manager Mobile Version 1.0.0.5 SDK for ios Developers' Guide IBM SC27-4582-04 This edition applies to version 1.0.0.5 of IBM Case Manager Mobile (product number 5725-W63) and to all subsequent
More informationProjects and Apache Thrift. August 30 th 2018 Suresh Marru, Marlon Pierce
Projects and Apache Thrift August 30 th 2018 Suresh Marru, Marlon Pierce smarru@iu.edu, marpierc@iu.edu Todays Outline Final Project Proposals Apache Thrift Overview Open Discussion Project Life Cycle
More informationCSCI-1680 RPC and Data Representation. Rodrigo Fonseca
CSCI-1680 RPC and Data Representation Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen many of these, across all layers E.g.,
More informationBeginner s Guide to Cordova and Mobile Application Development
November 13, 2018 Beginner s Guide to Cordova and Mobile Application Development George Campbell Lead Software Engineer Doug Davies Lead Software Engineer George Campbell Lead Software Engineer Doug Davies
More informationJenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC
Jenkins: A complete solution From Integration to Delivery For HSBC Rajesh Kumar DevOps Architect @RajeshKumarIN www.rajeshkumar.xyz Agenda Why Jenkins? Introduction and some facts about Jenkins Supported
More informationDeveloping Fast with
Developing Fast with 10 Reasons to Use an Artifact Repository Manager White Paper August 2016 www.jfrog.com Contents Executive Summary... 3 Introduction... 6 01 Reliable and consistent access to Podspecs
More information{ REST } vs. Battle of API s
{ REST } vs Battle of API s Software Engineer at Sensedia Who am I? MBA in java projects Java and microservice enthusiastic Microservices Agenda REST grpc Demo Questions Moving to Microservices Monolith
More informationCS 577A Team 1 DCR ARB. PicShare
CS 577A Team 1 DCR ARB PicShare Team and Project Review (DEN) Project Evaluation Positives Resilient Agile detailed design promotes thoroughness before any code is written Development time should be reduced
More informationProgramming School for 21 st Century. syllabus MOBILE BACKEND DEVOPS
Programming School for 21 st Century syllabus MOBILE BACKEND DEVOPS Overview Refactory Syllabus This is our guideline to help students improve their programming skills, to be an international-level so
More informationTHOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS
THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS LOGISTICS HW5 due today Project presentation on 12/6 Review for final on 12/6 2 EXAMPLE: NPM https://twitter.com/garybernhardt/status/1067111872225136640
More informationAbout 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2
odata #odata Table of Contents About 1 Chapter 1: Getting started with odata 2 Remarks 2 Examples 2 Installation or Setup 2 Odata- The Best way to Rest 2 Chapter 2: Azure AD authentication for Node.js
More informationOperating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski
Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets
More informationSecrets to a successful design system
Secrets to a successful design system 2018 Monica Lent Lead Frontend Engineer at SumUp Defining success! Why & What? Secrets to a successful design system SumUp. A better way to get paid Blockchain Design
More informationFull Stack boot camp
Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building
More informationA Glance Over the Serverless Framework
A Glance Over the Serverless Framework Rafael Zotto Senior Software Architect, HP Inc. Short Bio Rafael Zotto Holds a master degree in Computer Science focused in high performance computing. Specialized
More informationGoCD Python API client Documentation
GoCD Python API client Documentation Release 1.0.1 Grigory Chernyshev Dec 08, 2017 Contents 1 Intro 1 2 Contents: 3 2.1 Yet another GoCD python client..................................... 3 2.2 Usage...................................................
More information12/05/2017. Geneva ServiceNow Custom Application Development
12/05/2017 Contents...3 Applications...3 Creating applications... 3 Parts of an application...22 Contextual development environment... 48 Application management... 56 Studio... 64 Service Creator...87
More informationUsing the MySQL Document Store
Using the MySQL Document Store Alfredo Kojima, Sr. Software Dev. Manager, MySQL Mike Zinner, Sr. Software Dev. Director, MySQL Safe Harbor Statement The following is intended to outline our general product
More informationAP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS
AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS PAUL L. BAILEY Abstract. This documents amalgamates various descriptions found on the internet, mostly from Oracle or Wikipedia. Very little of this
More informationDistributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017
Distributed Systems 03. Remote Procedure Calls Paul Krzyzanowski Rutgers University Fall 2017 1 Socket-based communication Socket API: all we get from the OS to access the network Socket = distinct end-to-end
More informationCS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction
Socket-based communication Distributed Systems 03. Remote Procedure Calls Socket API: all we get from the to access the network Socket = distinct end-to-end communication channels Read/write model Line-oriented,
More informationThe Life of an Open-Source Project
The Life of an Open-Source Project David Garcia Quintas Xoogler, grpc C Core Team dgquintas@gmail.com How I Got Here Agenda Why develop [a new project] in open-source. What is being developed: grpc. How
More informationOverview of WebAdmin and UI Frameworks
Overview of WebAdmin and UI Frameworks ovirt Workshop - Bangalore October 2012 Kanagaraj Mayilsamy RedHat 1 Agenda The heart of ovirt UI GWT GWT Development Lifecycle Deferred Binding MVP Architecture
More informationMIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2
1 SUMMARY 1 INTRODUCTION... 4 2 HOW TO UPGRADE FROM DIGITAL EXPERIENCE MANAGER 7.1 TO 7.2... 5 2.1 Code base review and potential impacts... 5 2.2 Deployment scripts/procedure review... 5 2.3 Test environment
More informationGoogles Approach for Distributed Systems. Slides partially based upon Majd F. Sakr, Vinay Kolar, Mohammad Hammoud and Google PrototBuf Tutorial
Protocol Buffers Googles Approach for Distributed Systems Slides partially based upon Majd F. Sakr, Vinay Kolar, Mohammad Hammoud and Google PrototBuf Tutorial https://developers.google.com/protocol-buffers/docs/tutorials
More informationIntroduction to Genero Enterprise
Introduction to Genero Enterprise Laurent Galais Services & Support Manager Four Js US & Canada Tuesday, November 17, 201 Tysons Corner, VA Technical Advisory Council 201 Costa d Este Beach Resort, Vero
More informationXcode 6 and ios 8 What s New for Software Developers
Xcode 6 and ios 8 What s New for Software Developers August 2014 Norman McEntire! norman.mcentire@servin.com Slides and Video of this presentation will be posted on Tuesday Aug 26 here: http://servin.com!1
More informationRichard Mallion. Swift for Admins #TEAMSWIFT
Richard Mallion Swift for Admins #TEAMSWIFT Apple Introduces Swift At the WWDC 2014 Keynote, Apple introduced Swift A new modern programming language It targets the frameworks for Cocoa and Cocoa Touch
More informationFuture Web App Technologies
Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding
More informationDESIGN PATTERN - INTERVIEW QUESTIONS
DESIGN PATTERN - INTERVIEW QUESTIONS http://www.tutorialspoint.com/design_pattern/design_pattern_interview_questions.htm Copyright tutorialspoint.com Dear readers, these Design Pattern Interview Questions
More informationIBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.
Please note Copyright 2018 by International Business Machines Corporation (IBM). No part of this document may be reproduced or transmitted in any form without written permission from IBM IBM s statements
More informationCisco Spark Widgets Technical drill down
DEVNET-1891 Cisco Spark Widgets Technical drill down Adam Weeks, Engineer @CiscoSparkDev Stève Sfartz, API Evangelist @CiscoDevNet Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker
More informationCS498: Undergraduate Project. A scalable full-stack cross-platform messaging component. Under the guidance of. Prof. T.V.
CS498: Undergraduate Project A scalable full-stack cross-platform messaging component Submitted by ------------------------------------------------------- 10282, Harpreet Singh, hsinghg@iitk.ac.in -------------------------------------------------------
More informationSecuring Dataverse with an Adapted Command Design Pattern. Gustavo Durand, Michael Bar-Sinai, Merce Crosas SecDev - September 26, 2017
Securing Dataverse with an Adapted Command Design Pattern Gustavo Durand, Michael Bar-Sinai, Merce Crosas SecDev - September 26, 2017 Introduction An application design that enforces permission-based policies
More informationHPE AppPulse Mobile. Software Version: 2.1. Adding AppPulse Mobile to Your ios App
HPE AppPulse Mobile Software Version: 2.1 Adding AppPulse Mobile to Your ios App Document Release Date: November 2015 Contents How to Add HP AppPulse Mobile to Your ios App 3 Advanced Options 7 Crash Stack
More informationXcode Encountered An Internal Logic Error >>>CLICK HERE<<<
Xcode Encountered An Internal Logic Error Choose Continue The biggest problem is that "XCODE" doesn't run and give the following error: Xcode encountered an internal logic error. Choose "Continue" to continue
More informationProject Plan Image Recognition Annotation and Validation
Project Plan Image Recognition Annotation and Validation From Students to Professionals Mobile Application The Capstone Experience Team Whirlpool Shruti Avutapalli Jessica Clappison Jackie Li Savanna Pinkoski
More informationSpring Framework 5.0 on JDK 8 & 9
Spring Framework 5.0 on JDK 8 & 9 Juergen Hoeller Spring Framework Lead Pivotal 1 Spring Framework 5.0 (Overview) 5.0 GA as of September 28 th, 2017 one week after JDK 9 GA! Embracing JDK 9 as well as
More informationWriting REST APIs with OpenAPI and Swagger Ada
Writing REST APIs with OpenAPI and Swagger Ada Stéphane Carrez FOSDEM 2018 OpenAPI and Swagger Ada Introduction to OpenAPI and Swagger Writing a REST Ada client Writing a REST Ada server Handling security
More informationMigrating traditional Java EE applications to mobile
Migrating traditional Java EE applications to mobile Serge Pagop Sr. Channel MW Solution Architect, Red Hat spagop@redhat.com Burr Sutter Product Management Director, Red Hat bsutter@redhat.com 2014-04-16
More informationin Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto
in Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto 1. Real Wave Modules Marketing Sales Care Technical stack Frontend Integration Backend Payments Insights Integration
More informationSTARCOUNTER. Technical Overview
STARCOUNTER Technical Overview Summary 3 Introduction 4 Scope 5 Audience 5 Prerequisite Knowledge 5 Virtual Machine Database Management System 6 Weaver 7 Shared Memory 8 Atomicity 8 Consistency 9 Isolation
More informationArcGIS for Developers: An Introduction. Moey Min Ken
ArcGIS for Developers: An Introduction Moey Min Ken AGENDA Is development right for me? Building Apps on the ArcGIS platform Rest API & Web API Native SDKs Configurable Apps and Builders Extending the
More informationProject Zygote. Rapid prototyping for the Internet of Things
Project Zygote Rapid prototyping for the Internet of Things The Problem we set out to solve How to make interconnecting things easier? What IoT means to us Seamless interconnection between any IoT enabled
More informationSystem and Software Architecture Description (SSAD)
System and Software Architecture Description (SSAD) Perfecto Coffee Xpress Consistent Perfection Team 5 Chloe Good Yekaterina Glazko Edwards Hays Yucheng Hsieh Atreya Lahiri Jaimin Patel Yun Shen Andrew
More informationAbout Xcode and iphone SDK
apple About Xcode and iphone SDK iphone SDK and Xcode 3.1.2 developer tools for iphone OS 2.2 Contents Introduction Compatibility with Mac OS X Versions What's New Installation Deprecation Notice Introduction
More informationintroduction to records in touchdevelop
introduction to records in touchdevelop To help you keep your data organized, we are introducing records in release 2.8. A record stores a collection of named values called fields, e.g., a Person record
More informationIntroduction Framing Payloads APIs NMSG. Robert Edmonds Internet Systems Consortium, Inc. December 3, 2009
Internet Systems Consortium, Inc. December 3, 2009 Introduction is a file and wire format for storing and transmitting blobs of information. Introduction is a file and wire format for storing and transmitting
More informationProject Requirements Document v2
Project Requirements Document v2 Project Title : Automated 3 Way Match (tentative) Team Name : $-flow Members : Email : Millan Batra [Lead] millanbatra@umail.ucsb.edu Yoon Lee [Scribe] yoonlee@ucsb.edu
More informationWeb Development for Dinosaurs An Introduction to Modern Web Development
Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge
More informationA Brief History of Distributed Programming: RPC. YOW Brisbane 2016
A Brief History of Distributed Programming: RPC YOW Brisbane 2016 Christopher Meiklejohn Université catholique de Louvain @cmeik christophermeiklejohn.com Caitie McCaffrey Distributed Systems Engineer
More informationINTERNAL AND EXTERNAL VACANCY ANNOUNCEMENT
INTERNAL AND EXTERNAL VACANCY ANNOUNCEMENT Cross TV, an engaging, positive and progressive national general entertainment channel for young adults with the vision to expand internationally is recruiting.
More informationgrpc Network Management Interface
grpc Network Management Interface draft-openconfig-rtgwg-gnmi-spec-00 Rob Shakir, Anees Shaikh, Paul Borman, Marcus Hines, Carl Lebsack, Chris Morrow (Google) IETF 98 RTGWG What is gnmi? specification
More informationProgramming Kotlin. Extracted from: Creating Elegant, Expressive, and Performant JVM and Android Applications. The Pragmatic Bookshelf
Extracted from: Programming Kotlin Creating Elegant, Expressive, and Performant JVM and Android Applications This PDF file contains pages extracted from Programming Kotlin, published by the Pragmatic Bookshelf.
More informationThe Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh
The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/
More informationIos Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<
Ios Sdk Documentation For Windows 7 32 Bit Latest Version Download Latest ios SDK & Sample Project Got the SDK? v5.3.0 (May 7, 2015) Native ios SDK now sends the version of the Unity wrapper SDK along
More informationDistributed Systems 8. Remote Procedure Calls
Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier
More informationAugust, HPE Propel Microservices & Jumpstart
August, 2016 HPE Propel s & Jumpstart Jumpstart Value Quickly build modern web applications Single page application Modular microservices architecture app generator Modularity provides better upgradeability
More informationPick A Winner! In What Tool Should I Develop My Next App?
Pick A Winner! In What Tool Should I Develop My Next App? Mia Urman, CEO, AuraPlayer Inc. @miaurman @auraplayer Who is Mia Urman? miaurman@auraplayer.com Oracle ACE Director & Development Geek for over
More informationBuilding Large Scale Distributed Systems with AMQP. Ted Ross
Building Large Scale Distributed Systems with AMQP Ted Ross tross@apache.org Agenda What is AMQP? Why is AMQP important to large distributed enterprises? How is the Apache Community making AMQP a reality?
More informationwelcome to BOILERCAMP HOW TO WEB DEV
welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js
More informationEMC CAPTIVA. Capture-enable Your Mobile Applications with Ease
EMC CAPTIVA Capture-enable Your Mobile Applications with Ease Raul Gabriel Senior Product Marketing Manager Nathan Verrilli Senior Systems Engineer June 17, 2014 1 Agenda 1 Mobile Capture Challenges 2
More information# T C 1 8. Mobile App Bootstrap. Custom mobile apps with embedded Tableau visualizations. Ron Theis. Staff Software Engineer Tableau
Welcome # T C 1 8 Mobile App Bootstrap Custom mobile apps with embedded Tableau visualizations Ron Theis Staff Software Engineer Tableau Questions to Consider How would our app connect and authenticate?
More informationIntro. MobileCPPTutorials.com
Intro MobileCPPTutorials.com imperson8.com opendiabetesapp.com Intro Mobile C++ Architecture Overview Mobile C++ Architecture Overview App Library C++ iphone UI Android UI Objective-C / Swift Java Mobile
More informationThe Energenie Project
1 Übermind / Deloitte Digital The Energenie Project Andrew Shaw, Mark Shivers, Santiago Gonzalez, Zach Fleischman June 19, 2012 2 Abstract: Our team was tasked with the creation of an iphone app and an
More informationIntroduction to Sencha Ext JS
Introduction to Sencha Ext JS Olga Petrova olga@sencha.com Sales Engineer EMEA Agenda Use Case How It Works Advantages Demo Use case Ext JS a Javascript framework for building enterprise data-intensive
More informationCOMP-520 GoLite Tutorial
COMP-520 GoLite Tutorial Alexander Krolik Sable Lab McGill University Winter 2019 Plan Target languages Language constructs, emphasis on special cases General execution semantics Declarations Types Statements
More informationTopic 9: Type Checking
Recommended Exercises and Readings Topic 9: Type Checking From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 13.17, 13.18, 13.19, 13.20, 13.21, 13.22 Readings: Chapter 13.5, 13.6 and
More informationTopic 9: Type Checking
Topic 9: Type Checking 1 Recommended Exercises and Readings From Haskell: The craft of functional programming (3 rd Ed.) Exercises: 13.17, 13.18, 13.19, 13.20, 13.21, 13.22 Readings: Chapter 13.5, 13.6
More informationJAVA For Beginner's Crash Course: Java For Beginners Guide To Program Java, JQuery, & Java Programming (Java For Beginners, Learn Java, JQuery,...
JAVA For Beginner's Crash Course: Java For Beginners Guide To Program Java, JQuery, & Java Programming (Java For Beginners, Learn Java, JQuery,... Programming, Programming Language, Coding) By Quick Start
More informationTake Your Oracle Forms on the Road Using ADF Mobile. Mia Urman, OraPlayer & Denis Tyrell, Oracle Corporation
Take Your Oracle Forms on the Road Using ADF Mobile Mia Urman, OraPlayer & Denis Tyrell, Oracle Corporation Who Am I Mia Urman CEO, OraPlayer Oracle Expert and Oracle Forms Cheerleader 14 years supporting,
More informationTH IRD EDITION. Python Cookbook. David Beazley and Brian K. Jones. O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo
TH IRD EDITION Python Cookbook David Beazley and Brian K. Jones O'REILLY. Beijing Cambridge Farnham Köln Sebastopol Tokyo Table of Contents Preface xi 1. Data Structures and Algorithms 1 1.1. Unpacking
More informationContainers, Serverless and Functions in a nutshell. Eugene Fedorenko
Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes
More informationTransitioning from C# to Scala Using Apache Thrift. Twitter Finagle
Transitioning from C# to Scala Using Apache Thrift and Twitter Finagle Steven Skelton September 19, 2013 Empathica Empathica provides Customer Experience Management programs to more than 200 of the world's
More informationUnderstanding Undefined Behavior
Session Developer Tools #WWDC17 Understanding Undefined Behavior 407 Fred Riss, Clang Team Ryan Govostes, Security Engineering and Architecture Team Anna Zaks, Program Analysis Team 2017 Apple Inc. All
More informationIndexing Large, Mixed- Language Codebases. Luke Zarko
Indexing Large, Mixed- Language Codebases Luke Zarko The Kythe project aims to establish open data formats and protocols for interoperable developer tools. Outline Introduction System
More informationCAL POLY MUSTANG NEWS IOS APP SENIOR PROJECT REPORT. Abstract. Monica Chavez-Martinez
Abstract This project was made in collaboration with Mustang News, Cal Poly s campus news group. The goal was to create an app for Mustang News that would help them reach a broader audience and readership.
More informationSwift 5, ABI Stability and
Swift 5, ABI Stability and Concurrency @phillfarrugia Important Documents Concurrency Manifesto by Chris Lattner https: /gist.github.com/lattner/ 31ed37682ef1576b16bca1432ea9f782 Kicking off Concurrency
More informationPENETRATION TEST REPORT
PENETRATION TEST REPORT for Jigsaw LLC V1.0 Amsterdam November 28th, 2017 1/10 Radically Open Security B.V. - Chamber of Commerce 60628081 Document Properties Client Title Targets Version 1.0 Pentesters
More informationTechnologies for the future of Network Insight and Automation
Technologies for the future of Network Insight and Automation Richard Wade (ricwade@cisco.com) Technical Leader, Asia-Pacific Infrastructure Programmability This Session s Context Service Creation Service
More informationIntegration Service. Admin Console User Guide. On-Premises
Kony Fabric Integration Service Admin Console User Guide On-Premises Release V8 SP1 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the
More information