Cross-Platform Data Models and API Using grpc

Size: px
Start display at page:

Download "Cross-Platform Data Models and API Using grpc"

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 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 information

Signals Documentation

Signals 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 information

grpc - 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 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 information

HOW REACT NATIVE AND NATIVESCRIPT CHANGE YOUR MOBILE STRATEGY SEBASTIAN

HOW 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 information

Advance Mobile& Web Application development using Angular and Native Script

Advance 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 information

Teach your (micro)services speak Protocol Buffers with grpc.

Teach 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 information

The 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 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 information

PROCE55 Mobile: Web API App. Web API. https://www.rijksmuseum.nl/api/...

PROCE55 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 information

A New Model for Image Distribution

A 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 information

Think like an Elm developer

Think 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 information

Implementing the Twelve-Factor App Methodology for Developing Cloud- Native Applications

Implementing 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 information

Google Protocol Buffers for Embedded IoT

Google 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 information

Apache Thrift Introduction & Tutorial

Apache 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 information

Mobile Application Development

Mobile 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 information

This release of Micro Focus Fortify Software includes the following new functions and features. Micro Focus Fortify Software Security Center

This 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 information

Multi-platform Mobile App. Development with Apache Cordova

Multi-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 information

Piqi-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. 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 information

Consumer Driven Contract Testing with Pact and Docker. By Harry

Consumer 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 information

Pivotal Tracker Kanban Prototype COLORADO SCHOOL OF MINES 2017 FIELD SESSION

Pivotal 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 information

IBM Case Manager Mobile Version SDK for ios Developers' Guide IBM SC

IBM 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 information

Projects and Apache Thrift. August 30 th 2018 Suresh Marru, Marlon Pierce

Projects 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 information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-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 information

Beginner s Guide to Cordova and Mobile Application Development

Beginner 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 information

Jenkins: A complete solution. From Continuous Integration to Continuous Delivery For HSBC

Jenkins: 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 information

Developing Fast with

Developing 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 { 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 information

CS 577A Team 1 DCR ARB. PicShare

CS 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 information

Programming School for 21 st Century. syllabus MOBILE BACKEND DEVOPS

Programming 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 information

THOMAS LATOZA SWE 621 FALL 2018 DESIGN ECOSYSTEMS

THOMAS 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 information

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

About 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 information

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Operating 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 information

Secrets to a successful design system

Secrets 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 information

Full Stack boot camp

Full 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 information

A Glance Over the Serverless Framework

A 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 information

GoCD Python API client Documentation

GoCD 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 information

12/05/2017. Geneva ServiceNow Custom Application Development

12/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 information

Using the MySQL Document Store

Using 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 information

AP COMPUTER SCIENCE JAVA CONCEPTS IV: RESERVED WORDS

AP 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 information

Distributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed 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 information

CS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction

CS 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 information

The Life of an Open-Source Project

The 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 information

Overview of WebAdmin and UI Frameworks

Overview 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 information

MIGRATION GUIDE DIGITAL EXPERIENCE MANAGER 7.2

MIGRATION 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 information

Googles Approach for Distributed Systems. Slides partially based upon Majd F. Sakr, Vinay Kolar, Mohammad Hammoud and Google PrototBuf Tutorial

Googles 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 information

Introduction to Genero Enterprise

Introduction 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 information

Xcode 6 and ios 8 What s New for Software Developers

Xcode 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 information

Richard Mallion. Swift for Admins #TEAMSWIFT

Richard 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 information

Future Web App Technologies

Future 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 information

DESIGN PATTERN - INTERVIEW QUESTIONS

DESIGN 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 information

IBM s statements regarding its plans, directions, and intent are subject to change or withdrawal without notice at IBM s sole discretion.

IBM 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 information

Cisco Spark Widgets Technical drill down

Cisco 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 information

CS498: 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. 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 information

Securing 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 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 information

HPE 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 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 information

Xcode Encountered An Internal Logic Error >>>CLICK HERE<<<

Xcode 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 information

Project Plan Image Recognition Annotation and Validation

Project 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 information

Spring Framework 5.0 on JDK 8 & 9

Spring 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 information

Writing REST APIs with OpenAPI and Swagger Ada

Writing 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 information

Migrating traditional Java EE applications to mobile

Migrating 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 information

in Microservices using DDD, Event Sourcing & CQRS Augusto Branquinho Mike Shigueru Matsumoto

in 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 information

STARCOUNTER. Technical Overview

STARCOUNTER. 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 information

ArcGIS for Developers: An Introduction. Moey Min Ken

ArcGIS 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 information

Project Zygote. Rapid prototyping for the Internet of Things

Project 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 information

System and Software Architecture Description (SSAD)

System 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 information

About Xcode and iphone SDK

About 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 information

introduction to records in touchdevelop

introduction 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 information

Introduction Framing Payloads APIs NMSG. Robert Edmonds Internet Systems Consortium, Inc. December 3, 2009

Introduction 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 information

Project Requirements Document v2

Project 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 information

Web Development for Dinosaurs An Introduction to Modern Web Development

Web 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 information

A Brief History of Distributed Programming: RPC. YOW Brisbane 2016

A 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 information

INTERNAL AND EXTERNAL VACANCY ANNOUNCEMENT

INTERNAL 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 information

grpc Network Management Interface

grpc 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 information

Programming Kotlin. Extracted from: Creating Elegant, Expressive, and Performant JVM and Android Applications. The Pragmatic Bookshelf

Programming 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 information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The 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 information

Ios Sdk Documentation For Windows 7 32 Bit. Latest Version >>>CLICK HERE<<<

Ios 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 information

Distributed Systems 8. Remote Procedure Calls

Distributed 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 information

August, HPE Propel Microservices & Jumpstart

August, 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 information

Pick A Winner! In What Tool Should I Develop My Next App?

Pick 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 information

Building Large Scale Distributed Systems with AMQP. Ted Ross

Building 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 information

welcome to BOILERCAMP HOW TO WEB DEV

welcome 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 information

EMC CAPTIVA. Capture-enable Your Mobile Applications with Ease

EMC 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

# 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 information

Intro. MobileCPPTutorials.com

Intro. 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 information

The Energenie Project

The 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 information

Introduction to Sencha Ext JS

Introduction 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 information

COMP-520 GoLite Tutorial

COMP-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 information

Topic 9: Type Checking

Topic 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 information

Topic 9: Type Checking

Topic 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 information

JAVA 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,... 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 information

Take 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 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 information

TH 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 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 information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, 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 information

Transitioning from C# to Scala Using Apache Thrift. Twitter Finagle

Transitioning 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 information

Understanding Undefined Behavior

Understanding 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 information

Indexing Large, Mixed- Language Codebases. Luke Zarko

Indexing 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 information

CAL POLY MUSTANG NEWS IOS APP SENIOR PROJECT REPORT. Abstract. Monica Chavez-Martinez

CAL 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 information

Swift 5, ABI Stability and

Swift 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 information

PENETRATION TEST REPORT

PENETRATION 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 information

Technologies for the future of Network Insight and Automation

Technologies 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 information

Integration Service. Admin Console User Guide. On-Premises

Integration 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