background preloader

Rich JavaScript Applications – the Seven Frameworks (Throne of JS, 2012)

Rich JavaScript Applications – the Seven Frameworks (Throne of JS, 2012)
It’s no longer good enough to build web apps around full page loads and then “progressively enhance” them to behave more dynamically. Building apps which are fast, responsive and modern require you to completely rethink your approach. The premise was to take the seven top JavaScript frameworks/libraries for single-page and rich JavaScript applications — AngularJS, Backbone, Batman, CanJS, Ember, Meteor, Knockout, Spine — get the creators of all of them in one location, and compare the technologies head to head.* Disclaimer: I was there to represent Knockout, so obviously I’m not neutral. * Yes, I know that’s eight frameworks, not seven. TL;DR Executive Summary For many web developers, it’s now taken for granted that such client-side frameworks are the way to build rich web apps. Technologies: Agreement and Disagreement As each SPA technology was presented, some fairly clear patterns of similarity and difference emerged. Agreement: Progressive enhancement isn’t for building real apps. Meteor

Pedalboard.js by dashersw - Open-source JavaScript framework for developing audio effects for guitars Check out! It's pedalboard.js packaged as a product you can really use. Introduction Ever wanted to have your pedal stack in the cloud, available anywhere you go without any hardware? Pedalboard.js is a ground-breaking, first of its kind, novel open-source JavaScript framework for developing audio effects and applying them to sound sources–and it's particularly good at guitar effects. The API and all the abstraction is built around the concept of guitar effects — pedals and stomp boxes, pots and switches. You design your pedal with the powerful Web Audio API, attach pots and switches to it, style it via CSS3 and voila. Bring multiple pedals together to create a pedal board, easily adjust their settings and routing. Finally, a complete guitar effects stack, completely customizable, in your hands. Motivation What's worse, now that the freemium model is very popular, what looks like an easy initial buy turns into a small fortune when you'd like to buy the effects you wanted. Audio Nodes

20 JavaScript Frameworks Worth Checking Out The number of web applications being created and used has grown rapidly since the new millenium. And importantly, so has the sheer complexity of them -- specially on the front end. No more static pages, no sir! You have a ton of sections each interacting with each other and the server and yes, it's as complicated as it sounds and just as hard to pull off. If you think jQuery is the answer, you lose a cookie and get an F grade! Creating responsive, fluid, and maintainable interfaces for web apps isn't as easy as one would imagine -- there is data to be sent back to the server and the results parsed, data stores to be updated, views to be re-rendered and so much else that needs to be done in the background. The monstrous rise in the number of web apps being built recently has really made it apparent that we need better tools and frameworks and the devs have responded with a staggering amount of solutions. Sproutcore powers a lot of high profile apps including MobileMe amongst others.

DOM Enlightenment - Exploring the relationship between JavaScript and the modern HTML DOM EaselJS | A Javascript library that makes working with the HTML5 Canvas element easy. Recent Updates Follow @CreateJS November 2014 Updates in preparation for next release (coming soon).New class model, with big performance increases October 2014 Lots of bug fixes and pull requests.New 'Extras' folder in GitHub with useful tools and classes July 2014 Major overhaul of Graphics to include a useful command pattern, and a big performance increase.Added / unstore() The Story Why we built EaselJS About EaselJS EaselJS provides straight forward solutions for working with rich graphics and interactivity with HTML5 Canvas. Featured Projects Community Show & Tell. Ion Drift A port of the Flash game Ion Drift, b10b was able to build a CreateJS version in less than a day that hit target framerates on even the lowest devices, and outperformed ports to other libraries. By b10b b10b

felixge/faster-than-c 13 Awesome Javascript Libraries for HTML5 The growing popularity of HTML5 has created a boom in the development of JavaScript libraries that can integrate with HTML5. These libraries are easy to implement and can instantly provide a whole new level of power and control over an existing HTML 5 application. We put together a list of 13 awesome, light JS libraries to help you get your next HTML 5 application off and running. CreateJS is actually a suite of four different JavaScript libraries. WYSIHTML5 Is a lightweight rich text editor that can generate valid and semantic HTML5 markup. Fixie is a great way to add in the Latin filler text based on the interpreted HTML5 tag used. Sisyphus uses local storage to save your existing form input in the event of a browser crash. Kinetic JS aims to make content creation and manipulation in the canvas a much easier and faster experience. Paperfold uses CSS3 and JavaScript to create a neat visual effect of making divs appear like they are folding like paper. About the author Blog

reveal.js - The HTML Presentation Framework HTML Presentations Made Easy Created by Hakim El Hattab / @hakimel Heads Up reveal.js is a framework for easily creating beautiful presentations using HTML. You'll need a browser with support for CSS 3D transforms to see it in its full glory. Vertical Slides Slides can be nested inside of other slides, try pressing . Basement Level 1 Press down or up to navigate. Basement Level 2 Cornify Basement Level 3 That's it, time to go back up. Slides Not a coder? Point of View Press ESC to enter the slide overview. Hold down alt and click on any element to zoom in on it using zoom.js. Works in Mobile Safari Try it out! Marvelous Unordered List No order here Or here Or here Or here Fantastic Ordered List One is smaller than... Markdown support For those of you who like that sort of thing. <section data-markdown> For those of you who like that sort of thing. Transition Styles You can select from different transitions, like: Cube - Page - Concave - Zoom - Linear - Fade - None - Default Themes Global State Custom Events

Web-Drawing Throwdown: Paper.js Vs. Processing.js Vs. Raphael Advertisement Before drawing anything in a browser, ask yourself three questions: Do you need to support older browsers?If the answer is yes, then your only choice is Raphaël. It handles browsers all the way back to IE 7 and Firefox 3. Raphaël even has some support for IE 6, although some of its underlying technology cannot be implemented there.Do you need to support Android? Paper.js, Processing.js and Raphaël are the leading libraries for drawing on the Web right now. Choosing the right framework will determine the success of your project. All of the code in this article is open source and can be run on the demo page that accompanies this article. Overview It’s all JavaScript once the page runs, but the frameworks take different paths to get there. PaperScript is a JavaScript extension that makes it possible to write scripts that don’t pollute the global namespace. Processing.js is based on a framework named Processing, which runs in the Java Virtual Machine. Getting Started Paper.js: (al)

Limiting Function calls I’m frequently in a situation where I want to prevent a function from being called too quickly - for instance, when I want to run an expensive validation function on some input, but don’t want to run the function on every keyup. Most recently, I needed to prevent both ontouchdown and onclick from being called nearly simultaneously. A nice way to deal with this is to write a function that constructs functions that can only be called every n milliseconds. function trickle( fun , waitLength ) { var lastCalledAt = 0, context = this; return function(){ var now = (new Date()).getTime(); if (now > lastCalledAt + waitLength ) { lastCalledAt = now; fun.apply(context, arguments); } } } Now by passing a function into trickle(), I can easily prevent a function from being called too frequently, potentially significantly improving performance. Update:

DataGen: Generate Large Test Data Files – Like A Boss « Blog A couple of months ago I was doing some volume and performance testing against an application that was expecting a 500% data growth, which meant I had to generate lots and lots of dummy data to test whether the storage would hold up and whether the application itself would still perform well. I quickly came up with a script that loops through N times, generates dummy data, and creates an XML file. I left the script running while working on something else in parallel, and at the end the script finished after about a couple of hours. There were 3 issues with this approach: 1) It sure wasn’t going to be the last time I had to generate large test data. That’s why I wrote DataGen. Use npm to install: npm install -g datagen Ease of use You don’t need to know any scripting language, you only need to create templates to construct your test data in this structure: Start by creating example header, segment, and footer templates: datagen init Example header: Example segment: Example footer: