SlideShare a Scribd company logo
1 of 56
Download to read offline
Building a Like-able
(and Searchable)
Ember App
Ember Denver Meetup Sept 30, 2015
Ron White
! ronco
" @ronco1337
I’m No SEO Expert
#Sh*tMySEOExpertSays
“Defer loading all JavaScript until
after the page has loaded.”
I’m No SEO Expert
Techniques for Making Ember
Searchable
I’m No SEO Expert
Lots of Great Ember
Apps
Delivery Company
Blog
How do you drive
traffic to these sites?
Time to Make a
Metaphorical Deal
With The Devil
Time to Make a Deal
With The Devil
Demo
http://peblog-3000.herokuapp.com/?
index_key=dc3041e
Bots have their own
language
• Content is King
• Data is pulled directly from your markup
• Structure should be logical and useful to users
• Avoid Repeated Content (Canonicalization)
• Links to/from Your Site Drive Importance
• Easy to Implement, Lifetime to Master
Source: https://support.google.com/webmasters/answer/40349?hl=en
• Facebook Open Graph
• Dedicated Meta Tag Markup in Head
• Requires Canonicalization
• Shared Open Spec
1 <meta property="og:url"
2 content="http://www.nytimes.com/.../mars-life-liquid-water.html">
3 <meta property="og:type" content="article">
4 <meta property="og:title"
5 content="NASA Confirms Signs of Water Flowing on Mars, Possible
6 Niches for Life">
• Twitter Cards
• Dedicated Meta Tag Markup in Head
• Will Read Open Graph Also
1 <meta name="twitter:card" value="summary">
2 <meta name="twitter:site" value="@nytimes">
3 <meta property="twitter:url"
4 content=“http://.../mars-life-liquid-water.html”>
5 <meta property=“twitter:title"
6 content="NASA Confirms Signs of Water Flowing on Mars,
7 Possible Niches for Life">
schema.org
• Used by Pinterest & Google Structured Data
Let’s Mark-up Our Blog
./app/index.html
1 <meta property="og:title"
2 content="The Latest Happenings At New New York's Greatest
3 Delivery Service">
4 <meta property="og:site_name" content="Planet Express Blog"/>
5 <meta property="og:description"
6 content="The Employees of Planet Express, New New York's
7 Greatest Delivery Service, have a lot to say. Hear
8 all their latest musings on the Planet Express Blog."
9 />
10 <meta property="og:type" content="website" />
11 <meta property="og:image" content="/images/pe-logo.png" />
Demo
http://peblog-3000.herokuapp.com/?
index_key=e4df1d5
Not Very Practical
$ ember install ember-cli-meta-tags
./app/routes/application.js
1 import Ember from 'ember';
2
3 export default Ember.Route.extend({
4 model() {
5 return this.get('store').findAll('author');
6 },
7
8 headTags() {
9 return [
10 {
11 tagId: 'og:title',
12 type: 'meta',
13 attrs: {
14 property: 'og:title',
15 content: "The Latest Happenings At New New York's Greatest
16 Delivery Service"
17 }
18 },
19 {
20 tagId: 'og:site_name',
21 type: 'meta',
22 attrs: {
23 property: 'og:site_name',
24 content: "Planet Express Blog",
25 }
26 },
27 // ...
28 ];
29 }
30 });
31
./app/routes/application.js
8 headTags() {
9 return [
10 {
11 tagId: 'og:title',
12 type: 'meta',
13 attrs: {
14 property: 'og:title',
15 content: "The Latest Happenings At New New York's Greatest
16 Delivery Service"
17 }
18 },
27 // ...
28 ];
./app/routes/author.js
1 headTags() {
2 let model = this.modelFor(this.routeName);
3 return [
4 {
5 tagId: 'og:title',
6 type: 'meta',
7 attrs: {
8 property: 'og:title',
9 content: model.get('name')
10 }
11 },
12 // ...
13 ];
14 }
./app/routes/post.js
1 headTags() {
2 let model = this.modelFor(this.routeName);
3 return [
4 {
5 tagId: 'og:title',
6 type: 'meta',
7 attrs: {
8 property: 'og:title',
9 content: model.get('title')
10 }
11 },
./app/routes/author/post.js
1 headTags() {
2 let model = this.modelFor(this.routeName);
3 let queryParams = {
4 index_key: this.controllerFor('application').get('indexKey')
5 };
6 let router = this.get('router');
7 let path = this.get('router').generate.apply(router, [
8 'post', model, {
9 queryParams: queryParams
10 }
11 ]);
12 let cannonicalUrl = `${window.location.origin}${path}`;
13 return [
14 // ...
15 {
16 tagId: 'og:url',
17 type: 'meta',
18 attrs: {
19 property: 'og:url',
20 content: cannonicalUrl,
21 }
22 },
23 ];
24 }
./app/routes/author/post.js
2 let model = this.modelFor(this.routeName);
3 let queryParams = {
4 index_key: this.controllerFor('application').get('indexKey')
5 };
6 let router = this.get('router');
7 let path = this.get('router').generate.apply(router, [
8 'post', model, {
9 queryParams: queryParams
10 }
11 ]);
12 let cannonicalUrl = `${window.location.origin}${path}`;
./app/routes/author/post.js
1 headTags() {
2 let model = this.modelFor(this.routeName);
3 let queryParams = {
4 index_key: this.controllerFor('application').get('indexKey')
5 };
6 let router = this.get('router');
7 let path = this.get('router').generate.apply(router, [
8 'post', model, {
9 queryParams: queryParams
10 }
11 ]);
12 let cannonicalUrl = `${window.location.origin}${path}`;
13 return [
14 // ...
15 {
16 tagId: 'og:url',
17 type: 'meta',
18 attrs: {
19 property: 'og:url',
20 content: cannonicalUrl,
21 }
22 },
23 ];
24 }
./app/routes/author/post.js
15 {
16 tagId: 'og:url',
17 type: 'meta',
18 attrs: {
19 property: 'og:url',
20 content: cannonicalUrl,
21 }
22 },
Demo
http://peblog-3000.herokuapp.com/?
index_key=ddcec57
Bots don’t speak
Javascript
$ npm install prerender-node
<server>/index.js
1 app.use(require(‘prerender-node')
2 .set('prerenderToken', process.env.PRERENDER_TOKEN));
./app/index.html
1 <meta name="fragment" content="!">
Ajax Crawling
http://www.example.org/#mypage
http://www.example.org/?_escaped_fragment_=mypage
http://www.example.org/mypage
http://www.example.org/mypage?_escaped_fragment_=
Demo
http://peblog-3000.herokuapp.com/?
index_key=da65289
$ ember install ember-cli-fastboot
ember-cli-fastboot
• Ember Core Team Provided Pre-rendering
• Deferred Injection of Scripts
• Available as Node Middleware
• Extremely Alpha
• Bugs & Incomplete
Demo
• https://support.google.com/webmasters/answer/40349?
hl=en
• http://static.googleusercontent.com/media/
www.google.com/en//webmasters/docs/search-engine-
optimization-starter-guide.pdf
• https://developers.google.com/webmasters/ajax-
crawling/docs/getting-started?hl=en
• https://dev.twitter.com/cards/overview
• http://ogp.me/
• https://developers.facebook.com/tools/debug/

More Related Content

What's hot

Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...Caldera Labs
 
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress DevelopersIntroduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress DevelopersCaldera Labs
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Lar21
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkJeremy Kendall
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for BeginnersJason Davies
 
Using the new WordPress REST API
Using the new WordPress REST APIUsing the new WordPress REST API
Using the new WordPress REST APICaldera Labs
 
Mojolicious, real-time web framework
Mojolicious, real-time web frameworkMojolicious, real-time web framework
Mojolicious, real-time web frameworktaggg
 
Bullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkBullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkVance Lucas
 
Using WordPress as your application stack
Using WordPress as your application stackUsing WordPress as your application stack
Using WordPress as your application stackPaul Bearne
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackIgnacio Martín
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST APICaldera Labs
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing CapybaraTim Moore
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)andrewnacin
 
Caldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCaldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCalderaLearn
 
Laravel 5 In Depth
Laravel 5 In DepthLaravel 5 In Depth
Laravel 5 In DepthKirk Bushell
 
Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSAntonio Peric-Mazar
 
Functional testing with capybara
Functional testing with capybaraFunctional testing with capybara
Functional testing with capybarakoffeinfrei
 
What mom never told you about bundle configurations - Symfony Live Paris 2012
What mom never told you about bundle configurations - Symfony Live Paris 2012What mom never told you about bundle configurations - Symfony Live Paris 2012
What mom never told you about bundle configurations - Symfony Live Paris 2012D
 

What's hot (20)

Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
Single Page Web Apps As WordPress Admin Interfaces Using AngularJS & The Word...
 
Mojolicious on Steroids
Mojolicious on SteroidsMojolicious on Steroids
Mojolicious on Steroids
 
Introduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress DevelopersIntroduction to AngularJS For WordPress Developers
Introduction to AngularJS For WordPress Developers
 
Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18Flask - Backend com Python - Semcomp 18
Flask - Backend com Python - Semcomp 18
 
Keeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro frameworkKeeping it small - Getting to know the Slim PHP micro framework
Keeping it small - Getting to know the Slim PHP micro framework
 
Django for Beginners
Django for BeginnersDjango for Beginners
Django for Beginners
 
Using the new WordPress REST API
Using the new WordPress REST APIUsing the new WordPress REST API
Using the new WordPress REST API
 
Mojolicious, real-time web framework
Mojolicious, real-time web frameworkMojolicious, real-time web framework
Mojolicious, real-time web framework
 
Bullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-FrameworkBullet: The Functional PHP Micro-Framework
Bullet: The Functional PHP Micro-Framework
 
Using WordPress as your application stack
Using WordPress as your application stackUsing WordPress as your application stack
Using WordPress as your application stack
 
Keeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and WebpackKeeping the frontend under control with Symfony and Webpack
Keeping the frontend under control with Symfony and Webpack
 
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 Connecting Content Silos: One CMS, Many Sites With The WordPress REST API Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
Connecting Content Silos: One CMS, Many Sites With The WordPress REST API
 
Embracing Capybara
Embracing CapybaraEmbracing Capybara
Embracing Capybara
 
21.search in laravel
21.search in laravel21.search in laravel
21.search in laravel
 
Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)Best Practices in Plugin Development (WordCamp Seattle)
Best Practices in Plugin Development (WordCamp Seattle)
 
Caldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW WorkshopCaldera Learn - LoopConf WP API + Angular FTW Workshop
Caldera Learn - LoopConf WP API + Angular FTW Workshop
 
Laravel 5 In Depth
Laravel 5 In DepthLaravel 5 In Depth
Laravel 5 In Depth
 
Building Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJSBuilding Single Page Application (SPA) with Symfony2 and AngularJS
Building Single Page Application (SPA) with Symfony2 and AngularJS
 
Functional testing with capybara
Functional testing with capybaraFunctional testing with capybara
Functional testing with capybara
 
What mom never told you about bundle configurations - Symfony Live Paris 2012
What mom never told you about bundle configurations - Symfony Live Paris 2012What mom never told you about bundle configurations - Symfony Live Paris 2012
What mom never told you about bundle configurations - Symfony Live Paris 2012
 

Viewers also liked

Iz mo - novi obrazac - klanjec
Iz mo - novi obrazac - klanjecIz mo - novi obrazac - klanjec
Iz mo - novi obrazac - klanjecŽeljko Lež
 
Church 101
Church 101Church 101
Church 101Alex D
 
How will the future of construction be?
How will the future of construction be?How will the future of construction be?
How will the future of construction be?Michael Gardias
 
November 2016 - offers by LR
November 2016 - offers by LRNovember 2016 - offers by LR
November 2016 - offers by LReleftherialigiou
 
Coursera cloudapplications 2015
Coursera cloudapplications 2015Coursera cloudapplications 2015
Coursera cloudapplications 2015Zaw Zaw Oo
 
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015anuga 2015 USA Pavilion Directory - October 10 - 14, 2015
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015Koelnmesse
 
Косметика Мирра эффективна или нет? Презентация
Косметика Мирра эффективна или нет? ПрезентацияКосметика Мирра эффективна или нет? Презентация
Косметика Мирра эффективна или нет? ПрезентацияЕгор Белый
 
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project (3)
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project   (3)WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project   (3)
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project (3)Matthew Hallowell Jr.
 
Successful Negotiation Essential Strategies and Skills by University of Michi...
Successful Negotiation Essential Strategies and Skills by University of Michi...Successful Negotiation Essential Strategies and Skills by University of Michi...
Successful Negotiation Essential Strategies and Skills by University of Michi...ilan kleinman
 
Tugas 6 individu rekayasa web 0316
Tugas 6  individu rekayasa web 0316Tugas 6  individu rekayasa web 0316
Tugas 6 individu rekayasa web 0316septianarul
 
Что хотят женщины? Или женщина главный покупатель!
Что хотят женщины? Или женщина главный покупатель!Что хотят женщины? Или женщина главный покупатель!
Что хотят женщины? Или женщина главный покупатель!Andrey Gornov
 

Viewers also liked (14)

Iz mo - novi obrazac - klanjec
Iz mo - novi obrazac - klanjecIz mo - novi obrazac - klanjec
Iz mo - novi obrazac - klanjec
 
Church 101
Church 101Church 101
Church 101
 
How will the future of construction be?
How will the future of construction be?How will the future of construction be?
How will the future of construction be?
 
November 2016 - offers by LR
November 2016 - offers by LRNovember 2016 - offers by LR
November 2016 - offers by LR
 
Coursera cloudapplications 2015
Coursera cloudapplications 2015Coursera cloudapplications 2015
Coursera cloudapplications 2015
 
Catalogue
CatalogueCatalogue
Catalogue
 
ECA presentation Roundtable on Independence of Supreme Audit Institutions Sar...
ECA presentation Roundtable on Independence of Supreme Audit Institutions Sar...ECA presentation Roundtable on Independence of Supreme Audit Institutions Sar...
ECA presentation Roundtable on Independence of Supreme Audit Institutions Sar...
 
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015anuga 2015 USA Pavilion Directory - October 10 - 14, 2015
anuga 2015 USA Pavilion Directory - October 10 - 14, 2015
 
Косметика Мирра эффективна или нет? Презентация
Косметика Мирра эффективна или нет? ПрезентацияКосметика Мирра эффективна или нет? Презентация
Косметика Мирра эффективна или нет? Презентация
 
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project (3)
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project   (3)WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project   (3)
WK 6 - Consulting Project, Part 3 - Final Nine West SAP Project (3)
 
Successful Negotiation Essential Strategies and Skills by University of Michi...
Successful Negotiation Essential Strategies and Skills by University of Michi...Successful Negotiation Essential Strategies and Skills by University of Michi...
Successful Negotiation Essential Strategies and Skills by University of Michi...
 
Taxation Summary
Taxation SummaryTaxation Summary
Taxation Summary
 
Tugas 6 individu rekayasa web 0316
Tugas 6  individu rekayasa web 0316Tugas 6  individu rekayasa web 0316
Tugas 6 individu rekayasa web 0316
 
Что хотят женщины? Или женщина главный покупатель!
Что хотят женщины? Или женщина главный покупатель!Что хотят женщины? Или женщина главный покупатель!
Что хотят женщины? Или женщина главный покупатель!
 

Similar to Denver emberjs-sept-2015

Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDmitry Vinnik
 
Headless Drupal en pratique
Headless Drupal en pratiqueHeadless Drupal en pratique
Headless Drupal en pratiqueSimon Morvan
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsMike Subelsky
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineAndy McKay
 
Introduction to REST API with Node.js
Introduction to REST API with Node.jsIntroduction to REST API with Node.js
Introduction to REST API with Node.jsYoann Gotthilf
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
 
Heuristics to scale your framework
Heuristics to scale your frameworkHeuristics to scale your framework
Heuristics to scale your frameworkvodQA
 
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and ExpressMIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and ExpressCharlie Key
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010Lincoln III
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGapAlex S
 
Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications Juliana Lucena
 
Testing in AngularJS
Testing in AngularJSTesting in AngularJS
Testing in AngularJSPeter Drinnan
 
How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND Enrique Oriol Bermúdez
 
SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery EssentialsMark Rackley
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to DjangoJoaquim Rocha
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Eliran Eliassy
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN StackTroy Miles
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)Igor Bronovskyy
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Matt Raible
 

Similar to Denver emberjs-sept-2015 (20)

Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
 
Developing Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptxDeveloping Lightning Components for Communities.pptx
Developing Lightning Components for Communities.pptx
 
Headless Drupal en pratique
Headless Drupal en pratiqueHeadless Drupal en pratique
Headless Drupal en pratique
 
SproutCore and the Future of Web Apps
SproutCore and the Future of Web AppsSproutCore and the Future of Web Apps
SproutCore and the Future of Web Apps
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
Introduction to REST API with Node.js
Introduction to REST API with Node.jsIntroduction to REST API with Node.js
Introduction to REST API with Node.js
 
WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...WebNet Conference 2012 - Designing complex applications using html5 and knock...
WebNet Conference 2012 - Designing complex applications using html5 and knock...
 
Heuristics to scale your framework
Heuristics to scale your frameworkHeuristics to scale your framework
Heuristics to scale your framework
 
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and ExpressMIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
MIKE Stack Introduction - MongoDB, io.js, KendoUI, and Express
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
 
Getting Started with DrupalGap
Getting Started with DrupalGapGetting Started with DrupalGap
Getting Started with DrupalGap
 
Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications  Ember.js - A JavaScript framework for creating ambitious web applications
Ember.js - A JavaScript framework for creating ambitious web applications
 
Testing in AngularJS
Testing in AngularJSTesting in AngularJS
Testing in AngularJS
 
How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND How to build an AngularJS backend-ready app WITHOUT BACKEND
How to build an AngularJS backend-ready app WITHOUT BACKEND
 
SharePoint and jQuery Essentials
SharePoint and jQuery EssentialsSharePoint and jQuery Essentials
SharePoint and jQuery Essentials
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics Angular server side rendering - Strategies & Technics
Angular server side rendering - Strategies & Technics
 
From MEAN to the MERN Stack
From MEAN to the MERN StackFrom MEAN to the MERN Stack
From MEAN to the MERN Stack
 
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
09 - express nodes on the right angle - vitaliy basyuk - it event 2013 (5)
 
Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017Front End Development for Back End Developers - vJUG24 2017
Front End Development for Back End Developers - vJUG24 2017
 

Recently uploaded

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 

Recently uploaded (20)

Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 

Denver emberjs-sept-2015