Search

11/30/2010

停車入庫



非字形停車位
1. 距離1.5M處


2. 格一個車位的車位中間, 往左打滿, 車頭正時, 馬上打滿


一字形停車位
1. 距離 50cm 處


2. 當右車鏡對準旁車B柱, 向右打滿


3. 當車和旁車夾45度角時, 往左打滿, 繼續倒車

11/27/2010

sproutcore icons

http://demo.sproutcore.com/sample_controls/

11/25/2010

Chicago Pizza Factory Taiwan 芝加哥披薩

Chicago Pizza Factory Taiwan 芝加哥披薩
Chicago Pizza Factory Taiwan
Add : 台北市建國南路二段11巷1號1樓
Tel : 02-2707-2121
營業時間 : 11:00am ~ 8:00pm (全年無休)

11/19/2010

JavaScript Mixins

JavaScript Mixins


var Mixin = function() {};
Mixin.prototype = {
serialize: function() {
var output = [];
for(key in this) {
output.push(key + ': ' + this[key]);
}
return output.join(', ');
}
};



augment(Author, Mixin);

var author = new Author('Ross Harmes', ['JavaScript Design Patterns']);
var serializedString = author.serialize();

11/10/2010

Learning Javascript with Object Graphs - How To Node - NodeJS

Learning Javascript with Object Graphs - How To Node - NodeJS

Backbone.js

Backbone.js


Introduction

When working on a web application that involves a lot of JavaScript, one of the first things you learn is to stop tying your data to the DOM. It's all too easy to create JavaScript applications that end up as tangled piles of jQuery selectors and callbacks, all trying frantically to keep data in sync between the HTML UI, your JavaScript logic, and the database on your server. For rich client-side applications, a more structured approach is helpful.

With Backbone, you represent your data as Models, which can be created, validated, destroyed, and saved to the server. Whenever a UI action causes an attribute of a model to change, the model triggers a "change" event; all the Views that display the model's data are notified of the event, causing them to re-render. You don't have to write the glue code that looks into the DOM to find an element with a specific id, and update the HTML manually — when the model changes, the views simply update themselves.

Backbone.Events

Events is a module that can be mixed in to any object, giving the object the ability to bind and trigger custom named events. Events do not have to be declared before they are bound, and may take passed arguments. For example:

var object = {};

_.extend(object, Backbone.Events);

object.bind("alert", function(msg) {
alert("Triggered " + msg);
});

object.trigger("alert", "an event");

Bind a callback function to an object. The callback will be invoked whenever the event (specified by an arbitrary string identifier) is fired. If you have a large number of different events on a page, the convention is to use colons to namespace them: "poll:start", or "change:selection"

Callbacks bound to the special "all" event will be triggered when any event occurs, and are passed the name of the event as the first argument. For example, to proxy all events from one object to another:


proxy.bind("all", function(eventName) {
object.trigger(eventName);
});

unbind

object.unbind("change", onChange); // Removes just the onChange callback.
object.unbind("change"); // Removes all "change" callbacks.
object.unbind(); // Removes all callbacks on object.

Backbone.Model
Models are the heart of any JavaScript application, containing the interactive data as well as a large part of the logic surrounding it: conversions, validations, computed properties, and access control. You extend Backbone.Model with your domain-specific methods, and Model provides a basic set of functionality for managing changes.

The following is a contrived example, but it demonstrates defining a model with a custom method, setting an attribute, and firing an event keyed to changes in that specific attribute. After running this code once, sidebar will be available in your browser's console, so you can play around with it.

var Sidebar = Backbone.Model.extend({
promptColor: function() {
var cssColor = prompt("Please enter a CSS color:");
this.set({color: cssColor});
}
});
window.sidebar = new Sidebar;
sidebar.bind('change:color', function(model, color) {
$('#sidebar').css({background: color});
});

sidebar.set({color: 'white'});
sidebar.promptColor();



Web applications often choose to change their URL fragment (#fragment) in order to provide shareable, bookmarkable URLs for an Ajax-heavy application. Backbone.Controller provides methods for routing client-side URL fragments, and connecting them to actions and events.

Backbone controllers do not yet make use of HTML5 pushState and replaceState. Currently, pushState and replaceState need special handling on the server-side, cause you to mint duplicate URLs, and have an incomplete API. We may start supporting them in the future when these issues have been resolved.


Backbone.js Tutorial - by noob for noobs