Skip to content

Instantly share code, notes, and snippets.

View moschel's full-sized avatar

Brian Moschel moschel

View GitHub Profile
title tags author lead layout
CanJS 2.0 Release Notes
open-source canjs
justinbmeyer
Today we're happy to announce the latest major release of CanJS.
post

CanJS 2.0 is out! It packs new features that advance CanJS' mission to make JavaScript application development even easier. This article will introduce the changes. It brings:

Error in user YAML: (<unknown>): could not find expected ':' while scanning a simple key at line 5 column 1
--- 
title: Weekly Widget 7 - Computes and Sliders
tags: open-source canjs
author: justinbmeyer
lead: Learn why can.compute is the last API you will ever need as we explore using it
in a slider.
layout: post
---

Computes are amazing, especially when

CanJS and Backbone both provide structure for JavaScript applications through an MVC-like pattern.

CanJS

CanJS is a lightweight MVC framework built to provide structure for JavaScript applications. It is aimed at developers of any library who need a battle-hardened library that makes building complex applications easy. It is part of a larger offering named JavaScriptMVC from Bitovi (its creators) that has documentation, testing and dependency management tools.

Backbone

Backbone is a flexible, minimalist solution for seperating concerns in a JavaScript application. It provides just a little bit of structure to a jQuery application and has largely attracted developers who know just enough jQuery to get by and now want to organize their code a bit more.

@moschel
moschel / more.md
Created February 8, 2013 23:49 — forked from justinbmeyer/more.md
title tags author lead layout
Weekly Widget 4 - Paginated Grid
open-source jquerypp
justinbmeyer
Learn to use jQuery++'s $.Range to create content aware show / hide buttons.
post

This week's widget demonstrates the awesome power of jQuery++'s range helper. $.Range

@moschel
moschel / proxy.js
Created November 9, 2011 06:46
Funcunit proxy
var fs = require('fs'),
path = require('path'),
http = require('http'),
host = '',
port = 80,
localport = 9999
// parse out command line options
process.argv.forEach(function(val) {
if (val.indexOf('--host') == 0) {
@moschel
moschel / TemplatedEventBinding.md
Created October 18, 2011 05:57 — forked from justinbmeyer/TemplatedEventBinding.md
Templated Event Binding

3.2's $.Controller - Templated Event Binding Goodness

JavaScriptMVC 3.2 brings a lot of great features and enhancements. So many features that changes to $.Controller didn't make the cut for our upcoming 3.2 article. This article reviews 3.2's $.Controller and talks about templated event binding (something we neglected to write up for 3.1).

Bind and Memory Leaks

Neglecting to unbind event handlers is the easiest way to create memory leaks. This is extremely common in an MVC architecture as you constantly listen for model changes:

Task.bind('created', function(ev, newTask){

// add task to list

@moschel
moschel / deferreds.md
Created October 12, 2011 22:07 — forked from justinbmeyer/deferreds.md
Deferreds and 3.1

3.1 Backlog - Deferreds

jQuery 1.6 brought Deferred support. They are a great feature that promise to make a lot of asynchronous functionality easier to write and manage. But many people struggle with uses other than 'waiting for a bunch of Ajax requests to complete'. For JavaScriptMVC 3.1, we identified an extremely common but annoying practice that becomes a one-liner with deferreds: loading data and a template and rendering the result into an element.

@moschel
moschel / $.View.md
Created May 30, 2011 00:20 — forked from jupiterjs/$.View.md
$.View for Alex MacCaw's Book

$.View - Client Side Templates

JavaScriptMVC's views are really just client side templates. Client side templates take data and return a string. Typically, the strings are HTML intended to be inserted into the DOM.

$.View is a templating interface that takes care of complexities using templates:

  • Convenient and uniform syntax
  • Template loading from html elements or external files
  • Synchronous or asynchronous template loading
  • Template preloading
@moschel
moschel / JavaScriptMVC.md
Created May 29, 2011 03:04 — forked from jupiterjs/JavaScriptMVC.md
JavaScriptMVC Overview

The following is a VERY rough draft of an article I am working on for Alex MacCaw's @maccman's Book. It is very rough, but even now a worthwhile read. Suggestions / comments are very welcome! Please help me :-)

Introduction

JavaScriptMVC (JMVC) is an open-source jQuery-based JavaScript framework. It is nearly a comprehensive (holistic) front-end development framework, packaging utilities for testing, dependency management, documentation, and a host of useful jQuery plugins.

Yet every part of JavaScriptMVC can be used without every other part, making the library lightweight. Its Class, Model, View, and Controller combined are only 7k minified and compressed, yet even they can be used independently. JavaScriptMVC's independence lets you start small and scale to meet the challenges of the most complex applications on the web.

This chapter covers JavaScriptMVC's $.Class, $.Model, $.View, and $.Controller. The following describes each component:

@moschel
moschel / JavaScriptMVC.md
Created March 27, 2011 18:56 — forked from jupiterjs/JavaScriptMVC.md
JavaScriptMVC Overview

Introduction

JavaScriptMVC is an open-source jQuery-based JavaScript framework. It is nearly a comprehensive (holistic) front-end development framework; packaging utilities for:

  • testing
  • dependency management
  • error reporting
  • package management
  • code cleaning
  • custom events