SlideShare a Scribd company logo
1 of 37
OSCON 2016 – Swift
Mobile, open source, and the drive to the cloud
Patrick Bohrer
IBM Cloud
@pbohrer
OSCON 2016 – Swift
Agenda
• Why:
• Enabling Modern App Design Patterns
• What:
• Logic, Data, Events & Integration powered by Open Source
• How:
• Developer Experience & Tools
• Get Involved:
• Sample End-to-end Applications
• Resources & Links
2
OSCON 2016 – Swift
Modern Application Design: Tiers
3
Application-specific
Backend
Other Cloud Services
On-prem Services
Experiences being built by this
community are dramatically changing
the way we live and work
New Experiences
User-facing Client Apps
Things / Sensors
End Users
OSCON 2016 – Swift
Modern Application Design: Tier Attributes
4
Application-specific
Backend
Other Cloud Services
On-prem Services
End Users
User-facing Client Apps
Role: User Interactions &
Remote Sensing
Application State: User
& View Specific State,
Caching of eventually
consistent state
Usage: Sometimes on,
Driven by Users and
Events
Resources: Constrained
CPU, Mem, Network BW
Role: Integration
Service Composition,
Background Monitoring/Activity,
Event/Traffic Routing,
State synchronization across
clients and things
Application State: Global
Application State
Usage: Always-on, Always
Connected
Resources: Unlimited CPU,
Mem, Network BW
OSCON 2016 – Swift
Modern Application Design: Tier Attributes
5
Application-specific
Backend
Other Cloud Services
On-prem Services
End Users
User-facing Client Apps
Developer Experience
• Tight Coupling/Dependency between Client Apps
and Application Backend
• Need ability to deploy the right functionality to the
proper tier to deliver world class experience
• Successful experience reached through fast
iterations
OSCON 2016 – Swift
Modern Application Design: Application Constructs
6
Application-specific
Backend
Other Cloud Services
On-prem Services
Logic: Client and Server-side Swift
Data: Cloudant, MongoDB, Redis,
ElasticSearch, PostgresQL, etc
Events: OpenWhisk
Integration: Open Github Packages
User-facing Client Apps
Developer Experience
End Users
OSCON 2016 – Swift
Application Logic: Swift (Client and Server)
• Swift Background
• What is included in Swift.org ?
• Trends
• Bringing Swift to the Server
• Core contributions
• Motivating Server Projects (Kitura & more)
OSCON 2016 – Swift
Swift.org: What is included?
• Open Sourced Dec 3, 2015
• Swift Language
• Core libraries:
• XCTest
• Libdispatch (GCD)
• Foundation for non-Apple hosts (New)
• LLVM Compiler & Debugger (swift-lldb, swift-llvm, swift-clang)
• Swift Package Manager (New)
OSCON 2016 – Swift
IBM Swift Sandbox
The IBM Swift Sandbox
Experiment with Swift on the server,
share your code and collaborate with
your peers
http://swiftlang.ng.bluemix.net 9
Features
• One click access to Swift on
Linux (multiple versions)
• Mobile UI & Auto Saving
Draft
• Code Snapshots & Sharing,
UI Themes, Social
• Social Sharing
OSCON 2016 – Swift
Growth in Swift Popularity
10
2014 2015
OSCON 2016 – Swift
Surging Popularity
within 6 months compared to other popular language
11
OSCON 2016 – Swift
New Client-side Development Community
12
Hybrid / Web App Development
NodeJS Attracted Web-based
Developers to the Cloud
Swift App Development
Swift on the Server can attract
Swift-based Developers
>11 Million Apple
Developers
~100 Apple/IBM Enterprise
Solutions and Assets
OSCON 2016 – Swift
Lessons to be learned from NodeJS Timeline
V8 Release
(2008)
+ libuv (concurency)
+ foundation
= NodeJS
(2009)
+ npm
(2009-2011)
Initial Popularity
(2012-2013)
Mainstream
Usage
(2014-2015)
Swift Release
(Late 2015)
+ libdispatch (concurrency)
+ Foundation
+ Web Foundation (Kitura)
= ??
(2016)
+ swift pkg mgr
+ catalog
(? 2016)
Package Growth
(2012)
Package Growth
(2016-2017)
Mainstream
Usage
(??)
+ Express: beta1.0
(Web Framework)
(2009-2010)
+ Kitura: alpha1.0
(Web Framework)
(2016-?)
Initial Popularity
(??)
Swift.org Contributions
Sandbox
OSCON 2016 – Swift
Swift.org Contributions
Mailing lists (https://swift.org/community/#mailing-lists)
Very active community
IBM’s involvement in bringing Swift to the Cloud
• Core Libraries
• Foundation
• Libdispatch
• Motivating Server Projects
• Kitura Web Framework
• Web Foundation Libraries
• OpenWhisk support of Swift
OSCON 2016 – Swift
Status Quo
Still early days
• Language evolution (1.0  2.0  3.0  4.0) currently at 2.2  3.0
New (Very early):
• Swift Package Manager:
• One of the key developers is Max Howell (creator of Homebrew on Mac)
New on Linux (Still in progress)
• Libdispatch (Concurrency)
• Foundation (New for non-Apple platforms)
15
OSCON 2016 – Swift
Apple Client Deployment Server/Cloud Deployment
Application-Specific Cloud ServicesClient Facing App
Beyond Swift.org: Bringing Swift to the Server
• Drive towards consistent Swift developer experience across Client & Server
• Building / Investing in Core Swift Libraries (Foundation & Libdispatch)
• Motivated/Prioritized through open source projects (Kitura & OpenWhisk)
• Deployment options across open source technology (Docker, Cloud Foundry, Vagrant)
Foundation
Swift
Swift Standard Library
Core Foundation
DispatchPWQ
Clibs
GLibc
Foundation
Swift
Swift Standard Library
Core Foundation
Dispatch
Darwin
Clibs
Client-specific Libraries App Libraries Server-specific LibrariesApp Libraries
Driving
Towards
Consistent
Runtime
across
Clients/Servers
OpenWhisk &
Kitura-based
Server-side
Environments
(Built with
Foundation &
Libdispatch)
OSCON 2016 – Swift
Kitura Web Framework
What is it?
New, modular, package-based web framework written in
Swift
Why is this cool?
Empower a new generation of native mobile developers to
write and deploy code into the Cloud.
Developer Benefits ?
Delivers core technologies needed to stand up enterprise
apps on the server
Enables developers to create a web application in Swift and
deploy these servers on Linux and the Cloud.
http://github.com/ibm-swift/kitura 17
OSCON 2016 – Swift
myFirstProject
├── Package.swift
├── Sources
│ └── main.swift
└── Tests
└── empty
mkdir myFirstProject
2. Next initialize this project as a new Swift package project
Develop a Kitura Web Application in Swift
1. First we create a new project directory
cd myFirstProject
swift build --init
Now your directory structure under myFirstProject should look like this:
OSCON 2016 – Swift
import Kitura
import KituraNet
import KituraSys
import SwiftyJSON
import PackageDescription
let package = Package(
name: "myFirstProject",
dependencies: [
.Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 13) ]
)
4. Import the modules in your code (Sources/main.swift):
Develop a Kitura Web Application in Swift
3. Now we add Kitura as a dependency for your project (Package.swift):
OSCON 2016 – Swift
let server = HTTPServer.listen(port: 8090, delegate: router)
Server.run()
let router = Router()
router.get("/hello") { request, response, next in
response.status(.OK).send("<h1>Hello, World!</h1>")
next()
}
7. Create and start a HTTPServer:
Develop a Kitura Web Application in Swift
5. Add a router and a path:
router.get("/hello.json") { request, response, next in
response.status(.OK).send(json: JSON(["Hello": "World!"]))
next()
}
6. Add a JSON data route
OSCON 2016 – Swift
import Kitura
import KituraNet
import KituraSys
import SwiftyJSON
let router = Router()
router.get("/hello") { request, response, next in
response.status(.OK).send("<h1>Hello, World!</h1>")
next()
}
router.get("/hello.json") { request, response, next in
response.status(.OK).send(json: JSON(["Hello": "World!"]))
next()
}
let server = HTTPServer.listen(port: 8090, delegate: router)
Server.run()
Develop a Kitura Web Application in Swift
8. Sources/main.swift file should now look like this:
OSCON 2016 – Swift
Linux: swift build -Xcc –fblocks
Mac OS X: swift build -Xcc -fblocks -Xswiftc -I/usr/local/include -Xlinker -L/usr/local/lib
Develop a Kitura Web Application in Swift
9. Compile your application:
.build/debug/myFirstProject
10. Run your web application:
11. Open your browser:
http://localhost:8090/hellohttp://localhost:8090/ http://localhost:8090/hello.json
OSCON 2016 – Swift
Application Data: Open Technology
Today, developers chose their cloud data technology based on the
demands of their application. IBM is happy to offer a wide range of open
technologies in managed offerings: Cloudant, Redis, MongoDB, Postgres,
ElasticSearch, RethinkDB, and more
OSCON 2016 – Swift 24
Package (P)
Action f(x)
Trigger (T)
Rule (R)
R = T  f(x)
Namespace
f(x)
Application Events: OpenWhisk Overview
High-level
Architecture
Triggers: A class of events emitted by
event sources.
Actions: Encapsulate the actual code
to be executed which support multiple
language bindings. Actions invoke any
part of an open ecosystem.
Rules: An association between a
trigger and an action.
Packages: Describe external services
in a uniform manner.
Combined these allow developers to
compose solutions using modern
abstraction and chaining which can be
created, accessed, updated and
deleted via the CLI
OSCON 2016 – Swift
OpenWhisk: How does it work?
OpenWhisk
Swift Docker …
Incoming HTTP request
Browser
Mobile App
Web App
Variety of
languages
Event Providers
Cloudant
Git
Weather
…
…
Trigger execution of
associated OpenWhisk
action
JS
OSCON 2016 – Swift
Application Events: OpenWhisk Resources
https://new-console.ng.bluemix.net/openwhisk
https://github.com/openwhisk
OSCON 2016 – Swift
Application Integration: Swift Packages
• Swift.org introduced the Swift Package Manager
• Lack of standardization on packages creates a bit of package hell
• Welcome addition but still early days
• Growing content seen in Github
• Catalog to help with sharing and discovery
• Client and Server side packages
• Building upon lessons learned in other package managers
OSCON 2016 – Swift
Application Integration: Swift Package Catalog
https://swiftpkgs.ng.bluemix.net/
OSCON 2016 – Swift
Xcode Developer
Experience
Swift on the client
Build and
Debug
Applications
IBM Swift Sandbox
Collaborative
Code as
Questions/An
swers
Provision 3rd Party Client-
side Registered Swift
Packages
IBM Cloud Tool
(prototype)
Provision IBM Cloud
Service Packages and
Credentials
Swift
Packages
Swift on the server
Docker
Whisk
CloudFoundry
Sandbox
Developer Experience
29
OSCON 2016 – Swift
Sample Applications: BluePic
BluePic is a photo sharing app that allows you to take photos, upload
them and share them with a community. The BluePic community will be
made up of all the users that run an instance of your created app.
https://github.com/IBM-Swift/Kitura-BluePic
OSCON 2016 – Swift
Sample Applications: TodoList
A shared example to showcase backend tech stacks
http://todobackend.com/
An example using Kitura to develop a Todo-Backend
https://github.com/IBM-Swift/Kitura-TodoList
OSCON 2016 – Swift
Swift on the IBM Cloud
32
OSCON 2016 – Swift
Swift@IBM - Developer Resources
https://developer.ibm.com/swift/
The Swift@IBM devCenter
Join IBM Swift Engineering and
leverage the latest resources
33
OSCON 2016 – Swift
Technical Blog Threads on Swift@IBM
Swift (General)
• Why I’m Excited about Swift (12/3)
• Running Swift within Docker (12/15)
• Introducing the (beta) IBM Watson iOS SDK! (12/18)
Swift Sandbox
• Introducing Swift Sandbox (12/3)
• Hello Swift! IBM Swift Sandbox Day 1 Wrapup (12/5)
• #HourofCode: Learn Swift in three easy steps today! (12/8)
• Introduction to Swift Tutorial using the IBM Swift Sandbox (12/8)
• What’s new in the IBM Swift Sandbox v0.3 (12/21)
• Exploring Swift on Linux (12/28)
• What’s new in the IBM Swift Sandbox v0.4 (1/20)
https://developer.ibm.com/swift/blogs
Swift (General)
• Swift on POWER Linux (2/1)
• Seven Swift Snares & How to Avoid Them (1/27)
Interconnect 2016
• Build End-to-End Cloud Apps using Swift with Kitura (2/21)
• Introducing the Swift Package Catalog (2/21)
• Talking about Swift Concurrency on Linux (2/21)
• Explore the IBM Swift Sandbox 1-2-3 (2/21)
• Using the Cloud Foundry Buildpack for Swift on Bluemix (2/21)
• 10 Steps To Running a Swift App in an IBM Container (2/21)
• Build End-to-End Cloud Apps using Swift with Kitura (2/21)
Drumbeat of Blogs/Announcements from IBM Swift Engineering Community
34
OSCON 2016 – Swift
Summary
Deployment Options
Swift.org Projects Community Packages
Server Projects
Foundation, libdispatch, clang,
llvm, swift-package-manager
MongoDB, Redis, CouchDB,
Postgresql, Elasticsearch, MQ
Open Source OverviewDeveloper Resources
Swift Sandbox
Package Catalog
And many more…
OSCON 2016 – Swift 36
Innovators &
Early
Adopters
Wanted
Get involved now at
swift.org
&
developer.ibm.com/swift
Thank you,
@pbohrer
OSCON 2016 – Swift 37
Thank you, @pbohrer

More Related Content

What's hot

Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaShekhar Gulati
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSAmazon Web Services
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShiftShekhar Gulati
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAnimesh Singh
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...Animesh Singh
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoiceIsaac Christoffersen
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDBplarsen67
 
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)VMware Tanzu
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and morecornelia davis
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixIBM
 
Using the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event InspectionUsing the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event InspectionYu-Lun Chen
 
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatContainers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatAmazon Web Services
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationAlex Vranceanu
 
Open Stack Cloud Services
Open Stack Cloud ServicesOpen Stack Cloud Services
Open Stack Cloud ServicesSaurabh Gupta
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Joshua McKenty
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerSakari Hoisko
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics sbbabu
 

What's hot (20)

Intro - Cloud Native
Intro - Cloud NativeIntro - Cloud Native
Intro - Cloud Native
 
Developing Great Apps with Apache Cordova
Developing Great Apps with Apache CordovaDeveloping Great Apps with Apache Cordova
Developing Great Apps with Apache Cordova
 
Building Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWSBuilding Microservices with the 12 Factor App Pattern on AWS
Building Microservices with the 12 Factor App Pattern on AWS
 
Working effectively with OpenShift
Working effectively with OpenShiftWorking effectively with OpenShift
Working effectively with OpenShift
 
Automated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStackAutomated Lifecycle Management - CloudFoundry on OpenStack
Automated Lifecycle Management - CloudFoundry on OpenStack
 
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
How to build a Distributed Serverless Polyglot Microservices IoT Platform us...
 
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of ChoicePaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
PaaS Anywhere - Deploying an OpenShift PaaS into your Cloud Provider of Choice
 
KarthikSNOW_CV
KarthikSNOW_CVKarthikSNOW_CV
KarthikSNOW_CV
 
Open shift 2.x and MongoDB
Open shift 2.x and MongoDBOpen shift 2.x and MongoDB
Open shift 2.x and MongoDB
 
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
Part 3: Enabling Continuous Delivery (Pivotal Cloud Platform Roadshow)
 
FICO Open Shift presentation
FICO Open Shift presentationFICO Open Shift presentation
FICO Open Shift presentation
 
Cloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and moreCloud Foundry Diego, Lattice, Docker and more
Cloud Foundry Diego, Lattice, Docker and more
 
Docker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & BluemixDocker, Cloud Foundry, Bosh & Bluemix
Docker, Cloud Foundry, Bosh & Bluemix
 
Using the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event InspectionUsing the SDACK Architecture on Security Event Inspection
Using the SDACK Architecture on Security Event Inspection
 
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red HatContainers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
Containers Anywhere with OpenShift by Red Hat - Session Sponsored by Red Hat
 
Docker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - PresentationDocker Birthday #5 Meetup Cluj - Presentation
Docker Birthday #5 Meetup Cluj - Presentation
 
Open Stack Cloud Services
Open Stack Cloud ServicesOpen Stack Cloud Services
Open Stack Cloud Services
 
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015Open stack + Cloud Foundry: Palo Alto Meetup February 2015
Open stack + Cloud Foundry: Palo Alto Meetup February 2015
 
Tampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday DockerTampere Docker meetup - Happy 5th Birthday Docker
Tampere Docker meetup - Happy 5th Birthday Docker
 
DevOps and BigData Analytics
DevOps and BigData Analytics DevOps and BigData Analytics
DevOps and BigData Analytics
 

Viewers also liked

Фестиваль ТиНАО, 19 сентября 2015
Фестиваль ТиНАО, 19 сентября 2015Фестиваль ТиНАО, 19 сентября 2015
Фестиваль ТиНАО, 19 сентября 2015Мария Малунова
 
A comparison of two solar radiation models using artificial neural networks a...
A comparison of two solar radiation models using artificial neural networks a...A comparison of two solar radiation models using artificial neural networks a...
A comparison of two solar radiation models using artificial neural networks a...mehmet şahin
 
DIPLOMA_LIS_ESADE_201510
DIPLOMA_LIS_ESADE_201510DIPLOMA_LIS_ESADE_201510
DIPLOMA_LIS_ESADE_201510laurentsamedi
 
Estimation of the vapour pressure deficit using noaa avhrr data
Estimation of the vapour pressure deficit using noaa avhrr dataEstimation of the vapour pressure deficit using noaa avhrr data
Estimation of the vapour pressure deficit using noaa avhrr datamehmet şahin
 
Precipitable water modelling using artificial neural
Precipitable water modelling using artificial neuralPrecipitable water modelling using artificial neural
Precipitable water modelling using artificial neuralmehmet şahin
 
High performance extreme learning machines a complete toolbox for big data a...
High performance extreme learning machines  a complete toolbox for big data a...High performance extreme learning machines  a complete toolbox for big data a...
High performance extreme learning machines a complete toolbox for big data a...redpel dot com
 
Poem some sort of truth
Poem some sort of truthPoem some sort of truth
Poem some sort of truthBiju Joux
 
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/Fuse
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/FuseHochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/Fuse
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/FuseJens Becker
 
Making things electronics
Making things electronicsMaking things electronics
Making things electronicsasanteisaac
 

Viewers also liked (14)

Фестиваль ТиНАО, 19 сентября 2015
Фестиваль ТиНАО, 19 сентября 2015Фестиваль ТиНАО, 19 сентября 2015
Фестиваль ТиНАО, 19 сентября 2015
 
Coastal creations
Coastal creationsCoastal creations
Coastal creations
 
A comparison of two solar radiation models using artificial neural networks a...
A comparison of two solar radiation models using artificial neural networks a...A comparison of two solar radiation models using artificial neural networks a...
A comparison of two solar radiation models using artificial neural networks a...
 
DIPLOMA_LIS_ESADE_201510
DIPLOMA_LIS_ESADE_201510DIPLOMA_LIS_ESADE_201510
DIPLOMA_LIS_ESADE_201510
 
Unificazione di Narmer
Unificazione di NarmerUnificazione di Narmer
Unificazione di Narmer
 
эссе по статье н.е.вераксы
эссе по статье н.е.вераксыэссе по статье н.е.вераксы
эссе по статье н.е.вераксы
 
Тезисы
ТезисыТезисы
Тезисы
 
Estimation of the vapour pressure deficit using noaa avhrr data
Estimation of the vapour pressure deficit using noaa avhrr dataEstimation of the vapour pressure deficit using noaa avhrr data
Estimation of the vapour pressure deficit using noaa avhrr data
 
Thin Client for SME's
Thin Client for SME'sThin Client for SME's
Thin Client for SME's
 
Precipitable water modelling using artificial neural
Precipitable water modelling using artificial neuralPrecipitable water modelling using artificial neural
Precipitable water modelling using artificial neural
 
High performance extreme learning machines a complete toolbox for big data a...
High performance extreme learning machines  a complete toolbox for big data a...High performance extreme learning machines  a complete toolbox for big data a...
High performance extreme learning machines a complete toolbox for big data a...
 
Poem some sort of truth
Poem some sort of truthPoem some sort of truth
Poem some sort of truth
 
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/Fuse
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/FuseHochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/Fuse
Hochschule Darmstadt: NZSE/ENA Gastvortrag Xamarin/Fuse
 
Making things electronics
Making things electronicsMaking things electronics
Making things electronics
 

Similar to Mobile, Open Source, and the Drive to the Cloud

Swift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudSwift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudDev_Events
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018Krishna-Kumar
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...OpenWhisk
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentDr. Wilfred Lin (Ph.D.)
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)湯米吳 Tommy Wu
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)Folio3 Software
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)Geekstone
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentationvijayrvr
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Trackvijayrvr
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Marc Dutoo
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014Christopher Ferris
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfI-Verve Inc
 
Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529VMUG IT
 
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud ComputingLinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud ComputingMark Hinkle
 
Serverless APIs with Apache OpenWhisk
Serverless APIs with Apache OpenWhiskServerless APIs with Apache OpenWhisk
Serverless APIs with Apache OpenWhiskDaniel Krook
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSDaniel Krook
 

Similar to Mobile, Open Source, and the Drive to the Cloud (20)

Swift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloudSwift at IBM: Mobile, open source and the drive to the cloud
Swift at IBM: Mobile, open source and the drive to the cloud
 
CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018CNCF Introduction - Feb 2018
CNCF Introduction - Feb 2018
 
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
IBM Bluemix OpenWhisk: Serverless Conference 2016, London, UK: The Future of ...
 
Montreal Cloud Computing Meetup - July 19
Montreal Cloud Computing Meetup - July 19Montreal Cloud Computing Meetup - July 19
Montreal Cloud Computing Meetup - July 19
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)Cloud development technology sharing (BlueMix premier)
Cloud development technology sharing (BlueMix premier)
 
OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)OWIN (Open Web Interface for .NET)
OWIN (Open Web Interface for .NET)
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
Vijay Mix Presentation
Vijay Mix PresentationVijay Mix Presentation
Vijay Mix Presentation
 
Teched India Vijay Interop Track
Teched India Vijay Interop TrackTeched India Vijay Interop Track
Teched India Vijay Interop Track
 
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, SmileOCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
OCCIware presentation at EclipseDay in Lyon, November 2017, by Marc Dutoo, Smile
 
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
Model and pilot all cloud layers with OCCIware - Eclipse Day Lyon 2017
 
IBM Open Cloud Update XCITE Fall 2014
IBM Open Cloud Update   XCITE Fall 2014IBM Open Cloud Update   XCITE Fall 2014
IBM Open Cloud Update XCITE Fall 2014
 
Cloud Foundry May 1 2014
Cloud Foundry May 1 2014Cloud Foundry May 1 2014
Cloud Foundry May 1 2014
 
Built Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdfBuilt Cross-Platform Application with .NET Core Development.pdf
Built Cross-Platform Application with .NET Core Development.pdf
 
Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529Cloud Native Application @ VMUG.IT 20150529
Cloud Native Application @ VMUG.IT 20150529
 
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud ComputingLinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
LinuxFest NW 2013: Hitchhiker's Guide to Open Source Cloud Computing
 
Serverless APIs with Apache OpenWhisk
Serverless APIs with Apache OpenWhiskServerless APIs with Apache OpenWhisk
Serverless APIs with Apache OpenWhisk
 
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaSOpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
OpenStack and Cloud Foundry - Pair the leading open source IaaS and PaaS
 

More from Dev_Events

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesDev_Events
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesDev_Events
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...Dev_Events
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger LabDev_Events
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerDev_Events
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Dev_Events
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeDev_Events
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewDev_Events
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything! Dev_Events
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server Dev_Events
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Dev_Events
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Dev_Events
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Dev_Events
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without ServersDev_Events
 
The App Evolution
The App EvolutionThe App Evolution
The App EvolutionDev_Events
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Dev_Events
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixDev_Events
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture Dev_Events
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsDev_Events
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.jsDev_Events
 

More from Dev_Events (20)

Eclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimesEclipse OMR: a modern, open-source toolkit for building language runtimes
Eclipse OMR: a modern, open-source toolkit for building language runtimes
 
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java MicroservicesEclipse MicroProfile: Accelerating the adoption of Java Microservices
Eclipse MicroProfile: Accelerating the adoption of Java Microservices
 
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
From Science Fiction to Science Fact: How AI Will Change Our Approach to Buil...
 
Blockchain Hyperledger Lab
Blockchain Hyperledger LabBlockchain Hyperledger Lab
Blockchain Hyperledger Lab
 
Introduction to Blockchain and Hyperledger
Introduction to Blockchain and HyperledgerIntroduction to Blockchain and Hyperledger
Introduction to Blockchain and Hyperledger
 
Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8Using GPUs to Achieve Massive Parallelism in Java 8
Using GPUs to Achieve Massive Parallelism in Java 8
 
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse ConciergeLean and Easy IoT Applications with OSGi and Eclipse Concierge
Lean and Easy IoT Applications with OSGi and Eclipse Concierge
 
Eclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s ViewEclipse JDT Embraces Java 9 – An Insider’s View
Eclipse JDT Embraces Java 9 – An Insider’s View
 
Node.js – ask us anything!
Node.js – ask us anything! Node.js – ask us anything!
Node.js – ask us anything!
 
Swift on the Server
Swift on the Server Swift on the Server
Swift on the Server
 
Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed? Being serverless and Swift... Is that allowed?
Being serverless and Swift... Is that allowed?
 
Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...Secrets of building a debuggable runtime: Learn how language implementors sol...
Secrets of building a debuggable runtime: Learn how language implementors sol...
 
Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...Tools in Action: Transforming everyday objects with the power of deeplearning...
Tools in Action: Transforming everyday objects with the power of deeplearning...
 
Microservices without Servers
Microservices without ServersMicroservices without Servers
Microservices without Servers
 
The App Evolution
The App EvolutionThe App Evolution
The App Evolution
 
Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices Building Next Generation Applications and Microservices
Building Next Generation Applications and Microservices
 
Create and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and BluemixCreate and Manage APIs with API Connect, Swagger and Bluemix
Create and Manage APIs with API Connect, Swagger and Bluemix
 
OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture OpenWhisk - Serverless Architecture
OpenWhisk - Serverless Architecture
 
Add Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.jsAdd Custom Model and ORM to Node.js
Add Custom Model and ORM to Node.js
 
Adding User Management to Node.js
Adding User Management to Node.jsAdding User Management to Node.js
Adding User Management to Node.js
 

Recently uploaded

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfNeo4j
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterMydbops
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersNicole Novielli
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditSkynet Technologies
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesKari Kakkonen
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Scott Andery
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxLoriGlavin3
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesThousandEyes
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 

Recently uploaded (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Connecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdfConnecting the Dots for Information Discovery.pdf
Connecting the Dots for Information Discovery.pdf
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Scale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL RouterScale your database traffic with Read & Write split using MySQL Router
Scale your database traffic with Read & Write split using MySQL Router
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
A Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software DevelopersA Journey Into the Emotions of Software Developers
A Journey Into the Emotions of Software Developers
 
Manual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance AuditManual 508 Accessibility Compliance Audit
Manual 508 Accessibility Compliance Audit
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Testing tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examplesTesting tools and AI - ideas what to try with some tool examples
Testing tools and AI - ideas what to try with some tool examples
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
Enhancing User Experience - Exploring the Latest Features of Tallyman Axis Lo...
 
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptxUse of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
Use of FIDO in the Payments and Identity Landscape: FIDO Paris Seminar.pptx
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyesHow to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
How to Effectively Monitor SD-WAN and SASE Environments with ThousandEyes
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 

Mobile, Open Source, and the Drive to the Cloud

  • 1. OSCON 2016 – Swift Mobile, open source, and the drive to the cloud Patrick Bohrer IBM Cloud @pbohrer
  • 2. OSCON 2016 – Swift Agenda • Why: • Enabling Modern App Design Patterns • What: • Logic, Data, Events & Integration powered by Open Source • How: • Developer Experience & Tools • Get Involved: • Sample End-to-end Applications • Resources & Links 2
  • 3. OSCON 2016 – Swift Modern Application Design: Tiers 3 Application-specific Backend Other Cloud Services On-prem Services Experiences being built by this community are dramatically changing the way we live and work New Experiences User-facing Client Apps Things / Sensors End Users
  • 4. OSCON 2016 – Swift Modern Application Design: Tier Attributes 4 Application-specific Backend Other Cloud Services On-prem Services End Users User-facing Client Apps Role: User Interactions & Remote Sensing Application State: User & View Specific State, Caching of eventually consistent state Usage: Sometimes on, Driven by Users and Events Resources: Constrained CPU, Mem, Network BW Role: Integration Service Composition, Background Monitoring/Activity, Event/Traffic Routing, State synchronization across clients and things Application State: Global Application State Usage: Always-on, Always Connected Resources: Unlimited CPU, Mem, Network BW
  • 5. OSCON 2016 – Swift Modern Application Design: Tier Attributes 5 Application-specific Backend Other Cloud Services On-prem Services End Users User-facing Client Apps Developer Experience • Tight Coupling/Dependency between Client Apps and Application Backend • Need ability to deploy the right functionality to the proper tier to deliver world class experience • Successful experience reached through fast iterations
  • 6. OSCON 2016 – Swift Modern Application Design: Application Constructs 6 Application-specific Backend Other Cloud Services On-prem Services Logic: Client and Server-side Swift Data: Cloudant, MongoDB, Redis, ElasticSearch, PostgresQL, etc Events: OpenWhisk Integration: Open Github Packages User-facing Client Apps Developer Experience End Users
  • 7. OSCON 2016 – Swift Application Logic: Swift (Client and Server) • Swift Background • What is included in Swift.org ? • Trends • Bringing Swift to the Server • Core contributions • Motivating Server Projects (Kitura & more)
  • 8. OSCON 2016 – Swift Swift.org: What is included? • Open Sourced Dec 3, 2015 • Swift Language • Core libraries: • XCTest • Libdispatch (GCD) • Foundation for non-Apple hosts (New) • LLVM Compiler & Debugger (swift-lldb, swift-llvm, swift-clang) • Swift Package Manager (New)
  • 9. OSCON 2016 – Swift IBM Swift Sandbox The IBM Swift Sandbox Experiment with Swift on the server, share your code and collaborate with your peers http://swiftlang.ng.bluemix.net 9 Features • One click access to Swift on Linux (multiple versions) • Mobile UI & Auto Saving Draft • Code Snapshots & Sharing, UI Themes, Social • Social Sharing
  • 10. OSCON 2016 – Swift Growth in Swift Popularity 10 2014 2015
  • 11. OSCON 2016 – Swift Surging Popularity within 6 months compared to other popular language 11
  • 12. OSCON 2016 – Swift New Client-side Development Community 12 Hybrid / Web App Development NodeJS Attracted Web-based Developers to the Cloud Swift App Development Swift on the Server can attract Swift-based Developers >11 Million Apple Developers ~100 Apple/IBM Enterprise Solutions and Assets
  • 13. OSCON 2016 – Swift Lessons to be learned from NodeJS Timeline V8 Release (2008) + libuv (concurency) + foundation = NodeJS (2009) + npm (2009-2011) Initial Popularity (2012-2013) Mainstream Usage (2014-2015) Swift Release (Late 2015) + libdispatch (concurrency) + Foundation + Web Foundation (Kitura) = ?? (2016) + swift pkg mgr + catalog (? 2016) Package Growth (2012) Package Growth (2016-2017) Mainstream Usage (??) + Express: beta1.0 (Web Framework) (2009-2010) + Kitura: alpha1.0 (Web Framework) (2016-?) Initial Popularity (??) Swift.org Contributions Sandbox
  • 14. OSCON 2016 – Swift Swift.org Contributions Mailing lists (https://swift.org/community/#mailing-lists) Very active community IBM’s involvement in bringing Swift to the Cloud • Core Libraries • Foundation • Libdispatch • Motivating Server Projects • Kitura Web Framework • Web Foundation Libraries • OpenWhisk support of Swift
  • 15. OSCON 2016 – Swift Status Quo Still early days • Language evolution (1.0  2.0  3.0  4.0) currently at 2.2  3.0 New (Very early): • Swift Package Manager: • One of the key developers is Max Howell (creator of Homebrew on Mac) New on Linux (Still in progress) • Libdispatch (Concurrency) • Foundation (New for non-Apple platforms) 15
  • 16. OSCON 2016 – Swift Apple Client Deployment Server/Cloud Deployment Application-Specific Cloud ServicesClient Facing App Beyond Swift.org: Bringing Swift to the Server • Drive towards consistent Swift developer experience across Client & Server • Building / Investing in Core Swift Libraries (Foundation & Libdispatch) • Motivated/Prioritized through open source projects (Kitura & OpenWhisk) • Deployment options across open source technology (Docker, Cloud Foundry, Vagrant) Foundation Swift Swift Standard Library Core Foundation DispatchPWQ Clibs GLibc Foundation Swift Swift Standard Library Core Foundation Dispatch Darwin Clibs Client-specific Libraries App Libraries Server-specific LibrariesApp Libraries Driving Towards Consistent Runtime across Clients/Servers OpenWhisk & Kitura-based Server-side Environments (Built with Foundation & Libdispatch)
  • 17. OSCON 2016 – Swift Kitura Web Framework What is it? New, modular, package-based web framework written in Swift Why is this cool? Empower a new generation of native mobile developers to write and deploy code into the Cloud. Developer Benefits ? Delivers core technologies needed to stand up enterprise apps on the server Enables developers to create a web application in Swift and deploy these servers on Linux and the Cloud. http://github.com/ibm-swift/kitura 17
  • 18. OSCON 2016 – Swift myFirstProject ├── Package.swift ├── Sources │ └── main.swift └── Tests └── empty mkdir myFirstProject 2. Next initialize this project as a new Swift package project Develop a Kitura Web Application in Swift 1. First we create a new project directory cd myFirstProject swift build --init Now your directory structure under myFirstProject should look like this:
  • 19. OSCON 2016 – Swift import Kitura import KituraNet import KituraSys import SwiftyJSON import PackageDescription let package = Package( name: "myFirstProject", dependencies: [ .Package(url: "https://github.com/IBM-Swift/Kitura.git", majorVersion: 0, minor: 13) ] ) 4. Import the modules in your code (Sources/main.swift): Develop a Kitura Web Application in Swift 3. Now we add Kitura as a dependency for your project (Package.swift):
  • 20. OSCON 2016 – Swift let server = HTTPServer.listen(port: 8090, delegate: router) Server.run() let router = Router() router.get("/hello") { request, response, next in response.status(.OK).send("<h1>Hello, World!</h1>") next() } 7. Create and start a HTTPServer: Develop a Kitura Web Application in Swift 5. Add a router and a path: router.get("/hello.json") { request, response, next in response.status(.OK).send(json: JSON(["Hello": "World!"])) next() } 6. Add a JSON data route
  • 21. OSCON 2016 – Swift import Kitura import KituraNet import KituraSys import SwiftyJSON let router = Router() router.get("/hello") { request, response, next in response.status(.OK).send("<h1>Hello, World!</h1>") next() } router.get("/hello.json") { request, response, next in response.status(.OK).send(json: JSON(["Hello": "World!"])) next() } let server = HTTPServer.listen(port: 8090, delegate: router) Server.run() Develop a Kitura Web Application in Swift 8. Sources/main.swift file should now look like this:
  • 22. OSCON 2016 – Swift Linux: swift build -Xcc –fblocks Mac OS X: swift build -Xcc -fblocks -Xswiftc -I/usr/local/include -Xlinker -L/usr/local/lib Develop a Kitura Web Application in Swift 9. Compile your application: .build/debug/myFirstProject 10. Run your web application: 11. Open your browser: http://localhost:8090/hellohttp://localhost:8090/ http://localhost:8090/hello.json
  • 23. OSCON 2016 – Swift Application Data: Open Technology Today, developers chose their cloud data technology based on the demands of their application. IBM is happy to offer a wide range of open technologies in managed offerings: Cloudant, Redis, MongoDB, Postgres, ElasticSearch, RethinkDB, and more
  • 24. OSCON 2016 – Swift 24 Package (P) Action f(x) Trigger (T) Rule (R) R = T  f(x) Namespace f(x) Application Events: OpenWhisk Overview High-level Architecture Triggers: A class of events emitted by event sources. Actions: Encapsulate the actual code to be executed which support multiple language bindings. Actions invoke any part of an open ecosystem. Rules: An association between a trigger and an action. Packages: Describe external services in a uniform manner. Combined these allow developers to compose solutions using modern abstraction and chaining which can be created, accessed, updated and deleted via the CLI
  • 25. OSCON 2016 – Swift OpenWhisk: How does it work? OpenWhisk Swift Docker … Incoming HTTP request Browser Mobile App Web App Variety of languages Event Providers Cloudant Git Weather … … Trigger execution of associated OpenWhisk action JS
  • 26. OSCON 2016 – Swift Application Events: OpenWhisk Resources https://new-console.ng.bluemix.net/openwhisk https://github.com/openwhisk
  • 27. OSCON 2016 – Swift Application Integration: Swift Packages • Swift.org introduced the Swift Package Manager • Lack of standardization on packages creates a bit of package hell • Welcome addition but still early days • Growing content seen in Github • Catalog to help with sharing and discovery • Client and Server side packages • Building upon lessons learned in other package managers
  • 28. OSCON 2016 – Swift Application Integration: Swift Package Catalog https://swiftpkgs.ng.bluemix.net/
  • 29. OSCON 2016 – Swift Xcode Developer Experience Swift on the client Build and Debug Applications IBM Swift Sandbox Collaborative Code as Questions/An swers Provision 3rd Party Client- side Registered Swift Packages IBM Cloud Tool (prototype) Provision IBM Cloud Service Packages and Credentials Swift Packages Swift on the server Docker Whisk CloudFoundry Sandbox Developer Experience 29
  • 30. OSCON 2016 – Swift Sample Applications: BluePic BluePic is a photo sharing app that allows you to take photos, upload them and share them with a community. The BluePic community will be made up of all the users that run an instance of your created app. https://github.com/IBM-Swift/Kitura-BluePic
  • 31. OSCON 2016 – Swift Sample Applications: TodoList A shared example to showcase backend tech stacks http://todobackend.com/ An example using Kitura to develop a Todo-Backend https://github.com/IBM-Swift/Kitura-TodoList
  • 32. OSCON 2016 – Swift Swift on the IBM Cloud 32
  • 33. OSCON 2016 – Swift Swift@IBM - Developer Resources https://developer.ibm.com/swift/ The Swift@IBM devCenter Join IBM Swift Engineering and leverage the latest resources 33
  • 34. OSCON 2016 – Swift Technical Blog Threads on Swift@IBM Swift (General) • Why I’m Excited about Swift (12/3) • Running Swift within Docker (12/15) • Introducing the (beta) IBM Watson iOS SDK! (12/18) Swift Sandbox • Introducing Swift Sandbox (12/3) • Hello Swift! IBM Swift Sandbox Day 1 Wrapup (12/5) • #HourofCode: Learn Swift in three easy steps today! (12/8) • Introduction to Swift Tutorial using the IBM Swift Sandbox (12/8) • What’s new in the IBM Swift Sandbox v0.3 (12/21) • Exploring Swift on Linux (12/28) • What’s new in the IBM Swift Sandbox v0.4 (1/20) https://developer.ibm.com/swift/blogs Swift (General) • Swift on POWER Linux (2/1) • Seven Swift Snares & How to Avoid Them (1/27) Interconnect 2016 • Build End-to-End Cloud Apps using Swift with Kitura (2/21) • Introducing the Swift Package Catalog (2/21) • Talking about Swift Concurrency on Linux (2/21) • Explore the IBM Swift Sandbox 1-2-3 (2/21) • Using the Cloud Foundry Buildpack for Swift on Bluemix (2/21) • 10 Steps To Running a Swift App in an IBM Container (2/21) • Build End-to-End Cloud Apps using Swift with Kitura (2/21) Drumbeat of Blogs/Announcements from IBM Swift Engineering Community 34
  • 35. OSCON 2016 – Swift Summary Deployment Options Swift.org Projects Community Packages Server Projects Foundation, libdispatch, clang, llvm, swift-package-manager MongoDB, Redis, CouchDB, Postgresql, Elasticsearch, MQ Open Source OverviewDeveloper Resources Swift Sandbox Package Catalog And many more…
  • 36. OSCON 2016 – Swift 36 Innovators & Early Adopters Wanted Get involved now at swift.org & developer.ibm.com/swift Thank you, @pbohrer
  • 37. OSCON 2016 – Swift 37 Thank you, @pbohrer

Editor's Notes

  1. 0.4 = UI overhaul and mobile addition
  2. What is it ? Kitura is a new, modular, package-based web framework written in the Swift language for use in standing up a web server written in Swift on both OSX and Linux. Why is this cool ? Now that Swift is open source, a number of included projects are coming together (swift, swift package manager, libdispatch, swift foundation) that makes the development of a Swift-based web server stack both inevitable as well as incredibly valuable means to empower a new generation of native mobile developers to write and deploy code into the Cloud as well. Developer Benefits ? Once you have a new language that runs on a server, many developers want to be able to quickly and easily create a web server written in that language. The swift language and runtime does not include a web framework that can be used to easily create a web server. IBM has created this project to enable developers to create a web application in Swift and deploy these servers on Linux and the Cloud. IBM Message We are leading the development of this web framework and will work with the community to evolve this framework over time as Swift on Linux evolves. Other Details
  3. -Discuss why we have multiple imports
  4. Explain why all the additional C language dependencies -Line up the font on Swift build -
  5. IBM Confidential
  6. Simplified client/server programming model Integrated Client/Server Swift Package Management and composition IBM Cloud deployment and services provisioning Client/Server Programming Model IBM Sandbox collaborative coding and sharing