Cocoaheads Berlin
March 12th 2009
About implementing an API wrapper for a OAuth protected Web API in Objective-C for Mac and iPhone.
http://github.com/soundcloud/cocoa-api-wrapper
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioJeff Sloyer
My talk at KrankyGeek 2015 about IBM Bluemix, IBM Watson, Twilio, and WebRTC. The talk goes over how IBM Watson and Twilio Video were used in a doctor's office setting to aid in doctor's providing health care to a patient via video chat.
The presentation show some of the code from the IBM Bluemix Node.Js app that was used to drive the app.
ReproNow—Save Time Reproducing and Triaging Security BugsPriyanka Aash
Bug bounty programs are adapted by almost all companies today. While companies reap a lot of benefits, the challenge is for a security engineer to reproduce each bug, assess the validity and spend time reproducing this. As security engineers the speakers felt the pain and created ReproNow that solves this challenge. It is an open source browser extension that captures both screen and network.
Learning Objectives:
1: Learn about bug bounty process from a company standpoint and pain points.
2: See how to use an open source tool to report and validate security bugs.
3: Discover a unique approach on adding JSON (or any data) to video without breaking it.
(Source: RSA Conference USA 2018)
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
Call control is being reinvented in several exciting new ways. In this talk, we explore existing models for building voice applications using the Asterisk Dialplan, Asterisk AGI/AMI, and how new in-cloud voice APIs are reinventing the way that build, host, and scale voice applications.
such as in-cloud dialplan API with Twilio. Taking a programmer's perspective, we highlight desirable dialplan properties such as simplicity, automatic scalability, integration with existing databases and servers, and separation of business logic from telephony logic. We also explore the tradeoffs that Twilio has made to simplify the experience of building voice applications, including the concept of encapsulating the state of a voice call in a URL. We conclude with thoughts about how Asterisk could be streamlined for in-cloud dialplan APIs and the services that support them.
Intro to Continuous Integration at SoundCloudgarriguv
In the past year at SoundCloud, we've improved our CI from a single machine running our limited unit test suite to several machines running a linter, unit tests, acceptance tests and building several versions of our app including the AppStore version for every commit. This enabled us to move away from pull-requests and code reviews and use trunk based development and pairing, as well as scale the team from 3 to 7 developers.
We've stopped relying on Xcode Schemes for builds, we're using instead command line tools and compile-time parameters to automatically build internal versions of our app and distribute it internally.
In order to make our release process more reliable, the AppStore version of the app is created by re-signing an AdHoc build. This enables us to test the exact same binary that will be submitted to the AppStore.
This talk will focus on 3 areas of our continuous integration: testing, building with user defined build settings and signing apps.
BFF Pattern in Action: SoundCloud’s MicroservicesBora Tunca
At SoundCloud we managed to break away from the monolith while delivering key business features. Our journey towards a microservices architecture has not been a straightforward one. We experimented a lot to reach the set of tools and technologies that we use today. We changed how we build our applications. We introduced specific apis for our mobile and web clients. We call them BFFs (backend for the frontend). They became the central piece of SoundCloud’s architecture. We rethought how we monitor our services. We created a service registry for knowledge sharing. While making all these changes, we benefited from the learnings of our peer companies. This talk will share our learnings from this journey: what worked for us and what we moved away from.
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioJeff Sloyer
My talk at KrankyGeek 2015 about IBM Bluemix, IBM Watson, Twilio, and WebRTC. The talk goes over how IBM Watson and Twilio Video were used in a doctor's office setting to aid in doctor's providing health care to a patient via video chat.
The presentation show some of the code from the IBM Bluemix Node.Js app that was used to drive the app.
ReproNow—Save Time Reproducing and Triaging Security BugsPriyanka Aash
Bug bounty programs are adapted by almost all companies today. While companies reap a lot of benefits, the challenge is for a security engineer to reproduce each bug, assess the validity and spend time reproducing this. As security engineers the speakers felt the pain and created ReproNow that solves this challenge. It is an open source browser extension that captures both screen and network.
Learning Objectives:
1: Learn about bug bounty process from a company standpoint and pain points.
2: See how to use an open source tool to report and validate security bugs.
3: Discover a unique approach on adding JSON (or any data) to video without breaking it.
(Source: RSA Conference USA 2018)
"Reinventing the Dialplan" slides from Twilio's Astricon 2009 talkTwilio Inc
Call control is being reinvented in several exciting new ways. In this talk, we explore existing models for building voice applications using the Asterisk Dialplan, Asterisk AGI/AMI, and how new in-cloud voice APIs are reinventing the way that build, host, and scale voice applications.
such as in-cloud dialplan API with Twilio. Taking a programmer's perspective, we highlight desirable dialplan properties such as simplicity, automatic scalability, integration with existing databases and servers, and separation of business logic from telephony logic. We also explore the tradeoffs that Twilio has made to simplify the experience of building voice applications, including the concept of encapsulating the state of a voice call in a URL. We conclude with thoughts about how Asterisk could be streamlined for in-cloud dialplan APIs and the services that support them.
Intro to Continuous Integration at SoundCloudgarriguv
In the past year at SoundCloud, we've improved our CI from a single machine running our limited unit test suite to several machines running a linter, unit tests, acceptance tests and building several versions of our app including the AppStore version for every commit. This enabled us to move away from pull-requests and code reviews and use trunk based development and pairing, as well as scale the team from 3 to 7 developers.
We've stopped relying on Xcode Schemes for builds, we're using instead command line tools and compile-time parameters to automatically build internal versions of our app and distribute it internally.
In order to make our release process more reliable, the AppStore version of the app is created by re-signing an AdHoc build. This enables us to test the exact same binary that will be submitted to the AppStore.
This talk will focus on 3 areas of our continuous integration: testing, building with user defined build settings and signing apps.
BFF Pattern in Action: SoundCloud’s MicroservicesBora Tunca
At SoundCloud we managed to break away from the monolith while delivering key business features. Our journey towards a microservices architecture has not been a straightforward one. We experimented a lot to reach the set of tools and technologies that we use today. We changed how we build our applications. We introduced specific apis for our mobile and web clients. We call them BFFs (backend for the frontend). They became the central piece of SoundCloud’s architecture. We rethought how we monitor our services. We created a service registry for knowledge sharing. While making all these changes, we benefited from the learnings of our peer companies. This talk will share our learnings from this journey: what worked for us and what we moved away from.
SoundCloud is a Big Data company - its 200 million users generate over 3 terabytes of raw data every single day. Yet all this data couldn't answer some "why?" questions.
On Device Research helped SoundCloud to enrich their Big Data with user research via mobile diaries. The presentation explains the challenge, the process and some of the findings.
At SoundCloud we managed to break away from the monolith while delivering key business features. Our journey towards a microservices architecture has not been a straightforward one. We experimented a lot to reach the set of tools and technologies that we use today. We changed how we build our applications. We introduced specific apis for our mobile and web clients. We call them BFFs (backend for the frontend). They became the central piece of SoundCloud’s architecture. We rethought how we monitor our services. We created a service registry for knowledge sharing. While making all these changes, we benefited from the learnings of our peer companies. This talk will share our learnings from this journey: what worked for us and what we moved away from.
As the engineering organization at Soundcloud, we follow microservices architecture to build the software that powers our products. Since the time it is incepted, we had to revise our architecture regularly to keep up with the growing number of engineers and microservices. While our current architecture is serving us, we are always in search for improvements to meet the requirements of a growing business. This talk will give an insight into how Soundcloud is organizing its microservices to deliver a reliable service to its users and to keep its engineering teams productive in a growing organization.
Webinar - Utilizzo delle WebApi dell'Orchestrator.pdfCristina Vidu
In questo evento tratteremo l'utilizzo delle WebApi messe a disposizione da UiPath per interfacciarsi con Orchestrator.
Un focus sulla documentazione e qualche piccolo esempio di utilizzo ed integrazione.
📕 Ordine del giorno
- Come collegarsi e ottenere un token di autenticazione
- Come effettuare le chiamate di GET o POST
- Qualche integrazione utile tra API e altre applicazioni
👨💻 Flavio Martinelli, UiPath Rome Chapter Leader, Head of Automation @Nethex
👨💻 Salvatore Amato, RPA Specialist
[REPEAT 1] Managing Identity Management, Authentication, & Authorization for ...Amazon Web Services
Build a serverless microservices application demonstrating end-to-end authentication and authorization through the use of Amazon Cognito, Amazon API Gateway, AWS Lambda, and all-things AWS Identity and Access Management (IAM). You will build an end-to-end functional app with a secure identity provider showcasing user authentication patterns.
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Jazkarta, Inc.
The rise of utility computing platforms such as Amazon EC2 has made it more feasible to build turnkey hosted solutions on top of open source software. Learn how we built PondCMS, a turnkey CMS deployed to Amazon's EC2. This presentation discusses the advantages of hosting Plone sites in the elastic computing cloud and some of the challenges we faced. Watch the video from this talk at http://pycon.blip.tv/file/1949202/
Web APIs are a primary target for malicious attacks on you and your digital assets. This presentation provides some effective API security approaches such as identifying API risks in business ecosystems, quaality and safety of APIs, and the risk from connected devices aka Internet of Things
Akamai Security World Tour Stockholm May 14, 2019 by Gerd Giese
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018Amazon Web Services
DevSecOps is the premise that everyone in the software development lifecycle is responsible for security. DevSecOps aims to embed security in every part of the development process. In this workshop, participants explore taking a standard CI/CD pipeline and adding security stages to improve security posture. Learn how to use AWS CodeCommit and AWS CodePipeline to build and publish golden AMI images. Also, learn how to modify pipeline flow to add security test cases. You also have to opportunity to perform CVE analysis and code analysis using Amazon Inspector and perform observational container analysis using Amazon GuardDuty.
SoundCloud is a Big Data company - its 200 million users generate over 3 terabytes of raw data every single day. Yet all this data couldn't answer some "why?" questions.
On Device Research helped SoundCloud to enrich their Big Data with user research via mobile diaries. The presentation explains the challenge, the process and some of the findings.
At SoundCloud we managed to break away from the monolith while delivering key business features. Our journey towards a microservices architecture has not been a straightforward one. We experimented a lot to reach the set of tools and technologies that we use today. We changed how we build our applications. We introduced specific apis for our mobile and web clients. We call them BFFs (backend for the frontend). They became the central piece of SoundCloud’s architecture. We rethought how we monitor our services. We created a service registry for knowledge sharing. While making all these changes, we benefited from the learnings of our peer companies. This talk will share our learnings from this journey: what worked for us and what we moved away from.
As the engineering organization at Soundcloud, we follow microservices architecture to build the software that powers our products. Since the time it is incepted, we had to revise our architecture regularly to keep up with the growing number of engineers and microservices. While our current architecture is serving us, we are always in search for improvements to meet the requirements of a growing business. This talk will give an insight into how Soundcloud is organizing its microservices to deliver a reliable service to its users and to keep its engineering teams productive in a growing organization.
Webinar - Utilizzo delle WebApi dell'Orchestrator.pdfCristina Vidu
In questo evento tratteremo l'utilizzo delle WebApi messe a disposizione da UiPath per interfacciarsi con Orchestrator.
Un focus sulla documentazione e qualche piccolo esempio di utilizzo ed integrazione.
📕 Ordine del giorno
- Come collegarsi e ottenere un token di autenticazione
- Come effettuare le chiamate di GET o POST
- Qualche integrazione utile tra API e altre applicazioni
👨💻 Flavio Martinelli, UiPath Rome Chapter Leader, Head of Automation @Nethex
👨💻 Salvatore Amato, RPA Specialist
[REPEAT 1] Managing Identity Management, Authentication, & Authorization for ...Amazon Web Services
Build a serverless microservices application demonstrating end-to-end authentication and authorization through the use of Amazon Cognito, Amazon API Gateway, AWS Lambda, and all-things AWS Identity and Access Management (IAM). You will build an end-to-end functional app with a secure identity provider showcasing user authentication patterns.
Plone in the Cloud - an on-demand CMS hosted on Amazon EC2Jazkarta, Inc.
The rise of utility computing platforms such as Amazon EC2 has made it more feasible to build turnkey hosted solutions on top of open source software. Learn how we built PondCMS, a turnkey CMS deployed to Amazon's EC2. This presentation discusses the advantages of hosting Plone sites in the elastic computing cloud and some of the challenges we faced. Watch the video from this talk at http://pycon.blip.tv/file/1949202/
Web APIs are a primary target for malicious attacks on you and your digital assets. This presentation provides some effective API security approaches such as identifying API risks in business ecosystems, quaality and safety of APIs, and the risk from connected devices aka Internet of Things
Akamai Security World Tour Stockholm May 14, 2019 by Gerd Giese
Adding the Sec to Your DevOps Pipelines (SEC332-R1) - AWS re:Invent 2018Amazon Web Services
DevSecOps is the premise that everyone in the software development lifecycle is responsible for security. DevSecOps aims to embed security in every part of the development process. In this workshop, participants explore taking a standard CI/CD pipeline and adding security stages to improve security posture. Learn how to use AWS CodeCommit and AWS CodePipeline to build and publish golden AMI images. Also, learn how to modify pipeline flow to add security test cases. You also have to opportunity to perform CVE analysis and code analysis using Amazon Inspector and perform observational container analysis using Amazon GuardDuty.
Set Up a Communications Platform on AWS with AI-Enhanced Services (TLC302) - ...Amazon Web Services
Imagine being able to transcribe calls, translate them into multiple languages and then being able to identify key topics discussed in those calls. All of that is possible today with machine learning services offered by AWS. In AWS, you can easily integrate your real-time communication infrastructure with state-of-the-art AI services to enhance user experience. In this workshop, learn how to set up a secure and highly available WebRTC system on AWS and then integrate it with AWS AI services to provide services such as transcription (Amazon Transcribe), translation (Amazon Translate), and meta-data creation (Amazon Comprehend).
In this world of myriad devices, having fast, reliable and secure mobile apps is of utmost importance for every business. Fast-paced development is the need of the hour and as businesses are building apps quicker, it is crucial to make sure that mobile apps are tested and reviewed at the same pace to ensure an enhanced end-user experience. In this session, you will learn to test or review whether the Akamai features are working correctly on your mobile apps. We will share troubleshooting tools and best practices to empower you to quickly identify and resolve Akamai-related issues on your mobile apps.
In today's fast-paced and hyper-connected world, solving web-application issues quickly is critical for any business. If a web app is down even for a moment, it can lead to lost revenue and customers. While Akamai services and support teams are a fantastic troubleshooting resource, many issues can be quickly solved by customers themselves. In this session, you'll learn the tips and tricks for troubleshooting using Luna and third-party tools, giving you the power to quickly identify and resolve web application issues on your own.
Building a Great Web API - Evan Cooke - QCON 2011Twilio Inc
This presentation explores how fast signup, a clear value proposition, efficient quick starts, concise documentation, easy authentication and debugability are common attributes of many successful web APIs. The Twilio API is used as an example of how a focus on developer experience helps drive API adoption.
State of ICS and IoT Cyber Threat Landscape Report 2024 previewPrayukth K V
The IoT and OT threat landscape report has been prepared by the Threat Research Team at Sectrio using data from Sectrio, cyber threat intelligence farming facilities spread across over 85 cities around the world. In addition, Sectrio also runs AI-based advanced threat and payload engagement facilities that serve as sinks to attract and engage sophisticated threat actors, and newer malware including new variants and latent threats that are at an earlier stage of development.
The latest edition of the OT/ICS and IoT security Threat Landscape Report 2024 also covers:
State of global ICS asset and network exposure
Sectoral targets and attacks as well as the cost of ransom
Global APT activity, AI usage, actor and tactic profiles, and implications
Rise in volumes of AI-powered cyberattacks
Major cyber events in 2024
Malware and malicious payload trends
Cyberattack types and targets
Vulnerability exploit attempts on CVEs
Attacks on counties – USA
Expansion of bot farms – how, where, and why
In-depth analysis of the cyber threat landscape across North America, South America, Europe, APAC, and the Middle East
Why are attacks on smart factories rising?
Cyber risk predictions
Axis of attacks – Europe
Systemic attacks in the Middle East
Download the full report from here:
https://sectrio.com/resources/ot-threat-landscape-reports/sectrio-releases-ot-ics-and-iot-security-threat-landscape-report-2024/
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Ramesh Iyer
In today's fast-changing business world, Companies that adapt and embrace new ideas often need help to keep up with the competition. However, fostering a culture of innovation takes much work. It takes vision, leadership and willingness to take risks in the right proportion. Sachin Dev Duggal, co-founder of Builder.ai, has perfected the art of this balance, creating a company culture where creativity and growth are nurtured at each stage.
UiPath Test Automation using UiPath Test Suite series, part 4DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 4. In this session, we will cover Test Manager overview along with SAP heatmap.
The UiPath Test Manager overview with SAP heatmap webinar offers a concise yet comprehensive exploration of the role of a Test Manager within SAP environments, coupled with the utilization of heatmaps for effective testing strategies.
Participants will gain insights into the responsibilities, challenges, and best practices associated with test management in SAP projects. Additionally, the webinar delves into the significance of heatmaps as a visual aid for identifying testing priorities, areas of risk, and resource allocation within SAP landscapes. Through this session, attendees can expect to enhance their understanding of test management principles while learning practical approaches to optimize testing processes in SAP environments using heatmap visualization techniques
What will you get from this session?
1. Insights into SAP testing best practices
2. Heatmap utilization for testing
3. Optimization of testing processes
4. Demo
Topics covered:
Execution from the test manager
Orchestrator execution result
Defect reporting
SAP heatmap example with demo
Speaker:
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf91mobiles
91mobiles recently conducted a Smart TV Buyer Insights Survey in which we asked over 3,000 respondents about the TV they own, aspects they look at on a new TV, and their TV buying preferences.
Knowledge engineering: from people to machines and back
SoundCloud Cocoa API Wrapper
1. The SoundCloud API
Cocoa Wrapper
How to build a connection framework for an
OAuth protected RESTful Web-API
Wednesday, March 18, 2009
2. Agenda
1.Introduction
The SoundCloud API
2.Challenges
Problems we solved
3.Try it!
Integrating SoundCloud sharing to your app
Wednesday, March 18, 2009
4. The SoundCloud API
• RESTful
Resource based
•
User, Track, Comment, ...
•
HTTP based
•
GET, PUT, POST, DELETE
•
Data representation in JSON, XML
•
Wednesday, March 18, 2009
5. The SoundCloud API
• RESTful
Resource based
•
User, Track, Comment, ...
•
HTTP based
•
GET, PUT, POST, DELETE
•
Data representation in JSON, XML
•
• OAuth protected
Wednesday, March 18, 2009
6. REST Example
• Resource: Tracks
Resource Method
/tracks GET, POST
/tracks/{track_id} GET, PUT, DELETE
• Creating a new Track
POST /tracks
• curl -u joey:hairspray
'http://api.sandbox-soundcloud.com/tracks'
-F track[asset_data]=@step_by_step.aif
-F track[title]=Superstitious
Response
• < HTTP/1.1 201 Created
< Location: http://api.sandbox-soundcloud.com/tracks/13
Wednesday, March 18, 2009
8. OAuth
• Token based API authentication + authorization
Exchange tokens rather than login & password
•
Authorization on server side
•
Wednesday, March 18, 2009
9. OAuth
• Token based API authentication + authorization
Exchange tokens rather than login & password
•
Authorization on server side
•
• Client applications registered on server
Consumer key + secret
•
Wednesday, March 18, 2009
10. OAuth
• Token based API authentication + authorization
Exchange tokens rather than login & password
•
Authorization on server side
•
• Client applications registered on server
Consumer key + secret
•
• HTTP requests signed by authorized tokens
Wednesday, March 18, 2009
11. OAuth
• Token based API authentication + authorization
Exchange tokens rather than login & password
•
Authorization on server side
•
• Client applications registered on server
Consumer key + secret
•
• HTTP requests signed by authorized tokens
• Tokens can be revoked
Wednesday, March 18, 2009
13. Challenges
1.Nice code
Wednesday, March 18, 2009
14. Challenges
1.Nice code
2.Integrating OAuth
Signing API requests
•
Implementing the token authorization
•
Wednesday, March 18, 2009
15. Challenges
1.Nice code
2.Integrating OAuth
Signing API requests
•
Implementing the token authorization
•
3.Posting large (80+Mb) data to the server
Memory issues & upload progress
•
Wednesday, March 18, 2009
16. Challenges
1.Nice code
2.Integrating OAuth
Signing API requests
•
Implementing the token authorization
•
3.Posting large (80+Mb) data to the server
Memory issues & upload progress
•
4.Sending requests asynchronously
Wednesday, March 18, 2009
17. Challenges
1.Nice code
2.Integrating OAuth
Signing API requests
•
Implementing the token authorization
•
3.Posting large (80+Mb) data to the server
Memory issues & upload progress
•
4.Sending requests asynchronously
5.Cross platform Xcode project (3 platforms)
Wednesday, March 18, 2009
19. 1. Nice code
• Meant for 3rd party developers
Few classes that are easy to understand
•
Stable interface
•
Wednesday, March 18, 2009
20. 1. Nice code
• Meant for 3rd party developers
Few classes that are easy to understand
•
Stable interface
•
• API might change
Not implementing model or controller logic
•
Just implementing communication layer
•
JSON / XML parsing is up to the developer
•
Wednesday, March 18, 2009
21. Architecture
Client AppDelegate Some Client Controller
Authentication
API Delegate
Delegate
Wednesday, March 18, 2009
22. Architecture
Client AppDelegate Some Client Controller
Authentication
API Delegate
Delegate
SoundCloud API
Wednesday, March 18, 2009
23. Architecture
Client AppDelegate Some Client Controller
Authentication
API Delegate
Delegate
SoundCloud API
SoundCloud API
Configuration
Wednesday, March 18, 2009
24. Architecture
Client AppDelegate Some Client Controller
Authentication
API Delegate
Delegate
SoundCloud API
SoundCloud API
Configuration
Wednesday, March 18, 2009
31. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL
authorization via browser
Wednesday, March 18, 2009
32. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Wednesday, March 18, 2009
33. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Redirecting to
callback URL with
custom URL scheme
Wednesday, March 18, 2009
34. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Redirecting to
callback URL with
Application is triggered
custom URL scheme
by URL scheme
Wednesday, March 18, 2009
35. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Redirecting to
callback URL with
Application is triggered
custom URL scheme
by URL scheme
App initiates exchange
Step 3
of request token
Exchanging tokens
Wednesday, March 18, 2009
36. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Redirecting to
callback URL with
Application is triggered
custom URL scheme
by URL scheme
App initiates exchange
Step 3
of request token
Exchanging tokens
Generating
access token
Wednesday, March 18, 2009
37. OAuth token flow
Client Application SoundCloud
Step 1 Asking for request
Generating
Getting unauthorized token
request token request token
Step 2 Sent user to browser
Obtaining user with token in URL User logs in
authorization via browser
+ authorizes token
Redirecting to
callback URL with
Application is triggered
custom URL scheme
by URL scheme
App initiates exchange
Step 3
of request token
Exchanging tokens
Generating
access token
Step 4 Stores access token
Storing access token
for further usage
Wednesday, March 18, 2009
38. 3.Large files
• Audio files are large!
60 min recording is very large, even compressed
•
• The problem with lage files
iPhone memory limits
•
Upload progress not supported by NSURLConnection
•
• The solution: NSInputStream
Be aware!! Not easy to subclass
•
Wednesday, March 18, 2009
39. Post Body Stream
• Data transfered as multipart
• SCPostBodyStream as wrapper around array of stream parts
• Stream parts
NSString, NSURL (file URL), NSData
•
• Upload progress by counting bytes in read method
Wednesday, March 18, 2009
41. 4.Asynchronous Communication
Connection
Your Class
Connection
Connection Management
Data fetching
Request generation
Connection
Wednesday, March 18, 2009
42. 4.Asynchronous Communication
Connection
SoundCloud API
Connection
Connection Management
Data fetching
Request generation
Connection
Wednesday, March 18, 2009
43. 4.Asynchronous Communication
Connection
SoundCloud API
Your Class
Connection
Lean & Mean Connection Management
Data fetching
Request generation
Connection
Wednesday, March 18, 2009
44. 4.Asynchronous Communication
OAuth
Connection
SoundCloud API
Your Class
Connection
Lean & Mean Connection Management
Data fetching
Request generation
Connection
Uploads
Wednesday, March 18, 2009
46. 5. Cross platform Xcode project
• Targets
Framework for Mac
•
Fat static library for iPhone Device & Simulator
•
Wednesday, March 18, 2009
47. 5. Cross platform Xcode project
• Targets
Framework for Mac
•
Fat static library for iPhone Device & Simulator
•
• Problems
Only one Base SDK per project
•
Base SDK defines which frameworks are allowed
•
Wednesday, March 18, 2009
48. 5. Cross platform Xcode project
• Targets
Framework for Mac
•
Fat static library for iPhone Device & Simulator
•
• Problems
Only one Base SDK per project
•
Base SDK defines which frameworks are allowed
•
• Solution
Manually linking frameworks
•
Wednesday, March 18, 2009
49. 5. Cross platform Xcode project
• Targets
Framework for Mac
•
Fat static library for iPhone Device & Simulator
•
• Problems
Only one Base SDK per project
•
Base SDK defines which frameworks are allowed
•
• Solution
Manually linking frameworks
•
Wednesday, March 18, 2009
51. Try it !
• Licensed under Apache License
You‘re free to use it
•
Can be integrated into closed projects
•
Just mention us somewhere
•
Wednesday, March 18, 2009
52. Try it !
• Licensed under Apache License
You‘re free to use it
•
Can be integrated into closed projects
•
Just mention us somewhere
•
• Wrapper comes with iPhone and Mac demo projects
Wednesday, March 18, 2009
53. Try it !
• Licensed under Apache License
You‘re free to use it
•
Can be integrated into closed projects
•
Just mention us somewhere
•
• Wrapper comes with iPhone and Mac demo projects
Lets see some code!
Wednesday, March 18, 2009