This article has been given a more permanent home on my blog. Also, since it was first written, the development of the Promises/A+ specification has made the original emphasis on Promises/A seem somewhat outdated.
Promises are a software abstraction that makes working with asynchronous operations much more pleasant. In the most basic definition, your code will move from continuation-passing style:
getTweetsFor("domenic", function (err, results) {
// the rest of your code goes here.
This is a quick rundown of how and why we use YUI3 grids at App.net
As far as I can tell there are three types of CSS grids: a static-width pre-defined grid, a flexible-width pre-defined grid, and a generative grid. In the first two grids (pre-defined width), you basically decide how many columns you have across the screen, and then create blocks in any multiple of those. This pattern often looks like "span-4", "span-6", "pull-10", "push-5", etc. You find this style in popular frameworks like Bootstrap and Blueprint.
The third way, the generative/recursive grid system, doesn't seem to be as popular as the others. I am not entirely sure why, because the generative grid can pack more punch in less lines. In this vein is there is OOCSS and YUI3 CSS Grids.
Locate the section for your github remote in the .git/config
file. It looks like this:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@github.com:joyent/node.git
Now add the line fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
to this section. Obviously, change the github url to match your project's URL. It ends up looking like this:
I think the goal should be to replace Express with Y.App. Express does:
- Routing
- Redirection
- Environment configuration
- View templating and rendering
- Everything Connect does
Routing and redirection are very much in the scope of Y.Router/Y.App. Environment configuration is in the scope of YUI. View templating and rendering are also covered. Rendering of static files, middleware, logging, caching, cookies, compression, etc are all covered by Connect. So... Shouldn't the goal be to make Y.App work nicely with Connect?
This document lays out some baseline expectations between conference speakers and conference presenters. The general goal is to maximize the value the conference provides to its attendees and community and to let speakers know what they might reasonably expect from a conference.
We believe that all speakers should reasonably expect these things, not just speakers who are known to draw large crowds, because no one is a rockstar but more people should have the chance to be one. We believe that conferences are better -- and, dare we say, more diverse -- when the people speaking are not just the people who can afford to get themselves there, either because their company paid or they foot the bill themselves. Basically, this isn't a rock show rider, it's some ideas that should help get the voices of lesser known folks heard.
These expectations should serve as a starting point for discussion between speaker and organizer. They are not a list of demands; they are a list of rea
views : { | |
GoalListView : { | |
type : NS.GoalListView, | |
requires : [ 'Person', 'CategoryList', 'GoalList', 'NoteList' ], | |
preserve : true | |
} | |
}, | |
showGoalView : function(req, res, next) { | |
this.handleView('GoalListView', req, res, next); |
/*! | |
Copyright (c) 2012 Ryan Grove. All rights reserved. | |
Redistribution and use of this software in source and binary forms, with or | |
without modification, are permitted provided that the following conditions are | |
met: | |
* Redistributions of source code must retain the above copyright notice, this | |
list of conditions and the following disclaimer. |
As I worked with Y.App
it became clear that while Y.View
is a great abstraction it would be easy to overwhelm a single instance with way too much functionality. This is my attempt to solve that issue by allowing multiple child views to be attached to a single parent view via an extension.
The extension is mixed into the parent view like any other extension using Y.Base.create
.
var Parent = Y.Base.create("view", Y.View, [