SlideShare a Scribd company logo
1 of 87
Download to read offline
WHERE NODE.JS MEETS IOS
Enabling Node.JS Technology for Mobile Applications
HI!
•

Sam (@periping)
(github.com/srijs)	


•

CS Student at LUH	


•

Working at doctape
(node.js & mobile)	


•

Javascript, Objective-C,
plain C, Haskell
WHERE NODE.JS
MEETS IOS
Enabling Node.JS Technology for Mobile Applications
JAVASCRIPT	

ON MOBILE.
BAD
REPUTATION
BAD REPUTATION

1.“Slow”
BAD REPUTATION

1.“Slow”
Rough “Benchmarks” on iPhone 4S:
a) Fill an array (NSMutableArray vs. Array)
with 1.000.000 strings	

b) Call a function/method 1.000.000 times
BAD REPUTATION
Fill an array with 1.000.000 strings (sec.)

Call a function/method 1.000.000 times (sec.)
BAD REPUTATION
Fill an array with 1.000.000 strings (sec.)
Foundation
JavaScript
0

0.095

0.19

0.285

0.38

Call a function/method 1.000.000 times (sec.)
BAD REPUTATION
Fill an array with 1.000.000 strings (sec.)
Foundation
JavaScript
0

0.095

0.19

0.285

0.38

Call a function/method 1.000.000 times (sec.)
Foundation
JavaScript
0

0.15

0.3

0.45

0.6
BAD REPUTATION
NSMutableArray *a = [NSMutableArray new];
for (int i = 0; i < 1000000; i++) {
a[i] = @“Hello World”;
}

(function () {
var a = [];
for (var i = 0; i < 1000000; i++) {
a[i] = ‘Hello World’;
}
})();

for (int i = 0; i < 1000000; i++) {
[self exampleMethod];
}

(function () {
var fn = function () {
return;
};
for (var i = 0; i < 1000000; i++) {
fn();
}
})();

- (void)exampleMethod {
return;
}
BAD REPUTATION
BAD REPUTATION

2.“Bloated”
BAD REPUTATION

2.“Bloated”
3.“Memory
Hungry”
HOW TO

JS / IOS
HOW TO JS ON IOS

Web View w/	

HTML/CSS/JS
Content
HOW TO JS ON IOS

Web View w/	

HTML/CSS/JS
Content
A.

Slow start-up
HOW TO JS ON IOS

Web View w/	

HTML/CSS/JS
Content
A.
Slow start-up
B. Consumes lots of memory
HOW TO JS ON IOS

Bundle own JS
Engine
HOW TO JS ON IOS

Bundle own JS
Engine
A.

Bloated Binary
HOW TO JS ON IOS

Bundle own JS
Engine
A.
B.

Bloated Binary
High memory footprint
BAD REPUTATION

2.“Bloated”
3.“Memory
Hungry”
HOW TO JS ON IOS

JavaScriptCore	

Framework on iOS7
Low-overhead JS Context
EXISTING	

SOLUTIONS.
LANDSCAPE

HTML UI

Platform bridge
LANDSCAPE

HTML UI

Platform bridge
LANDSCAPE

Touch

HTML UI

Platform bridge
LANDSCAPE

Titanium

Touch

HTML UI

Platform bridge
LANDSCAPE

Titanium
PhoneGap
Touch

HTML UI

Platform bridge
TECHNOLOGY

HTML UI

Platform bridge
TECHNOLOGY

HTML UI

Platform bridge
TECHNOLOGY

Proprietary APIs

HTML UI

Platform bridge
TECHNOLOGY

Proprietary APIs

HTML UI

Platform bridge
CAN WE	

DO BETTER?
TECHNOLOGY

?
TECHNOLOGY

?
Frontend
TECHNOLOGY

?
Frontend

Backend
Y U SO PROPRIETARY?
Ti.Network.Socket.createTCP({
connected: function (e) {…}
});
Y U SO PROPRIETARY?
Ti.Network.Socket.createTCP({
connected: function (e) {…}
});
net.createServer(function (s) {
…
});
Y U SO PROPRIETARY?
Ti.Stream.write(e.socket,
Ti.createBuffer({
value: ‘Hello World'
}), cb);
Y U SO PROPRIETARY?
Ti.Stream.write(e.socket,
Ti.createBuffer({
value: ‘Hello World'
}), cb);
socket.write(
new Buffer(‘Hello World’)
);
TECHNOLOGY

HTML UI

Platform bridge
TECHNOLOGY

HTML UI

Platform bridge
TECHNOLOGY

HTML UI

Platform bridge
LET’S MAKE	

NODE.JS FOR	

MOBILE!
AKA	

“ARE YOU
NUTS?!”
PROOF-OF-CONCEPT
PROOF-OF-CONCEPT
PROOF-OF-CONCEPT
>20.000 Visits	

!

>1.000 Subscribers	

!

>900 Stars on GitHub
PROOF-OF-CONCEPT
>20.000 Visits	

!

>1.000 Subscribers	

!

>900 Stars on GitHub
“Can't wait to see where
this goes.
Hack on my man, Hack
on!”
LET’S	

ACTUALLY	

DO THIS!
NODE.JS CODEBASE

Source: ohloh.net/p/node
NODE.JS CODEBASE

~1.5M LOC
Source: ohloh.net/p/node
NODE.JS CODEBASE
Node.js API
native modules (js)
v8
c-ares (dns)
http_parser

bindings (c++)
libuv (io)
OS

openssl
zlib
NODE.JS CODEBASE
Node.js API
native modules (js)
v8
c-ares (dns)
http_parser

bindings (c++)
libuv (io)
OS

openssl
zlib
NODE.JS CODEBASE
Node.js API
native modules (js)
v8
JavaScriptCore.framework
c-ares (dns)
http_parser

bindings (c++)
libuv (io)
OS

openssl
zlib
NODE.JS CODEBASE
Node.js API
native modules (js)
v8
JavaScriptCore.framework
c-ares (dns)
http_parser

bindings (Obj-C)
bindings (c++)
libuv (io)
OS

openssl
zlib
APPROACH
bindings (c++)

~20.000 LOC
•
•
•
•
•
•
•
•

Filesystem	

Crypto	

HTTP Parser	

zlib	

TCP	

Timer	

TLS	

UDP

src$ wc -l *.cc
1180 cares_wrap.cc
196 fs_event_wrap.cc
136 handle_wrap.cc
3442 node.cc
668 node_buffer.cc
1066 node_constants.cc
631 node_contextify.cc
141 node_counters.cc
4179 node_crypto.cc
449 node_crypto_bio.cc
265 node_crypto_clienthello.cc
327 node_dtrace.cc
68 node_extensions.cc
1100 node_file.cc
603 node_http_parser.cc
58 node_javascript.cc
67 node_main.cc
305 node_os.cc
143 node_stat_watcher.cc
99 node_watchdog.cc
206 node_win32_etw_provider.cc
335 node_win32_perfctr_provider.cc
611 node_zlib.cc
293 pipe_wrap.cc
296 process_wrap.cc
117 signal_wrap.cc
499 smalloc.cc
604 stream_wrap.cc
751 string_bytes.cc
464 tcp_wrap.cc
160 timer_wrap.cc
724 tls_wrap.cc
183 tty_wrap.cc
442 udp_wrap.cc
65 uv.cc
20873 total
APPROACH
bindings (Obj-C)

~2.000 LOC
•
•
•
•
•

Filesystem	

HTTP Parser	

TCP	

Timer	

Buffer

Nodelike$ wc -l *.m
86 NLBinding.m
119 NLBindingBuffer.m
213 NLBindingConstants.m
309 NLBindingFilesystem.m
35 NLBindingSmalloc.m
34 NLBindingUv.m
162 NLCaresWrap.m
187 NLContext.m
364 NLHTTPParser.m
83 NLHandle.m
26 NLProcess.m
254 NLStream.m
197 NLTCP.m
70 NLTimer.m
33 NLUDP.m
2172 total
BUT DOES
IT WORK?
STOP!
DEMOTIME!
https://itunes.apple.com/app/id793774475
WHAT ALREADY WORKS…
WHAT ALREADY WORKS…
Assertion Testing	

Path	

Punycode	

Query Strings	

URL	

Utilities

Reliable
WHAT ALREADY WORKS…
Assertion Testing	

Path	

Punycode	

Query Strings	

URL	

Utilities

Reliable

Stream	

Events	

Buffer

Reliable
WHAT ALREADY WORKS…
Assertion Testing	

Path	

Punycode	

Query Strings	

URL	

Utilities

Reliable

Stream	

File System	

Events	

Timers
Buffer

Reliable

Reliable
WHAT ALREADY WORKS…
Assertion Testing	

Path	

Punycode	

Query Strings	

URL	

Utilities

Reliable

Stream	

File System	

Events	

Timers
Buffer

Reliable

DNS

Basic

Reliable
WHAT ALREADY WORKS…
Assertion Testing	

Path	

Punycode	

Query Strings	

URL	

Utilities

Reliable

Stream	

File System	

Events	

Timers
Buffer

Reliable

DNS

Basic

Reliable

Net, HTTP

Unstable
WHAT’S THE USE…
WHAT’S THE USE…
A. JavaScript Logic inside a
native App
WHAT’S THE USE…
A. JavaScript Logic inside a
native App
B. Attach to a WebView (á la
node-webkit)
WHAT’S TO COME…
WHAT’S TO COME…
•

More Core Modules (Crypto, Zlib,…)
WHAT’S TO COME…
•

More Core Modules (Crypto, Zlib,…)

•

libuv GCD integration
WHAT’S TO COME…
•

More Core Modules (Crypto, Zlib,…)

•

libuv GCD integration

•

Testing, testing, testing…
WHAT’S TO COME…
•

More Core Modules (Crypto, Zlib,…)

•

libuv GCD integration

•

Testing, testing, testing…

•

Integration with Titanium, PhoneGap, others…
PARTICIPATE
PARTICIPATE
•

Download the App from the AppStore
PARTICIPATE
•

Download the App from the AppStore

•

Test the modules that should work “reliably”
PARTICIPATE
•

Download the App from the AppStore

•

Test the modules that should work “reliably”

•

Subscribe to the Mailing List
PARTICIPATE
•

Download the App from the AppStore

•

Test the modules that should work “reliably”

•

Subscribe to the Mailing List

•

File GitHub Issues
PARTICIPATE
•

Download the App from the AppStore

•

Test the modules that should work “reliably”

•

Subscribe to the Mailing List

•

File GitHub Issues

•

Spread the word
PARTICIPATE
•

Download the App from the AppStore

•

Test the modules that should work “reliably”

•

Subscribe to the Mailing List

•

File GitHub Issues

•

Spread the word

•

Talk to me if you want to participate
Q?
nodeapp.org	

github.com/node-app
https://itunes.apple.com/app/id793774475
@periping	

github.com/srijs

Image Credits:	

http://bassetthounds.wordpress.com/category/basset-hound/	

http://woofgallery.org/category/happy-dog-photos/

More Related Content

What's hot

How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotBaruch Sadogursky
 
Native iphone app test automation with appium
Native iphone app test automation with appiumNative iphone app test automation with appium
Native iphone app test automation with appiumJames Eisenhauer
 
The Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh LongThe Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh Longploibl
 
React Native for Web
React Native for WebReact Native for Web
React Native for WebSam Lee
 
React NativeアプリをRspecでテストしてみた話
React NativeアプリをRspecでテストしてみた話 React NativeアプリをRspecでテストしてみた話
React NativeアプリをRspecでテストしてみた話 KyokoMitsuoka
 
'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Longploibl
 
Visual Recognition with Anki Cozmo and TensorFlow
Visual Recognition with Anki Cozmo and TensorFlowVisual Recognition with Anki Cozmo and TensorFlow
Visual Recognition with Anki Cozmo and TensorFlowNiklas Heidloff
 
Google App Engine - Java Style
Google App Engine - Java StyleGoogle App Engine - Java Style
Google App Engine - Java StylePeter Lind
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopShubhra Kar
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpAhmed Abdou
 
Cooking With Your API
Cooking With Your APICooking With Your API
Cooking With Your APINoonan
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...Codemotion
 
Docker, Continuous Integration, and You
Docker, Continuous Integration, and YouDocker, Continuous Integration, and You
Docker, Continuous Integration, and YouAtlassian
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerGraham Charters
 
Automated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using ArquillianAutomated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using ArquillianTommy Tynjä
 
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SFTesting & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SFAmazon Web Services
 

What's hot (19)

How we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we gotHow we took our server side application to the cloud and liked what we got
How we took our server side application to the cloud and liked what we got
 
Native iphone app test automation with appium
Native iphone app test automation with appiumNative iphone app test automation with appium
Native iphone app test automation with appium
 
The Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh LongThe Full Stack Java Developer - Josh Long
The Full Stack Java Developer - Josh Long
 
React Native for Web
React Native for WebReact Native for Web
React Native for Web
 
React NativeアプリをRspecでテストしてみた話
React NativeアプリをRspecでテストしてみた話 React NativeアプリをRspecでテストしてみた話
React NativeアプリをRspecでテストしてみた話
 
Swift + GraphQL
Swift + GraphQLSwift + GraphQL
Swift + GraphQL
 
'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long'Bootiful' Code with Spring Boot - Josh Long
'Bootiful' Code with Spring Boot - Josh Long
 
React Native
React NativeReact Native
React Native
 
Visual Recognition with Anki Cozmo and TensorFlow
Visual Recognition with Anki Cozmo and TensorFlowVisual Recognition with Anki Cozmo and TensorFlow
Visual Recognition with Anki Cozmo and TensorFlow
 
Google App Engine - Java Style
Google App Engine - Java StyleGoogle App Engine - Java Style
Google App Engine - Java Style
 
Ibm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshopIbm_interconnect_restapi_workshop
Ibm_interconnect_restapi_workshop
 
PHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in phpPHP Mega Meetup, Sep, 2020, Anti patterns in php
PHP Mega Meetup, Sep, 2020, Anti patterns in php
 
Cooking With Your API
Cooking With Your APICooking With Your API
Cooking With Your API
 
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
React Native - Unleash the power of React in your device - Eduard Tomàs - Cod...
 
Docker, Continuous Integration, and You
Docker, Continuous Integration, and YouDocker, Continuous Integration, and You
Docker, Continuous Integration, and You
 
Annotations in Java
Annotations in JavaAnnotations in Java
Annotations in Java
 
Optimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for DockerOptimizing Spring Boot apps for Docker
Optimizing Spring Boot apps for Docker
 
Automated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using ArquillianAutomated Integration Testing in Java using Arquillian
Automated Integration Testing in Java using Arquillian
 
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SFTesting & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
Testing & Troubleshooting Modern Apps with AWS Device Farm: Mobile Week SF
 

Viewers also liked

Running Node Applications on iOS and Android
Running Node Applications on iOS and AndroidRunning Node Applications on iOS and Android
Running Node Applications on iOS and Androidukadakal
 
Python for AngularJS
Python for AngularJSPython for AngularJS
Python for AngularJSJeff Schenck
 
I18n
I18nI18n
I18nsoon
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appceleratorDave Hudson
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstartAlessio Ricco
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using AppiumMindfire Solutions
 
Introduction to Nodejs
Introduction to NodejsIntroduction to Nodejs
Introduction to NodejsGabriele Lana
 
3.Posiciones relativas de rectas
3.Posiciones relativas de rectas3.Posiciones relativas de rectas
3.Posiciones relativas de rectasRAMON GOMEZ
 
Modern UI Development With Node.js
Modern UI Development With Node.jsModern UI Development With Node.js
Modern UI Development With Node.jsRyan Anklam
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with ExamplesGabriele Lana
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsVikash Singh
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907NodejsFoundation
 
Dibujo tecnico 1o_bach-_leccion_10
Dibujo tecnico 1o_bach-_leccion_10Dibujo tecnico 1o_bach-_leccion_10
Dibujo tecnico 1o_bach-_leccion_10mpazmv
 
The Enterprise Case for Node.js
The Enterprise Case for Node.jsThe Enterprise Case for Node.js
The Enterprise Case for Node.jsNodejsFoundation
 

Viewers also liked (18)

Node.js code tracing
Node.js code tracingNode.js code tracing
Node.js code tracing
 
Running Node Applications on iOS and Android
Running Node Applications on iOS and AndroidRunning Node Applications on iOS and Android
Running Node Applications on iOS and Android
 
Python for AngularJS
Python for AngularJSPython for AngularJS
Python for AngularJS
 
I18n
I18nI18n
I18n
 
Intro to appcelerator
Intro to appceleratorIntro to appcelerator
Intro to appcelerator
 
Titanium appcelerator kickstart
Titanium appcelerator kickstartTitanium appcelerator kickstart
Titanium appcelerator kickstart
 
How to-node-core
How to-node-coreHow to-node-core
How to-node-core
 
Android & iOS Automation Using Appium
Android & iOS Automation Using AppiumAndroid & iOS Automation Using Appium
Android & iOS Automation Using Appium
 
Introduction to Nodejs
Introduction to NodejsIntroduction to Nodejs
Introduction to Nodejs
 
3.Posiciones relativas de rectas
3.Posiciones relativas de rectas3.Posiciones relativas de rectas
3.Posiciones relativas de rectas
 
Nodejs intro
Nodejs introNodejs intro
Nodejs intro
 
Posiciones relativas de dos rectas en el plano
Posiciones relativas de dos rectas en el planoPosiciones relativas de dos rectas en el plano
Posiciones relativas de dos rectas en el plano
 
Modern UI Development With Node.js
Modern UI Development With Node.jsModern UI Development With Node.js
Modern UI Development With Node.js
 
Nodejs Explained with Examples
Nodejs Explained with ExamplesNodejs Explained with Examples
Nodejs Explained with Examples
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907Node Foundation Membership Overview 20160907
Node Foundation Membership Overview 20160907
 
Dibujo tecnico 1o_bach-_leccion_10
Dibujo tecnico 1o_bach-_leccion_10Dibujo tecnico 1o_bach-_leccion_10
Dibujo tecnico 1o_bach-_leccion_10
 
The Enterprise Case for Node.js
The Enterprise Case for Node.jsThe Enterprise Case for Node.js
The Enterprise Case for Node.js
 

Similar to Where Node.JS Meets iOS

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSDanilo Poccia
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration testsKenneth Poon
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Matthew McCullough
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Pythongturnquist
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopJimmy Guerrero
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiJackson Tian
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.jsguileen
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?Ronny
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyKyle Drake
 
Why Javascript is the glue of APIs?
Why Javascript is the glue of APIs?Why Javascript is the glue of APIs?
Why Javascript is the glue of APIs?Mehdi Medjaoui
 
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...Databricks
 
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Cloud Native Day Tel Aviv
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Matthew McCullough
 
Launch Arguments & NSUserDefaults by Franck Lefebvre
Launch Arguments & NSUserDefaults by Franck LefebvreLaunch Arguments & NSUserDefaults by Franck Lefebvre
Launch Arguments & NSUserDefaults by Franck LefebvreCocoaHeads France
 
EuRuKo JRuby Talk 2008
EuRuKo JRuby Talk 2008EuRuKo JRuby Talk 2008
EuRuKo JRuby Talk 2008geraldbauer
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Enginecatherinewall
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainKen Collins
 

Similar to Where Node.JS Meets iOS (20)

Continuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWSContinuous Integration and Deployment Best Practices on AWS
Continuous Integration and Deployment Best Practices on AWS
 
Mobile Development integration tests
Mobile Development integration testsMobile Development integration tests
Mobile Development integration tests
 
Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2Google App Engine for Java v0.0.2
Google App Engine for Java v0.0.2
 
Intro To Spring Python
Intro To Spring PythonIntro To Spring Python
Intro To Spring Python
 
Seattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js WorkshopSeattle StrongLoop Node.js Workshop
Seattle StrongLoop Node.js Workshop
 
Why Nodejs Guilin Shanghai
Why Nodejs Guilin ShanghaiWhy Nodejs Guilin Shanghai
Why Nodejs Guilin Shanghai
 
Why Node.js
Why Node.jsWhy Node.js
Why Node.js
 
Who pulls the strings?
Who pulls the strings?Who pulls the strings?
Who pulls the strings?
 
Ruby - The Hard Bits
Ruby - The Hard BitsRuby - The Hard Bits
Ruby - The Hard Bits
 
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::SynchronyFast, concurrent ruby web applications with EventMachine and EM::Synchrony
Fast, concurrent ruby web applications with EventMachine and EM::Synchrony
 
Why Javascript is the glue of APIs?
Why Javascript is the glue of APIs?Why Javascript is the glue of APIs?
Why Javascript is the glue of APIs?
 
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...
Microservices and Teraflops: Effortlessly Scaling Data Science with PyWren wi...
 
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
Two Years, Zero servers: Lessons learned from running a startup 100% on Serve...
 
Play framework
Play frameworkPlay framework
Play framework
 
Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]Cloud Computing Bootcamp On The Google App Engine [v1.1]
Cloud Computing Bootcamp On The Google App Engine [v1.1]
 
Node.JS briefly introduced
Node.JS briefly introducedNode.JS briefly introduced
Node.JS briefly introduced
 
Launch Arguments & NSUserDefaults by Franck Lefebvre
Launch Arguments & NSUserDefaults by Franck LefebvreLaunch Arguments & NSUserDefaults by Franck Lefebvre
Launch Arguments & NSUserDefaults by Franck Lefebvre
 
EuRuKo JRuby Talk 2008
EuRuKo JRuby Talk 2008EuRuKo JRuby Talk 2008
EuRuKo JRuby Talk 2008
 
Cannibalising The Google App Engine
Cannibalising The  Google  App  EngineCannibalising The  Google  App  Engine
Cannibalising The Google App Engine
 
Free The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own DomainFree The Enterprise With Ruby & Master Your Own Domain
Free The Enterprise With Ruby & Master Your Own Domain
 

Recently uploaded

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)wesley chun
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)Powerful Google developer tools for immediate impact! (2023-24 C)
Powerful Google developer tools for immediate impact! (2023-24 C)
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

Where Node.JS Meets iOS