SlideShare a Scribd company logo
Khang Toh
@khangtoh
About me
• Developer, designer, thinker and entrepreneur
• Co-Founder / CTO at MogiMe Inc, San Francisco and
PicoCandy Singapore :)
My iOS
Story• Bought iPhone 1st gen in 2008. Started
playing with iphone sdk 2.0
• Developed first iOS game, smackBOTS
using UIKit !!??!!, 500K downloads in
the first month, Top100 Overall
• First PvP multiplayer iOS game, super
hackery implementation in 2009
• Partied with the Woz at WWDC2009
• Aspired to be an entrepreneur
What do you do as an
entrepreneur?
You think of ideas
You see funny cats
pics at work
Sometimes you get bored and
google for funny cats at work
Then all the sudden, you have an
awesome idea
Catstagram!
User Generated Funny Cat Pics
and Videos!
Shot using their mobile phone
camera!
Using the Catstagram app!
MVP Development 101
• Wrote server code
• Wrote iOS code
• Wrote server code
• Wrote iOS code
Problem
How to do file upload on mobile?
How to do file upload on mobile?
How to do file upload on mobile?
How to do file upload on mobile?
SUCKY SG MOBILE NETWORK
How to do RESUMABLE file
upload on mobile?
It's possible, but way too hard for a
mobile-first and cats-focus startup
• Flash?? Not possible + it sucks.
• HTML5 ?? Not great on mobile safari
• Native?? AFNetworking? HTTP?
Then you google like every developer
TUS.IO a resumable file upload
protocol on top of HTTP
What is the TUS protocol?
• Simple, open and free
• HTTP-based ( POST, HEAD, PATCH )
• Split file into chunks
• Send smaller pieces, server keeps track of
chunks / offset
What is the TUS protocol?
POST "/files" HTTP/1.1
Host: tus.example.org
Content-Length: 0
Final-Length: 100
RESPONSE:
HTTP/1.1 201 Created
Location: http://tus.example.org/files/1
What is the TUS protocol?
PATCH "/files/1" HTTP/1.1
Host: tus.example.org
Content-Length: 100
Offset: 0
[file data]
RESPONSE:
HTTP/1.1 200 Ok
What is the TUS protocol?
HEAD "/files/1" HTTP/1.1
Host: tus.example.org
RESPONSE:
HTTP/1.1 200 Ok
Offset: 70
What is the TUS protocol?
PATCH "/files/1" HTTP/1.1
Host: tus.example.org
Content-Length: 30
Offset: 70
[remaining file data]
RESPONSE:
HTTP/1.1 200 Ok
Awesome! What about the
servers and the clients?
• tusd - reference server implementation
using Go
• tus-ios-client, native objective-C client
library
• rubytus, ruby em-based server
implementation, work in progress
Use with caution
• Young protocol, 0.2.1, still changing
• New features in planning
• TUSKit - iOS client needs work, we're working
on it
• Need more support from OSS
• RFC? Not ready but is the goal for the
protocol
Probably ok for cat-focus mobile-first startups
Where to find more
info
• Official site http://tus.io
• Github: http://github.com/tus
• IRC: #tusio freenode
• Duh... It's open source
Demo
Questions?

More Related Content

PDF
Introducing Wordpress Multitenancy
Salesforce Engineering
 
PPTX
Commitmas 2015
Matthew Broberg
 
PDF
My Top 5 Favorite Gems
Jimmy Ngu
 
PDF
The New Frontend Toolchain
Bruno Abrantes
 
PDF
Get Started in Professional WordPress Design & Development
Cliff Seal
 
PPTX
The internet of $h1t
Amit Serper
 
PDF
Dark Fairytales from a Phisherman
Michele Orru
 
Introducing Wordpress Multitenancy
Salesforce Engineering
 
Commitmas 2015
Matthew Broberg
 
My Top 5 Favorite Gems
Jimmy Ngu
 
The New Frontend Toolchain
Bruno Abrantes
 
Get Started in Professional WordPress Design & Development
Cliff Seal
 
The internet of $h1t
Amit Serper
 
Dark Fairytales from a Phisherman
Michele Orru
 

What's hot (19)

PDF
On the Move, Migrations Made Simple
Jonathan Perlman
 
PPTX
How *NOT* to firmware
Amit Serper
 
PDF
Make an Instant Website with Webhooks
Anne Gentle
 
PPTX
SPDY - or maybe HTTP2.0
Andreas Bjärlestam
 
PPTX
Untangling fall2017 week1
Derek Jacoby
 
PDF
10 things you need to know about leaving shared hosting
Jonathan Perlman
 
PDF
What's new in Symfony3
Yuki MAEJIMA
 
PPTX
Dropbox Presentaiton
iamsktong
 
PPTX
Untangling spring week11
Derek Jacoby
 
PDF
WordPress Speed & Performance from Pagely's CTO
Lizzie Kardon
 
ODP
Remove web calls and scale your site like crazy !
Wim Godden
 
PDF
Testing all your code through HipChat in Docker
Mike Pavlenko
 
ODP
Making dynamic sites scale like static sites
Wim Godden
 
PDF
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
Michele Orru
 
PDF
Code fast & Break things with Jenkins & Continuous Integration
Hervé Vũ Roussel
 
PDF
apidays LIVE Singapore - The trouble with Webhooks by Phil Nash
apidays
 
ODP
HTTP Basic - PHP
Sulaeman .
 
PDF
Vagrant + Veewee : Barcampboston April 10-2011
Draco2002
 
PPTX
Intro to Perfect - LA presentation
Tim Taplin
 
On the Move, Migrations Made Simple
Jonathan Perlman
 
How *NOT* to firmware
Amit Serper
 
Make an Instant Website with Webhooks
Anne Gentle
 
SPDY - or maybe HTTP2.0
Andreas Bjärlestam
 
Untangling fall2017 week1
Derek Jacoby
 
10 things you need to know about leaving shared hosting
Jonathan Perlman
 
What's new in Symfony3
Yuki MAEJIMA
 
Dropbox Presentaiton
iamsktong
 
Untangling spring week11
Derek Jacoby
 
WordPress Speed & Performance from Pagely's CTO
Lizzie Kardon
 
Remove web calls and scale your site like crazy !
Wim Godden
 
Testing all your code through HipChat in Docker
Mike Pavlenko
 
Making dynamic sites scale like static sites
Wim Godden
 
Rooting your internals - Exploiting Internal Network Vulns via the Browser Us...
Michele Orru
 
Code fast & Break things with Jenkins & Continuous Integration
Hervé Vũ Roussel
 
apidays LIVE Singapore - The trouble with Webhooks by Phil Nash
apidays
 
HTTP Basic - PHP
Sulaeman .
 
Vagrant + Veewee : Barcampboston April 10-2011
Draco2002
 
Intro to Perfect - LA presentation
Tim Taplin
 
Ad

Similar to Tus.io presentation for iOS devscout meetup (20)

PPT
Resumable File Upload API using GridFS and TUS
khangtoh
 
PDF
The Reluctant SysAdmin : 360|iDev Austin 2010
Voxilate
 
PDF
How to create/improve OSS product and its community (revised)
SATOSHI TAGOMORI
 
PPTX
Sophia_AI_Assistant_Presentationan AI.pptx
kssvicky6
 
ODP
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
PPTX
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp
 
PDF
Bot. You said bot? Let build bot then! - Laurent Ellerbach
ITCamp
 
PDF
But we're already open source! Why would I want to bring my code to Apache?
gagravarr
 
PPTX
Appcelerator Titanium Intro
Nicholas Jansma
 
PDF
soft-shake.ch - Optimizing iOS applications
soft-shake.ch
 
PDF
Janus Workshop @ ClueCon 2020
Lorenzo Miniero
 
PPTX
How to get started in Open Source!
Pradeep Singh
 
PDF
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Hyun-woo Park
 
PDF
AmI 2017 - Python intermediate
Luigi De Russis
 
PDF
Create Your Own Chatbot with Hubot and CoffeeScript
Rob Scaduto
 
PDF
Hands On With OpenSocial and Embedded Experiences
Ryan Baxter
 
PDF
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
Jonathan Engelsma
 
PDF
Tizen 2.0 overview
Naruto TAKAHASHI
 
PPTX
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
Jan Aerts
 
Resumable File Upload API using GridFS and TUS
khangtoh
 
The Reluctant SysAdmin : 360|iDev Austin 2010
Voxilate
 
How to create/improve OSS product and its community (revised)
SATOSHI TAGOMORI
 
Sophia_AI_Assistant_Presentationan AI.pptx
kssvicky6
 
But We're Already Open Source! Why Would I Want To Bring My Code To Apache?
gagravarr
 
ITCamp 2017 - Laurent Ellerbach - Bot. You said bot? Let's build a bot then...
ITCamp
 
Bot. You said bot? Let build bot then! - Laurent Ellerbach
ITCamp
 
But we're already open source! Why would I want to bring my code to Apache?
gagravarr
 
Appcelerator Titanium Intro
Nicholas Jansma
 
soft-shake.ch - Optimizing iOS applications
soft-shake.ch
 
Janus Workshop @ ClueCon 2020
Lorenzo Miniero
 
How to get started in Open Source!
Pradeep Singh
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
Hyun-woo Park
 
AmI 2017 - Python intermediate
Luigi De Russis
 
Create Your Own Chatbot with Hubot and CoffeeScript
Rob Scaduto
 
Hands On With OpenSocial and Embedded Experiences
Ryan Baxter
 
iOS Bootcamp: learning to create awesome apps on iOS using Swift (Lecture 09)
Jonathan Engelsma
 
Tizen 2.0 overview
Naruto TAKAHASHI
 
A Kanterakis - PyPedia: a python crowdsourcing development environment for bi...
Jan Aerts
 
Ad

Recently uploaded (20)

PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PPTX
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
PDF
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
PDF
REPORT: Heating appliances market in Poland 2024
SPIUG
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
AI and Robotics for Human Well-being.pptx
JAYMIN SUTHAR
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
Using Anchore and DefectDojo to Stand Up Your DevSecOps Function
Anchore
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Presentation about Hardware and Software in Computer
snehamodhawadiya
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
The Future of Artificial Intelligence (AI)
Mukul
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
Event Presentation Google Cloud Next Extended 2025
minhtrietgect
 
Data_Analytics_vs_Data_Science_vs_BI_by_CA_Suvidha_Chaplot.pdf
CA Suvidha Chaplot
 
REPORT: Heating appliances market in Poland 2024
SPIUG
 

Tus.io presentation for iOS devscout meetup

  • 2. About me • Developer, designer, thinker and entrepreneur • Co-Founder / CTO at MogiMe Inc, San Francisco and PicoCandy Singapore :)
  • 3. My iOS Story• Bought iPhone 1st gen in 2008. Started playing with iphone sdk 2.0 • Developed first iOS game, smackBOTS using UIKit !!??!!, 500K downloads in the first month, Top100 Overall • First PvP multiplayer iOS game, super hackery implementation in 2009 • Partied with the Woz at WWDC2009 • Aspired to be an entrepreneur
  • 4. What do you do as an entrepreneur?
  • 5. You think of ideas
  • 6. You see funny cats pics at work Sometimes you get bored and google for funny cats at work
  • 7. Then all the sudden, you have an awesome idea
  • 8. Catstagram! User Generated Funny Cat Pics and Videos! Shot using their mobile phone camera! Using the Catstagram app!
  • 9. MVP Development 101 • Wrote server code • Wrote iOS code • Wrote server code • Wrote iOS code
  • 10. Problem How to do file upload on mobile?
  • 11. How to do file upload on mobile?
  • 12. How to do file upload on mobile?
  • 13. How to do file upload on mobile? SUCKY SG MOBILE NETWORK
  • 14. How to do RESUMABLE file upload on mobile?
  • 15. It's possible, but way too hard for a mobile-first and cats-focus startup • Flash?? Not possible + it sucks. • HTML5 ?? Not great on mobile safari • Native?? AFNetworking? HTTP?
  • 16. Then you google like every developer
  • 17. TUS.IO a resumable file upload protocol on top of HTTP
  • 18. What is the TUS protocol? • Simple, open and free • HTTP-based ( POST, HEAD, PATCH ) • Split file into chunks • Send smaller pieces, server keeps track of chunks / offset
  • 19. What is the TUS protocol? POST "/files" HTTP/1.1 Host: tus.example.org Content-Length: 0 Final-Length: 100 RESPONSE: HTTP/1.1 201 Created Location: http://tus.example.org/files/1
  • 20. What is the TUS protocol? PATCH "/files/1" HTTP/1.1 Host: tus.example.org Content-Length: 100 Offset: 0 [file data] RESPONSE: HTTP/1.1 200 Ok
  • 21. What is the TUS protocol? HEAD "/files/1" HTTP/1.1 Host: tus.example.org RESPONSE: HTTP/1.1 200 Ok Offset: 70
  • 22. What is the TUS protocol? PATCH "/files/1" HTTP/1.1 Host: tus.example.org Content-Length: 30 Offset: 70 [remaining file data] RESPONSE: HTTP/1.1 200 Ok
  • 23. Awesome! What about the servers and the clients? • tusd - reference server implementation using Go • tus-ios-client, native objective-C client library • rubytus, ruby em-based server implementation, work in progress
  • 24. Use with caution • Young protocol, 0.2.1, still changing • New features in planning • TUSKit - iOS client needs work, we're working on it • Need more support from OSS • RFC? Not ready but is the goal for the protocol Probably ok for cat-focus mobile-first startups
  • 25. Where to find more info • Official site http://tus.io • Github: http://github.com/tus • IRC: #tusio freenode • Duh... It's open source
  • 26. Demo