SlideShare ist ein Scribd-Unternehmen logo
1 von 63
Downloaden Sie, um offline zu lesen
THE JAVASCRIPT
REVOLUTION

THE NEW AGE OF SOFTWARE DEVELOPMENT
An original presentation by David Wesst / @davidwesst

Prarie Dev Con 2013 - Saskatoon, SK
DAVID WESST

FROM WINNIPEG, MANITOBA
SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF
MEDICINE)
MICROSOFT MVP, INTERNET EXPLORER
IE USER AGENT USERAGENTS.IE
PRODUCER, BREWPUB STUDIOS
DAVID WESST

@DAVIDWESST ON TWITTER
DAVIDWESST.COM ON THE WEB
DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE
DW [AT] DAVIDWESST.COM ON EMAIL
FOLLOW ALONG

HTTP://DAVIDWESST.GITHUB.IO/DW-PRESENTATIONS
SLIDES AND DEMOS WILL BE POSTED
AFTERWARDS.
THE POINT

TO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE:
To see some new JavaScript tools
To understand how a JavaScript project can work
To bring you up-to-speed with JavaScript
THE POINT

THEME FOR THIS PRESENTATION

TO SHOW YOU THAT
JAVASCRIPT IS A REAL
OPTION
THE PLAN

A.K.A. THE AGENDA
Why JavaScript?
Survival Skills for the New Age of JavaScript
Modern Day JavaScript Projects
Source Control
JavaScript Code Today
Managing Dependencies
Test, Test, and Test Again
Building JavaScript
Next Steps
THE PLAN

SETTING YOUR EXPECTATIONS
This presentation is...
An overview of JavaScript modern development
A review of JavaScript development tools
A "core sample" of pure JavaScript development
A taste of things to come for JavaScript at DevTeach
THE PLAN

SETTING YOUR EXPECTATIONS
This presentation is not...
A 100% code-centric presentation
A lesson on JavaScript coding practices
A discussion on JavaScript ALM (Application Lifecycyle
Management)
A "deep-dive" into one or more specific JavaScript
technologies
WHY JAVASCRIPT?
WHY JAVASCRIPT?

COMMON ARGUMENTS ABOUT JAVASCRIPT
JAVASCRIPT IS FOR CLIENT-SIDE WEB DEVELOPMENT AND
NOTHING ELSE.
IT'S NOT AN OO LANGUAGE, SO I CAN'T USE IT FOR ANYTHING.
I DON'T PROGRAM FOR THE WEB, SO I DON'T NEED
JAVASCRIPT ANYWAY.
WHY JAVASCRIPT?

Image Source: Wikimedia Commons
JavaScript is for client-side web development
and nothing else.

NOT QUITE...
Web Browsers
Chrome Installed Apps / Chromium Apps
iOS, Windows Phone, Android (through PhoneGap)
Windows 8
Wii U
It's not an OO language, so I can't use it for
anything.

ACTUALLY, IT IS.
Prototype-based Language
Provides properties, classes, polymorphism, etc...
I don't program for the web, so I don't need
JavaScript anyway.

JAVASCRIPT LIVES OUTSIDE OF THE WEB
Windows Store Apps
Chromium and Firefox Apps
Wii U
PhoneGap
SURVIVAL SKILLS FOR
THE NEW AGE OF
JAVASCRIPT
SURVIVAL SKILLS FOR THE NEW AGE OF
JAVASCRIPT
OPEN SOURCE IS YOUR FRIEND
SURVIVAL SKILLS FOR THE NEW AGE OF
JAVASCRIPT
PLAN AND CHOOSE YOUR PLATFORMS
SURVIVAL SKILLS FOR THE NEW AGE OF
JAVASCRIPT
UNDERSTAND YOUR HTML5
SURVIVAL SKILLS FOR THE NEW AGE OF
JAVASCRIPT
EXPLORE YOUR ENVIRONMENT(S)

Eclipse (Web Platform Tools, Aptana, Nodeclipse)
Visual Studio 2012/2013
WebMatrix
WebStorm
Cloud9 (http://c9.io)
MODERN DAY
JAVASCRIPT PROJECTS:
SOURCE CONTROL
HERE'S THE SECRET:

ANY SOURCE CONTROL
WILL DO!
BUT IN CASE YOU ARE GOING OPEN SOURCE
WITH YOUR PROJECT...
MODERN DAY JAVASCRIPT PROJECTS: SOURCE
CONTROL
A FEW CONSIDERATIONS FOR OPEN SOURCE PROJECTS
Visibility
Share-ability
Accessibility
MODERN DAY JAVASCRIPT PROJECTS: SOURCE
CONTROL
SOME OPTIONS

Github (http://github.com)
Bitbucket (http://bitbucket.org)
CodePlex (http://codeplex.com)
Google Code (http://code.google.com)
MODERN DAY
JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
MODERN DAY JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
COMPILERS

Provide solution to some common "issues" with JavaScript
More familiar syntax than JavaScript
Provides common keywords like "class" and "interface"
Compiles into optimized JavaScript
Makes OO programming easier to learn in JavaScript
MODERN DAY JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
COMPILERS

Popular Examples
CoffeeScript - Ruby Like Syntax
TypeScript - Superset of JavaScript
For more check out Altjs.org
DEMO: COMPILERS
TYPESCRIPT
MODERN DAY JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
MV* PATTERNS AND FRAMEWORKS
MVC, Model View Controller
MVVM, Model View ViewModel
MVP, Model View Presenter
MODERN DAY JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
MV* PATTERNS AND FRAMEWORKS

Backbone (http://backbonejs.org/)
Knockout (http://knockoutjs.com/)
AngularJS (http://angularjs.org/)
DEMO: MV* PATTERNS
AND FRAMEWORKS
KNOCKOUTJS
MODERN DAY JAVASCRIPT PROJECTS:
JAVASCRIPT CODE TODAY
ON THE SERVER WITH NODEJS

Runs JavaScript on the Server
Open Source Technology
Provides Asynchronous I/O, i.e. Non-Blocking I/O
DEMO: ON THE SERVER
WITH NODEJS
WALKING THROUGH NODEJS
MODERN DAY
JAVASCRIPT PROJECTS:
MANAGING
DEPENDENCIES
MODERN DAY JAVASCRIPT PROJECTS:
MANAGING DEPENDENCIES
REQUIREJS

Allows you to define and load JavaScript modules
Removes need for "script" tags to define dependencies
Runs JavaScript ONLY when dependencies are loaded
DEMO: MANAGING
DEPENDENCIES
REQUIREJS
MODERN DAY JAVASCRIPT PROJECTS:
MANAGING DEPENDENCIES
NPM, NODE PACKAGED MODULES

Bundled with NodeJS
Define dependencies through package name or git repo
Throws errors when dependencies are not loaded properly
Define dependencies in package.json
DEMO: MANAGING
DEPENDENCIES

NPM, NODE PACKAGED MODULES
MODERN DAY
JAVASCRIPT PROJECTS:
TEST, TEST, AND TEST
AGAIN
MODERN DAY JAVASCRIPT PROJECTS: TEST,
TEST, AND TEST AGAIN
TESTING YOUR JAVASCRIPT

Large number of frameworks for tests
Apply TDD or BDD Practices
Mocking frameworks exist as well
Available for both client and server
MODERN DAY JAVASCRIPT PROJECTS: TEST,
TEST, AND TEST AGAIN
TESTING YOUR JAVASCRIPT: QUNIT

Developed by jQuery
Unit Testing Framework
No external dependencies (not even jQuery)
MODERN DAY JAVASCRIPT PROJECTS: TEST,
TEST, AND TEST AGAIN
TESTING YOUR JAVASCRIPT: JASMINE

BDD based framework
Resembles RSpec
No external dependencies
Provides multiple output channels for results
MODERN DAY JAVASCRIPT PROJECTS: TEST,
TEST, AND TEST AGAIN
TESTING YOUR JAVASCRIPT: MOCHA

BDD based framework
Resembles RSpec
Works with both client and server (NodeJS)
DEMO: TEST, TEST, AND
TEST AGAIN
MOCHA
MODERN DAY
JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT
MODERN DAY JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT

WHY "BUILD" YOUR
JAVASCRIPT?

WE AREN'T REALLY BUILDING ANYTHING...ARE WE?
MODERN DAY JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT

YOU ARE NOW.
MODERN DAY JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT

WHAT WE CAN TODAY DO TODAY WITH JAVASCRIPT
1.
2.
3.
4.

Get our source
Compile it (from TypeScript)
Setup dependencies
Test it
MODERN DAY JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT
SOME BUILDING SOLUTIONS

Travis-CI (Free for Open Source)
Jenkins
Whatever you want to execute CLI commands
DEMO: BUILDING
JAVASCRIPT
TRAVIS-CI
MODERN DAY JAVASCRIPT PROJECTS:
BUILDING JAVASCRIPT
GRUNT: THE JAVASCRIPT CLI TOOL

Open Source
Provides CLI to run common project actions
Allows you to define custom CLI actions
GRUNTJS.ORG
QUICK RECAP: THE PLAN
Why JavaScript?
Survival Skills for the New Age of JavaScript
Modern Day JavaScript Projects
Source Control
JavaScript Code Today
Managing Dependencies
Test, Test, and Test Again
Building JavaScript
Next Steps
QUICK RECAP: THE POINT

TO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE:
To see some new JavaScript tools
To understand how a JavaScript project can work
To bring you up-to-speed with JavaScript
QUICK RECAP: THE POINT
THEME FOR THIS PRESENTATION

TO SHOW YOU THAT
JAVASCRIPT IS A REAL
OPTION
NEXT STEPS
Where do we go from here?
NEXT STEPS
Go to the other JavaScript/HTML5 Presentations at PrDC
Make Your Own JavaScript Project
Leverage one of the tools in your exiting projects
Build a JavaScript Project
NEXT STEPS

CHECK OUT A RESOURCE
Douglas Crockford's Blog
JavaScript: The Good Parts
Checkout the npm (http://npmjs.org)
DAVID WESST

FROM WINNIPEG, MANITOBA
SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF
MEDICINE)
MICROSOFT MVP, INTERNET EXPLORER
IE USER AGENT USERAGENTS.IE
PRODUCER, BREWPUB GAMES
DAVID WESST

@DAVIDWESST ON TWITTER
DAVIDWESST.COM ON THE WEB
DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE
DW [AT] DAVIDWESST.COM ON EMAIL

Weitere ähnliche Inhalte

Was ist angesagt?

Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webChristian Heilmann
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Stephen Hay
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Stephen Hay
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsRasheed Waraich
 
Beg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without FlashingBeg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without Flashingspjwebster
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishHuge
 
Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Stephen Hay
 
Style Guide Best Practices
Style Guide Best PracticesStyle Guide Best Practices
Style Guide Best PracticesBrad Frost
 
WordPress: Doing Simply & Effectively
WordPress: Doing Simply & EffectivelyWordPress: Doing Simply & Effectively
WordPress: Doing Simply & Effectivelyarryaas
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDee Sadler
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceNicole Sullivan
 
Brad frost: Atomic design (Webdagene 2014)
Brad frost: Atomic design (Webdagene 2014)Brad frost: Atomic design (Webdagene 2014)
Brad frost: Atomic design (Webdagene 2014)webdagene
 
The Death of Lorem Ipsum & Pixel Perfect Content
The Death of Lorem Ipsum & Pixel Perfect ContentThe Death of Lorem Ipsum & Pixel Perfect Content
The Death of Lorem Ipsum & Pixel Perfect ContentDave Olsen
 
Building a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBuilding a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBenjamin LUPU
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?Kasra Khosravi
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaClark Davidson
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST APISimone D'Amico
 
Wordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile ApplicationsWordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile ApplicationsBenjamin LUPU
 

Was ist angesagt? (20)

Firefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-webFirefox OS - HTML5 for a truly world-wide-web
Firefox OS - HTML5 for a truly world-wide-web
 
Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012Responsive Design Workflow: Mobilism 2012
Responsive Design Workflow: Mobilism 2012
 
Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)Style Guides Are The New Photoshop (Smashing Conference 2012)
Style Guides Are The New Photoshop (Smashing Conference 2012)
 
Architecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web AppsArchitecture & Workflow of Modern Web Apps
Architecture & Workflow of Modern Web Apps
 
Beg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without FlashingBeg, Borrow or Steal: The Art of Flashing Without Flashing
Beg, Borrow or Steal: The Art of Flashing Without Flashing
 
Javascript State of the Union 2015 - English
Javascript State of the Union 2015 - EnglishJavascript State of the Union 2015 - English
Javascript State of the Union 2015 - English
 
Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012Responsive Design Workflow: Webshaped 2012
Responsive Design Workflow: Webshaped 2012
 
Style Guide Best Practices
Style Guide Best PracticesStyle Guide Best Practices
Style Guide Best Practices
 
WordPress: Doing Simply & Effectively
WordPress: Doing Simply & EffectivelyWordPress: Doing Simply & Effectively
WordPress: Doing Simply & Effectively
 
Dreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile designDreamweaver CS6, jQuery, PhoneGap, mobile design
Dreamweaver CS6, jQuery, PhoneGap, mobile design
 
Creating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve PerformanceCreating Living Style Guides to Improve Performance
Creating Living Style Guides to Improve Performance
 
Brad frost: Atomic design (Webdagene 2014)
Brad frost: Atomic design (Webdagene 2014)Brad frost: Atomic design (Webdagene 2014)
Brad frost: Atomic design (Webdagene 2014)
 
The Death of Lorem Ipsum & Pixel Perfect Content
The Death of Lorem Ipsum & Pixel Perfect ContentThe Death of Lorem Ipsum & Pixel Perfect Content
The Death of Lorem Ipsum & Pixel Perfect Content
 
Building a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKitBuilding a mobile app connected to WordPress with WP-AppKit
Building a mobile app connected to WordPress with WP-AppKit
 
Handle the error
Handle the errorHandle the error
Handle the error
 
Fewd week4 slides
Fewd week4 slidesFewd week4 slides
Fewd week4 slides
 
What Web Framework To Use?
What Web Framework To Use?What Web Framework To Use?
What Web Framework To Use?
 
Web Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @CygnismediaWeb Application Development Process presented by @Cygnismedia
Web Application Development Process presented by @Cygnismedia
 
Introduction to WordPress REST API
Introduction to WordPress REST APIIntroduction to WordPress REST API
Introduction to WordPress REST API
 
Wordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile ApplicationsWordpress as a Back Office for Mobile Applications
Wordpress as a Back Office for Mobile Applications
 

Ähnlich wie JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK

SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXMark Rackley
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsJAX London
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?jbandi
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS UniverseStefano Di Paola
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...DevDay.org
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutionsAndrea Tino
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | IntroductionJohnTaieb
 
Step by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For BeginnersStep by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For Beginnerscalltutors
 
Java Development Company | Xicom
Java Development Company | XicomJava Development Company | Xicom
Java Development Company | XicomRyanForeman5
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Matt Raible
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applicationshchen1
 
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015AboutYouGmbH
 
React - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCReact - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCStfalcon Meetups
 
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...Edureka!
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteChristian Heilmann
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekDr. Felix Raab
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Matt Raible
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Matt Raible
 
Anyone Can Code: JavaScript - 6/24/2014
Anyone Can Code: JavaScript - 6/24/2014Anyone Can Code: JavaScript - 6/24/2014
Anyone Can Code: JavaScript - 6/24/2014Joseph Mainwaring
 
JavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanJavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanAdam Boczek
 

Ähnlich wie JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK (20)

SharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFXSharePoint Conference North America - Converting your JavaScript to SPFX
SharePoint Conference North America - Converting your JavaScript to SPFX
 
Beyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate ApplicationsBeyond The Buzz: Pluggable JavaFX Corporate Applications
Beyond The Buzz: Pluggable JavaFX Corporate Applications
 
Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?Java & JavaScript: Best Friends?
Java & JavaScript: Best Friends?
 
(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe(In)Security Implication in the JS Universe
(In)Security Implication in the JS Universe
 
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
[DevDay2018] Javascript on the Rise - By Trang Tran, Co-founder & Manager at ...
 
Powerful tools for building web solutions
Powerful tools for building web solutionsPowerful tools for building web solutions
Powerful tools for building web solutions
 
Front End Development | Introduction
Front End Development | IntroductionFront End Development | Introduction
Front End Development | Introduction
 
Step by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For BeginnersStep by Step Guide on Essay Format in APA For Beginners
Step by Step Guide on Essay Format in APA For Beginners
 
Java Development Company | Xicom
Java Development Company | XicomJava Development Company | Xicom
Java Development Company | Xicom
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Angular Summit 2015
 
Developing Java Web Applications
Developing Java Web ApplicationsDeveloping Java Web Applications
Developing Java Web Applications
 
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
Rolando Santamaría Masó - Simplicity meets scalability - code.talks 2015
 
React - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVCReact - поглянемо по іншому на V в MVC
React - поглянемо по іншому на V в MVC
 
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...JavaScript Interview Questions and Answers | Full Stack Web Development Train...
JavaScript Interview Questions and Answers | Full Stack Web Development Train...
 
Quo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynoteQuo vadis, JavaScript? Devday.pl keynote
Quo vadis, JavaScript? Devday.pl keynote
 
Building a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one weekBuilding a full-stack app with Golang and Google Cloud Platform in one week
Building a full-stack app with Golang and Google Cloud Platform in one week
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Devoxx 2015
 
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
Get Hip with JHipster: Spring Boot + AngularJS + Bootstrap - Rich Web Experie...
 
Anyone Can Code: JavaScript - 6/24/2014
Anyone Can Code: JavaScript - 6/24/2014Anyone Can Code: JavaScript - 6/24/2014
Anyone Can Code: JavaScript - 6/24/2014
 
JavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin GermanJavaScript & Enterprise BED-Con 2014 Berlin German
JavaScript & Enterprise BED-Con 2014 Berlin German
 

Kürzlich hochgeladen

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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
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
 
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
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
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
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 

Kürzlich hochgeladen (20)

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
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
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
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
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
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
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
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
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)
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 

JavaScript Revolution - 5/Nov/13 - PrDC Saskatoon, SK

  • 1.
  • 2. THE JAVASCRIPT REVOLUTION THE NEW AGE OF SOFTWARE DEVELOPMENT An original presentation by David Wesst / @davidwesst Prarie Dev Con 2013 - Saskatoon, SK
  • 3. DAVID WESST FROM WINNIPEG, MANITOBA SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF MEDICINE) MICROSOFT MVP, INTERNET EXPLORER IE USER AGENT USERAGENTS.IE PRODUCER, BREWPUB STUDIOS
  • 4. DAVID WESST @DAVIDWESST ON TWITTER DAVIDWESST.COM ON THE WEB DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE DW [AT] DAVIDWESST.COM ON EMAIL
  • 6. SLIDES AND DEMOS WILL BE POSTED AFTERWARDS.
  • 7. THE POINT TO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE: To see some new JavaScript tools To understand how a JavaScript project can work To bring you up-to-speed with JavaScript
  • 8. THE POINT THEME FOR THIS PRESENTATION TO SHOW YOU THAT JAVASCRIPT IS A REAL OPTION
  • 9. THE PLAN A.K.A. THE AGENDA Why JavaScript? Survival Skills for the New Age of JavaScript Modern Day JavaScript Projects Source Control JavaScript Code Today Managing Dependencies Test, Test, and Test Again Building JavaScript Next Steps
  • 10. THE PLAN SETTING YOUR EXPECTATIONS This presentation is... An overview of JavaScript modern development A review of JavaScript development tools A "core sample" of pure JavaScript development A taste of things to come for JavaScript at DevTeach
  • 11. THE PLAN SETTING YOUR EXPECTATIONS This presentation is not... A 100% code-centric presentation A lesson on JavaScript coding practices A discussion on JavaScript ALM (Application Lifecycyle Management) A "deep-dive" into one or more specific JavaScript technologies
  • 13. WHY JAVASCRIPT? COMMON ARGUMENTS ABOUT JAVASCRIPT JAVASCRIPT IS FOR CLIENT-SIDE WEB DEVELOPMENT AND NOTHING ELSE. IT'S NOT AN OO LANGUAGE, SO I CAN'T USE IT FOR ANYTHING. I DON'T PROGRAM FOR THE WEB, SO I DON'T NEED JAVASCRIPT ANYWAY.
  • 14. WHY JAVASCRIPT? Image Source: Wikimedia Commons
  • 15. JavaScript is for client-side web development and nothing else. NOT QUITE... Web Browsers Chrome Installed Apps / Chromium Apps iOS, Windows Phone, Android (through PhoneGap) Windows 8 Wii U
  • 16. It's not an OO language, so I can't use it for anything. ACTUALLY, IT IS. Prototype-based Language Provides properties, classes, polymorphism, etc...
  • 17. I don't program for the web, so I don't need JavaScript anyway. JAVASCRIPT LIVES OUTSIDE OF THE WEB Windows Store Apps Chromium and Firefox Apps Wii U PhoneGap
  • 18. SURVIVAL SKILLS FOR THE NEW AGE OF JAVASCRIPT
  • 19. SURVIVAL SKILLS FOR THE NEW AGE OF JAVASCRIPT OPEN SOURCE IS YOUR FRIEND
  • 20. SURVIVAL SKILLS FOR THE NEW AGE OF JAVASCRIPT PLAN AND CHOOSE YOUR PLATFORMS
  • 21. SURVIVAL SKILLS FOR THE NEW AGE OF JAVASCRIPT UNDERSTAND YOUR HTML5
  • 22. SURVIVAL SKILLS FOR THE NEW AGE OF JAVASCRIPT EXPLORE YOUR ENVIRONMENT(S) Eclipse (Web Platform Tools, Aptana, Nodeclipse) Visual Studio 2012/2013 WebMatrix WebStorm Cloud9 (http://c9.io)
  • 24. HERE'S THE SECRET: ANY SOURCE CONTROL WILL DO! BUT IN CASE YOU ARE GOING OPEN SOURCE WITH YOUR PROJECT...
  • 25. MODERN DAY JAVASCRIPT PROJECTS: SOURCE CONTROL A FEW CONSIDERATIONS FOR OPEN SOURCE PROJECTS Visibility Share-ability Accessibility
  • 26. MODERN DAY JAVASCRIPT PROJECTS: SOURCE CONTROL SOME OPTIONS Github (http://github.com) Bitbucket (http://bitbucket.org) CodePlex (http://codeplex.com) Google Code (http://code.google.com)
  • 28. MODERN DAY JAVASCRIPT PROJECTS: JAVASCRIPT CODE TODAY COMPILERS Provide solution to some common "issues" with JavaScript More familiar syntax than JavaScript Provides common keywords like "class" and "interface" Compiles into optimized JavaScript Makes OO programming easier to learn in JavaScript
  • 29. MODERN DAY JAVASCRIPT PROJECTS: JAVASCRIPT CODE TODAY COMPILERS Popular Examples CoffeeScript - Ruby Like Syntax TypeScript - Superset of JavaScript For more check out Altjs.org
  • 31. MODERN DAY JAVASCRIPT PROJECTS: JAVASCRIPT CODE TODAY MV* PATTERNS AND FRAMEWORKS MVC, Model View Controller MVVM, Model View ViewModel MVP, Model View Presenter
  • 32. MODERN DAY JAVASCRIPT PROJECTS: JAVASCRIPT CODE TODAY MV* PATTERNS AND FRAMEWORKS Backbone (http://backbonejs.org/) Knockout (http://knockoutjs.com/) AngularJS (http://angularjs.org/)
  • 33. DEMO: MV* PATTERNS AND FRAMEWORKS KNOCKOUTJS
  • 34. MODERN DAY JAVASCRIPT PROJECTS: JAVASCRIPT CODE TODAY ON THE SERVER WITH NODEJS Runs JavaScript on the Server Open Source Technology Provides Asynchronous I/O, i.e. Non-Blocking I/O
  • 35. DEMO: ON THE SERVER WITH NODEJS WALKING THROUGH NODEJS
  • 37. MODERN DAY JAVASCRIPT PROJECTS: MANAGING DEPENDENCIES REQUIREJS Allows you to define and load JavaScript modules Removes need for "script" tags to define dependencies Runs JavaScript ONLY when dependencies are loaded
  • 39. MODERN DAY JAVASCRIPT PROJECTS: MANAGING DEPENDENCIES NPM, NODE PACKAGED MODULES Bundled with NodeJS Define dependencies through package name or git repo Throws errors when dependencies are not loaded properly Define dependencies in package.json
  • 42. MODERN DAY JAVASCRIPT PROJECTS: TEST, TEST, AND TEST AGAIN TESTING YOUR JAVASCRIPT Large number of frameworks for tests Apply TDD or BDD Practices Mocking frameworks exist as well Available for both client and server
  • 43. MODERN DAY JAVASCRIPT PROJECTS: TEST, TEST, AND TEST AGAIN TESTING YOUR JAVASCRIPT: QUNIT Developed by jQuery Unit Testing Framework No external dependencies (not even jQuery)
  • 44. MODERN DAY JAVASCRIPT PROJECTS: TEST, TEST, AND TEST AGAIN TESTING YOUR JAVASCRIPT: JASMINE BDD based framework Resembles RSpec No external dependencies Provides multiple output channels for results
  • 45. MODERN DAY JAVASCRIPT PROJECTS: TEST, TEST, AND TEST AGAIN TESTING YOUR JAVASCRIPT: MOCHA BDD based framework Resembles RSpec Works with both client and server (NodeJS)
  • 46. DEMO: TEST, TEST, AND TEST AGAIN MOCHA
  • 48. MODERN DAY JAVASCRIPT PROJECTS: BUILDING JAVASCRIPT WHY "BUILD" YOUR JAVASCRIPT? WE AREN'T REALLY BUILDING ANYTHING...ARE WE?
  • 49. MODERN DAY JAVASCRIPT PROJECTS: BUILDING JAVASCRIPT YOU ARE NOW.
  • 50. MODERN DAY JAVASCRIPT PROJECTS: BUILDING JAVASCRIPT WHAT WE CAN TODAY DO TODAY WITH JAVASCRIPT 1. 2. 3. 4. Get our source Compile it (from TypeScript) Setup dependencies Test it
  • 51. MODERN DAY JAVASCRIPT PROJECTS: BUILDING JAVASCRIPT SOME BUILDING SOLUTIONS Travis-CI (Free for Open Source) Jenkins Whatever you want to execute CLI commands
  • 52.
  • 54. MODERN DAY JAVASCRIPT PROJECTS: BUILDING JAVASCRIPT GRUNT: THE JAVASCRIPT CLI TOOL Open Source Provides CLI to run common project actions Allows you to define custom CLI actions
  • 56. QUICK RECAP: THE PLAN Why JavaScript? Survival Skills for the New Age of JavaScript Modern Day JavaScript Projects Source Control JavaScript Code Today Managing Dependencies Test, Test, and Test Again Building JavaScript Next Steps
  • 57. QUICK RECAP: THE POINT TO ACCOMPLISH ONE OF THESE BEFORE YOU LEAVE: To see some new JavaScript tools To understand how a JavaScript project can work To bring you up-to-speed with JavaScript
  • 58. QUICK RECAP: THE POINT THEME FOR THIS PRESENTATION TO SHOW YOU THAT JAVASCRIPT IS A REAL OPTION
  • 59. NEXT STEPS Where do we go from here?
  • 60. NEXT STEPS Go to the other JavaScript/HTML5 Presentations at PrDC Make Your Own JavaScript Project Leverage one of the tools in your exiting projects Build a JavaScript Project
  • 61. NEXT STEPS CHECK OUT A RESOURCE Douglas Crockford's Blog JavaScript: The Good Parts Checkout the npm (http://npmjs.org)
  • 62. DAVID WESST FROM WINNIPEG, MANITOBA SYSTEMS ANALYST, UNIVERSITY OF MANITOBA (FACULTY OF MEDICINE) MICROSOFT MVP, INTERNET EXPLORER IE USER AGENT USERAGENTS.IE PRODUCER, BREWPUB GAMES
  • 63. DAVID WESST @DAVIDWESST ON TWITTER DAVIDWESST.COM ON THE WEB DAVIDWESST.COM/BLOG ON THE BLOGOSPHERE DW [AT] DAVIDWESST.COM ON EMAIL