My OSCON 2014 Presentation and More
What an exciting week at OSCON? It’s extremely informative and fun! Just to name a few. Had great discussion and lunch with many web developers at OSCON JavaScript Junkie table. Participated at Code2Challenge activity at Microsoft Open Technologies booth. I also had the honor to present for over 200 open source developers at my favorite subject “Developing High Performance Websites and Modern Apps with JavaScript and HTML5”. Many of you have asked me to share my presentation with you so here is my slide deck and the overview of my talk.
My OSCON Presentation
Developing High Performance Websites and Modern Apps with JavaScript and HTML5
Creating high performance sites and apps is crucial for every developer. In this session, we will explore the best practices and performance tricks, including startup time, UI responsiveness, and Memory efficiency to make your apps running faster and fluid. Come learn the tips, tricks, and tools for maximizing the performance of your sites and apps with JavaScript and HTML5.
OSCON Presentation: Developing High Performance Websites and Modern Apps with JavaScript and HTML5 from Doris Chen
Take Away
Five principles to follow to write fast websites and modern apps:
•Principle#1: Stay lean – use less memory
•Principle#2: Use fast objects and do fast manipulations
•Principle#3: Write fast arithmetic
•Principle#4: Use fast arrays
•Principle#5: Do less (cross-subsystem) work
Related Resources
The resources listed below are very useful to do performance tuning.
Overview Concepts
- High Performance Websites Steve Souders, September 2007
- Event Faster Websites: Best Practices Steve Souders, June 2009
- High Performance Browser Networking Ilya Grigorik, September 2013
JavaScript Patterns
- High Performance JavaScript Nicholas Zakas, March 2010
- JavaScript the Good Parts Douglas Crockford, May 2008
- JavaScript Patterns Stoyan Stefanov, September 2010
- JavaScript Cookbook Shelley Powers, July 2010
Microsoft Guidance
- Windows Store App: JavaScript Best Practices MSDN, December 2012
- Performance Tricks to Make Apps & Sites Faster Jatinder Mann, Build 2012
- 50 Performance Tricks for Windows Store Apps Jason Weber, Build 2011
- Engineering Excellence Performance Guidance Jason Weber, EE Forum 2011
- Internet Explorer Architectural Overview Jason Weber, PDC 2011
W3C Web Performance
Blog Posts on Performance Measurement
- Measuring Performance with ETW/XPerf
- Measuring Performance in Lab Environments
- What Common Benchmarks Measure
Tools
I explored some labs at Code2Challenge activity at Microsoft Open Technologies booth. Open Sources developers will find the following Microsoft open source projects very interesting. Give a try and let us know what you think and best of all contribute to them.
Microsoft Open Source Projects
JavaScript Dynamic Content shim for Windows Store apps
Want to use all your favorite JavaScript libraries to create Windows Store apps? MS Open Tech is releasing the JavaScript Dynamic Content shim for Windows Store apps, an open source project that makes it easier for developers to use their favorite JavaScript frameworks to build Windows Store apps.
Developers can use a wide variety of JavaScript APIs to leverage the power and broad capabilities of Windows in Windows Store apps. In order to prevent unwanted access to the Windows Runtime, restrictions and measures restrictions and measures are set in place so that malicious script will not compromise an app's integrity. In some cases, however, this security model may prevent some JavaScript libraries to run as intended. A handful of popular, third-party libraries happen to use code which is flagged as unsafe, and therefore will not work as expected in Windows Store apps. These libraries include but are not limited to AngularJS , Ember.js , KnockoutJS. In order to unblock these setbacks, Microsoft Open Technologies (MS Open Tech) has released the JavaScript Dynamic Content shim for Windows Store apps. This mitigation relaxes the manner in which checks are performed, yet still achieves the fundamental goal set by the security model.
Multi-Device Hybrid Apps Extension for Visual Studio
Use Visual Studio and popular open source mobile cross-platform project Apache Cordova™ to easily build hybrid apps that run on iOS, Android, Windows, and Windows Phone using a single project based on HTML and JavaScript. Best of all, you get access to native Device APIs using only HTML, CSS, and JavaScript. The Visual Studio team has recently shipped a preview of the Multi-Device Hybrid Apps extension for Visual Studio 2013 that allows developing Web based hybrid applications with a single code base for Android, iOS, Windows Store and Windows Phone - all from Visual Studio.
The preview release of the Multi-Device Hybrid apps for Visual Studio can be downloaded here. You can also learn more about this new feature on MSDN.
Web developers used to integrating open source frameworks within their code should take comfort in knowing that they will be able to use popular open source front end frameworks such as Angular, BootStrap, Backbone, Underscrore and WinJS. To help developers get started with the extension, samples are available for Angular, Backbone and WinJS, in the form of a To-Do demo app.
Open sourced WinJS
MS Open Tech open sourced WinJS. The team is now working in the open on the Windows library for JavaScript, accepting community contributions. WinJS is also coming to Windows Phone 8.1 and Xbox One. That means that developers can deliver the same advanced, polished and modern user experience to a variety of browsers, including Chrome and Firefox, and to a variety of devices, including Windows, Windows Phone, Xbox One, iOS and Android.
WinJS powers many applications on the Windows Store like Skype, the Music app, Songza or the Seattle Sounders FC app (Go Sounders!). With WinJS developers can build polished web apps with media, animations and great interaction leveraging powerful features like Promises, Scheduler, data binding, and several well-designed, animated, touch-enabled user controls. They also have the option to combine WinJS with their favorite JavaScript libraries.
You can take WinJS code for a spin by visiting the “Try WinJS” site.