SlideShare uma empresa Scribd logo
1 de 64
Baixar para ler offline
Building a Single
Page App
One page at a time
@nettofarah
@nettofarah
netto@ifttt.com
full stack developer at
IFTTT
http://ifttt.com/jobs
IFTTT
but this talk
is also about
the evolution of S.P.A.
DHTML
java applets
Flash / Flex
GWT
ajax
the .js era
toda vez que o Chaves respira
surge um framework .js novo
E isso não somos nós que
dizemos. São as estatísticas.
</pt-br>
in the rails world
• prototype.js / jquery gem
• rjs (ughhh)
• asset pipeline
• turbo links?
rails asset pipeline
rails + gulp/grunt
I don’t want my app to be
bound by page refreshes
the risks
• rework
• way too many spinning wheels
• the blank page effect
• SEO
DOING IT!
reuse!
• templates
• snippets
• scripts
• build system
reusing your rb/js code
server side rendering
optional, but makes a BIG DIFFERENCE!
mustache.(js|rb)
1 def regular_controller_method
2 @participants = User.last(10)
3 @event = Event.find_by_technology(:ruby)
4 end
the normal way
1 <div>
2 <% if Time.now.saturday? && Time.now.hour > 13 %>
3 yay, Netto is talking about Single Page apps
4 <% else %>
5 Can't wait to see Netto's talk!
6 <% end %>
7
8 <% is_tropical_ruby = @event.name.match(/tropical/i) %>
9 <% is_active = @event.end_date =< Date.today %>
10
11 <% if is_tropical_ruby && is_active %>
12 yay :)
13 <% end %>
14
15 <% @participants.each ... %>
16 # MOAR RUBY!! lol
17 <% end %>
18
19 </div>
1 def api_controller_method
2 participants = User.last(10)
3 event = Event.find_by_technology(:ruby)
4
5 is_nettos_talk = Time.now.saturday? && Time.now.hour > 14
6
7 @h = {
8 participants: users,
9 event: {
10 is_nettos_talk: is_nettos_talk,
11 is_tropical_ruby: event.tropical_rb?,
12 is_active: event.active?
13 }
14 }
15
16 respond_to do |format|
17 format.html
18 format.json { render json: @h.to_json }
19 end
20 end
1 <div>
2 {{#is_nettos_talk}}
3 yay, Netto is talking about Single Page apps
4 {{/is_nettos_talk}}
5
6 {{^is_nettos_talk}}
7 Can't wait to see Netto's talk!
8 I should follow him on twitter: @nettofarah
9 {{/is_nettos_talk}}
10
11 {{#event.is_tropical_ruby}}
12 yay
13 {{/event.is_tropical_ruby}}
14
15 {{#participants}}
16 ... SOME COOL MUSTACHE STUFF
17 {{/participants}}
18 </div>
Presenters?
hogan.js
minify your .mustache
templates and serve with asset-pipeline
https://github.com/leshill/hogan_assets
1 define("hgn!templates/recipe" ,
["hogan"],function(hogan){ return function
render(c,p,i) {
2 var t=this;t.b(i=i||"");t.b("<div>
");if(t.s(t.f("is_nettos_talk",c,p,1),c,p,
0,25,71,"{{ }}")){t.rs(c,p,function(c,p,t){t.b("
yay, Netto is talking about Single Page apps
");});c.pop();}t.b(" ");if(!
t.s(t.f("is_nettos_talk",c,p,1),c,p,1,0,0,"")){t.b("
Can't wait to see Netto's talk! I should follow him
on twitter: @nettofarah ");};t.b("
");if(t.s(t.d("event.is_tropical_ruby",c,p,1),c,p,
0,235,240,"{{ }}")){t.rs(c,p,function(c,p,t){t.b("
yay ");});c.pop();}t.b("
");if(t.s(t.f("participants",c,p,1),c,p,
0,285,315,"{{ }}")){t.rs(c,p,function(c,p,t)
{t.b(" ... SOME COOL MUSTACHE STUFF ");});c.pop();}
t.b(" </div>");return t.fl(); } }
require.js rails
https://github.com/jwhitley/requirejs-rails
• small and reusable components
• load only what you need
1 define('recipe_view', ['ingredient', 'recipeTemplate'],
2 function(Ingredient, recipeTemplate) {
3
4 var RecipeView = function() {
5
6 function render() {
7 var ingredient = new Ingredient({..});
8 var fragment = recipeTemplate.render(ingredient);
9 $(..).html(fragment);
10 }
11
12 ...
13 };
14
15 return RecipeView;
16 }
17 );
legacy routes
config/routes.rb -> app/js/routes.js
https://github.com/pseudomuto/routesjs-rails
reporting
1 // very simplistic example
2
3 window.onerror = function(message, url, lineNumber) {
4 // a rails controller
5 // or some other service
6 $.post('/js-errors', {
7 message: message,
8 url: url,
9 line_number: lineNumber
10 ...
11 });
12 }
testing
the consequences
the positive ones
fast(er) experience
• (potentially) independent deployment strategy
• better loading time and user experience
• decoupled code and test suite
the bad and the ugly
complexity
race conditions
regular web app
initial load
login info
js load event hooks/callbacks
single page (async) app
1 // Regular JS App
2 function Session() {
3 var currentUser = App.User; // this comes from erb
4 function onUserLogIn(callback) {
5 if (currentUser != null) {
6 callback();
7 }
8 }
9 }
1 // Single Page App Code
2 function Session() {
3 var onLogInCallbacks = [];
4 var currentUser;
5
6 function fetchCurrentUser() {
7 $.ajax(...).done(function() {
8 _.each(onLoginCallbacks, function(callback) {
9 callback(currentUser);
10 })
11 });
12 }
13
14 function onUserLogIn(callback) {
15 if (currentUser != null) {
16 callback(currentUser);
17 } else {
18 onLoginCallbacks.push(callback);
19 }
20 }
21 }
Save callback
for later
run callbacks
memory leaks
3 var onLogInCallbacks = [];
4 var currentUser;
5
6 function fetchCurrentSession() {
7 $.ajax(...).done(function() {
8 _.each(onLoginCallbacks,
function(callback) {
9 callback(currentUser);
10 });
11
12 clear(onLoginCallbacks);
13 });
14 }
15
16 function onUserLogIn(callback) {
17 if (currentUser != null) {
18 callback(currentUser);
19 } else {
20 onLoginCallbacks.push(callback);
21 }
cleanup after yourself
do not block the main thread
1 function onUserLogIn(callback) {
2 if (currentUser != null) {
3 setTimeout(callback, 0, currentUser);
4 }
5 }
instance x prototype
learnings
page refreshes are JS
developers best friends
beware of latency
events, callbacks and
promises
Don’t just learn a framework.
Learn JavaScript.
what’s next?
• ifttt.com next gen!
• react.js
• flight.js

Mais conteúdo relacionado

Mais procurados

AngularJS for Java Developers
AngularJS for Java DevelopersAngularJS for Java Developers
AngularJS for Java DevelopersLoc Nguyen
 
Mage Titans - Workshop - UI Components
Mage Titans - Workshop - UI ComponentsMage Titans - Workshop - UI Components
Mage Titans - Workshop - UI Componentsvkorotun
 
Symfony2 - Request to Response
Symfony2 - Request to ResponseSymfony2 - Request to Response
Symfony2 - Request to ResponsePalko Lenard
 
HItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptHItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptthebeebs
 
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...DicodingEvent
 
A little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire LhotellierA little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire LhotellierCocoaHeads France
 
Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Iakiv Kramarenko
 
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)Binary Studio
 
Java script object model
Java script object modelJava script object model
Java script object modelJames Hsieh
 
Up and Running with ReactJS
Up and Running with ReactJSUp and Running with ReactJS
Up and Running with ReactJSLoc Nguyen
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJSTu Hoang
 
Introducing AngularJS
Introducing AngularJSIntroducing AngularJS
Introducing AngularJSLoc Nguyen
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing RevelZhebr
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Zach Lendon
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementZach Lendon
 
A tour of React Native
A tour of React NativeA tour of React Native
A tour of React NativeTadeu Zagallo
 
Introduction to AJAX In WordPress
Introduction to AJAX In WordPressIntroduction to AJAX In WordPress
Introduction to AJAX In WordPressCaldera Labs
 

Mais procurados (20)

AngularJS for Java Developers
AngularJS for Java DevelopersAngularJS for Java Developers
AngularJS for Java Developers
 
Mage Titans - Workshop - UI Components
Mage Titans - Workshop - UI ComponentsMage Titans - Workshop - UI Components
Mage Titans - Workshop - UI Components
 
ASP.NET MVC
ASP.NET MVCASP.NET MVC
ASP.NET MVC
 
Symfony2 - Request to Response
Symfony2 - Request to ResponseSymfony2 - Request to Response
Symfony2 - Request to Response
 
HItchhickers Guide to TypeScript
HItchhickers Guide to TypeScriptHItchhickers Guide to TypeScript
HItchhickers Guide to TypeScript
 
Serverless and React
Serverless and ReactServerless and React
Serverless and React
 
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
ServiceWorker: Exploring the Core of the Progressive Web App-Bagus Aji Santos...
 
A little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire LhotellierA little respect for MVC part 1 par Gegoire Lhotellier
A little respect for MVC part 1 par Gegoire Lhotellier
 
Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015Polyglot automation - QA Fest - 2015
Polyglot automation - QA Fest - 2015
 
Let's migrate to Swift 3.0
Let's migrate to Swift 3.0Let's migrate to Swift 3.0
Let's migrate to Swift 3.0
 
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
React vs Angular: ups & downs (speaker Oleksandr Kovalov, Binary Studio)
 
Java script object model
Java script object modelJava script object model
Java script object model
 
Up and Running with ReactJS
Up and Running with ReactJSUp and Running with ReactJS
Up and Running with ReactJS
 
Introduction to ReactJS
Introduction to ReactJSIntroduction to ReactJS
Introduction to ReactJS
 
Introducing AngularJS
Introducing AngularJSIntroducing AngularJS
Introducing AngularJS
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing Revel
 
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
Reconciling ReactJS as a View Layer Replacement (MidwestJS 2014)
 
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer ReplacementMidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
MidwestJS 2014 Reconciling ReactJS as a View Layer Replacement
 
A tour of React Native
A tour of React NativeA tour of React Native
A tour of React Native
 
Introduction to AJAX In WordPress
Introduction to AJAX In WordPressIntroduction to AJAX In WordPress
Introduction to AJAX In WordPress
 

Destaque

[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...Plan Politika
 
Parachute procedure slide show
Parachute procedure slide showParachute procedure slide show
Parachute procedure slide showCarli
 
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...Plan Politika
 
Nothing But Love - My speech to my sister on her wedding day - Journey within...
Nothing But Love - My speech to my sister on her wedding day - Journey within...Nothing But Love - My speech to my sister on her wedding day - Journey within...
Nothing But Love - My speech to my sister on her wedding day - Journey within...Bilal Jaffery
 
Fluido/Scrive Salesforce for E-sign seminar
Fluido/Scrive Salesforce for E-sign seminarFluido/Scrive Salesforce for E-sign seminar
Fluido/Scrive Salesforce for E-sign seminarjohanhil
 
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...Piet Verhoeve
 
Wave pp 01
Wave pp 01Wave pp 01
Wave pp 01BChange
 
Faria bangla festival 2
Faria bangla festival 2Faria bangla festival 2
Faria bangla festival 2fariadhbhuiyan
 
[plan politika] Youth movement nowadays
[plan politika] Youth movement nowadays[plan politika] Youth movement nowadays
[plan politika] Youth movement nowadaysPlan Politika
 
Current
CurrentCurrent
Currentiec
 
Presentation1
Presentation1Presentation1
Presentation115098
 
Synchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBSynchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBFrank Rousseau
 
Leverage social media to drive business final
Leverage social media to drive business finalLeverage social media to drive business final
Leverage social media to drive business finalSimoneVersteeg
 
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMIEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMiec
 
Guaranteed Successful Projects
Guaranteed Successful ProjectsGuaranteed Successful Projects
Guaranteed Successful Projectsfaruqh
 
2. Arte Ibérico
2. Arte Ibérico2. Arte Ibérico
2. Arte IbéricoJ Luque
 

Destaque (20)

[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
[plan politika] Pemudan dan Politik Indonesia : Ibas, the Next Top Kick Polit...
 
Parachute procedure slide show
Parachute procedure slide showParachute procedure slide show
Parachute procedure slide show
 
Hti
HtiHti
Hti
 
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...
[plan politika] Indonesian Youth and Politics : Predicting Indonesian Youth V...
 
Nothing But Love - My speech to my sister on her wedding day - Journey within...
Nothing But Love - My speech to my sister on her wedding day - Journey within...Nothing But Love - My speech to my sister on her wedding day - Journey within...
Nothing But Love - My speech to my sister on her wedding day - Journey within...
 
Gaismas
GaismasGaismas
Gaismas
 
Fluido/Scrive Salesforce for E-sign seminar
Fluido/Scrive Salesforce for E-sign seminarFluido/Scrive Salesforce for E-sign seminar
Fluido/Scrive Salesforce for E-sign seminar
 
Bogomils
BogomilsBogomils
Bogomils
 
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...
Pvh2014 01-15 create project (Dumfries) iMinds - icon: creating value through...
 
Wave pp 01
Wave pp 01Wave pp 01
Wave pp 01
 
Faria bangla festival 2
Faria bangla festival 2Faria bangla festival 2
Faria bangla festival 2
 
[plan politika] Youth movement nowadays
[plan politika] Youth movement nowadays[plan politika] Youth movement nowadays
[plan politika] Youth movement nowadays
 
Current
CurrentCurrent
Current
 
Presentation1
Presentation1Presentation1
Presentation1
 
Synchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDBSynchronisation de périphériques avec Javascript et PouchDB
Synchronisation de périphériques avec Javascript et PouchDB
 
Leverage social media to drive business final
Leverage social media to drive business finalLeverage social media to drive business final
Leverage social media to drive business final
 
Weekly news 3
Weekly news 3Weekly news 3
Weekly news 3
 
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHMIEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
IEC Orientation first year for MBA,MCA,B. Pharmacy & IHM
 
Guaranteed Successful Projects
Guaranteed Successful ProjectsGuaranteed Successful Projects
Guaranteed Successful Projects
 
2. Arte Ibérico
2. Arte Ibérico2. Arte Ibérico
2. Arte Ibérico
 

Semelhante a Building a Single Page App: One Page at a Time

OttawaJS - React
OttawaJS - ReactOttawaJS - React
OttawaJS - Reactrbl002
 
Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Visual Engineering
 
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...Codemotion
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introductionshaojung
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introductionshaojung
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introductionshaojung
 
From Back to Front: Rails To React Family
From Back to Front: Rails To React FamilyFrom Back to Front: Rails To React Family
From Back to Front: Rails To React FamilyKhor SoonHin
 
Ten practical ways to improve front-end performance
Ten practical ways to improve front-end performanceTen practical ways to improve front-end performance
Ten practical ways to improve front-end performanceAndrew Rota
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UGProject Zero
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet Sagar Nakul
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React NativeDarren Cruse
 
Ditching JQuery
Ditching JQueryDitching JQuery
Ditching JQueryhowlowck
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "FDConf
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGuillaume Laforge
 
Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedpgt technology scouting GmbH
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxJirat Kijlerdpornpailoj
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassSpike Brehm
 

Semelhante a Building a Single Page App: One Page at a Time (20)

OttawaJS - React
OttawaJS - ReactOttawaJS - React
OttawaJS - React
 
Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.Workshop 4: NodeJS. Express Framework & MongoDB.
Workshop 4: NodeJS. Express Framework & MongoDB.
 
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
ClojureScript - Making Front-End development Fun again - John Stevenson - Cod...
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 
Web Application Introduction
Web Application  IntroductionWeb Application  Introduction
Web Application Introduction
 
From Back to Front: Rails To React Family
From Back to Front: Rails To React FamilyFrom Back to Front: Rails To React Family
From Back to Front: Rails To React Family
 
Ten practical ways to improve front-end performance
Ten practical ways to improve front-end performanceTen practical ways to improve front-end performance
Ten practical ways to improve front-end performance
 
Workshop React.js
Workshop React.jsWorkshop React.js
Workshop React.js
 
sMash at May NYPHP UG
sMash at May NYPHP UGsMash at May NYPHP UG
sMash at May NYPHP UG
 
Struts,Jsp,Servlet
Struts,Jsp,ServletStruts,Jsp,Servlet
Struts,Jsp,Servlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
Strutsjspservlet
Strutsjspservlet Strutsjspservlet
Strutsjspservlet
 
The Gist of React Native
The Gist of React NativeThe Gist of React Native
The Gist of React Native
 
Ditching JQuery
Ditching JQueryDitching JQuery
Ditching JQuery
 
"Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native ""Service Worker: Let Your Web App Feel Like a Native "
"Service Worker: Let Your Web App Feel Like a Native "
 
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume LaforgeGroovy Ecosystem - JFokus 2011 - Guillaume Laforge
Groovy Ecosystem - JFokus 2011 - Guillaume Laforge
 
Javaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learnedJavaland 2014 / GWT architectures and lessons learned
Javaland 2014 / GWT architectures and lessons learned
 
TPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and FluxTPSE Thailand 2015 - Rethinking Web with React and Flux
TPSE Thailand 2015 - Rethinking Web with React and Flux
 
Isomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master ClassIsomorphic JavaScript: #DevBeat Master Class
Isomorphic JavaScript: #DevBeat Master Class
 

Mais de Ivayr Farah Netto

Persistência Poliglota na Prática
Persistência Poliglota na PráticaPersistência Poliglota na Prática
Persistência Poliglota na PráticaIvayr Farah Netto
 
Praticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnicaPraticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnicaIvayr Farah Netto
 
Testes, TDD e Outras Coisas Que Você Deveria Saber
Testes, TDD e Outras Coisas Que Você Deveria SaberTestes, TDD e Outras Coisas Que Você Deveria Saber
Testes, TDD e Outras Coisas Que Você Deveria SaberIvayr Farah Netto
 

Mais de Ivayr Farah Netto (7)

a 8tracks ama o Redis
a 8tracks ama o Redisa 8tracks ama o Redis
a 8tracks ama o Redis
 
Persistência Poliglota na Prática
Persistência Poliglota na PráticaPersistência Poliglota na Prática
Persistência Poliglota na Prática
 
Redis &lt;3 at 8tracks.com
Redis &lt;3 at 8tracks.comRedis &lt;3 at 8tracks.com
Redis &lt;3 at 8tracks.com
 
Rails girls
Rails girlsRails girls
Rails girls
 
Away day
Away dayAway day
Away day
 
Praticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnicaPraticando o Desapego: quando ignorar a dívida técnica
Praticando o Desapego: quando ignorar a dívida técnica
 
Testes, TDD e Outras Coisas Que Você Deveria Saber
Testes, TDD e Outras Coisas Que Você Deveria SaberTestes, TDD e Outras Coisas Que Você Deveria Saber
Testes, TDD e Outras Coisas Que Você Deveria Saber
 

Último

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfVishalKumarJha10
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...software pro Development
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfproinshot.com
 

Último (20)

A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...How to Choose the Right Laravel Development Partner in New York City_compress...
How to Choose the Right Laravel Development Partner in New York City_compress...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 

Building a Single Page App: One Page at a Time