At Ruby Midwest, Andy Hunt gave a great keynote talk about the definition of Agile:

Agile Undefined
I remember back when I first started practicing “Agile”, and understanding to be Agile is to embrace change.
In this talk, Andy defocuses on practice and re-emphasizes embracing change. It definitely brought up some questions that are worth addressing with my team. We meet weekly to dissect our current practices to improve, I think lately we have stopped asking some hard questions.
- Are we happy with the current process?
- What can we do to make the process better?

nano and server side document updates
I would like to announce that nano a nodejs couchdb driver now supports CouchDb Document Update Handlers
nano is a minimalistic couchdb driver for nodejs
https://github.com/dscape/nano
CouchDb Document Update Handler is a way to add partial updates to couchdb documents via server side updates. This means that you do not have to first get the whole document make the change and then make a change and finally put the document on the server, if a changed occurred during this process, you would need to get the latest revision and attempt the update again. This process is great for most operations, but I needed a way to perform server side updates. The project is called cloudq, which is a high performance atomic and persistent job queue completely on nodejs and couchdb.
cloudq needs each job to move from queued to reserved and then return to the worker for action. And it is important to get the next document in the queue and update the state from queued to reserved as fast as possible.
CouchDb has the ability to build a Document Update Handler, similar to a View, you can add this handler to a design document. Then you can execute the Document Updater by performing a put and passing the document id, and a querystring. Here is an example of an in-place document updater from the CouchDb Wiki:
http://wiki.apache.org/couchdb/Document_Update_Handlers
"updates": {
"in-place" : "function(doc, req) {
var field = req.query.field;
var value = req.query.value;
var message = 'set '+field+' to '+value;
doc[field] = value;
return [doc, message];
}"
}
This in-place Document Handler allows you to pass a field and value to update a document. Now in nano you can simply run:
@db.updateWithHandler("my_design_doc", "in-place", "<doc_name>",
{ field: "foo", value: "bar" }, function(e,b) { console.log(b); });
You can do much more with document handlers, like bumping counters, or return xml see more.
Thanks again to @dscape for the nano https://github.com/dscape/nano project, it is the perfect couchdb driver for NodeJs.
Thanks again to @mikeal for the request https://github.com/mikeal/request module.
Thanks to @ryah for the creation of nodejs https://github.com/joyent/node
This is a great talk on how github does application development process!
On Dec 9, 2011, the Chief Information Officer of the US released a 25 point plan to reform Government IT:
http://www.cio.gov/documents/25-point-implementation-plan-to-reform-federal%20it.pdf
Here are some highlights of the document:
- Turnaround or terminate at least one-third of underperforming projects in IT portfolio within the next 18 months
- Shift to “Cloud First” policy . Each agency will identify three “must move” services within three months, and move one of those services to the cloud within 12 month and the remaining two within 18 months .
- Reduce number of Federal data centers by at least 800 by 2015
- Only approve funding of major IT programs that:
- Have a dedicated program manager and a fully staffed integrated program team
− Use a modular approach with usable functionality delivered every six months
− Use specialized IT acquisition professionals
My Opinion
After briefly reviewing the document, I read modular development as Agile Development Practices. If this is the case I applaud the CIO of the US in acknowledging that Waterfall does not work!
Information technology should enable government to better serve the American people . But despite spending more than $600 billion on information technology over the past decade, the Federal Government has achieved little of the productivity improvements that private industry has realized from IT . Too often, Federal IT projects run over budget, behind schedule, or fail to deliver promised functionality . Many projects use “grand design” approaches that aim to deliver functionality every few years, rather than breaking projects into more manageable chunks and demanding new functionality every few quarters . In addition, the Federal Government too often relies on large, custom, proprietary systems when “light technologies” or shared services exist .
— 25 Point Implementation Plan to Reform Federal IT - Vivek Kundra - CIO USA
Filed under cloud agile
New Release of get-post!
Verson 0.1.0
This version refines the api and now the library can be used via command line or inside a node module.
How to use get-post?
Using the “GET” command is easy, and simply returns json from the endpoint.
Once installed via global node modules path, then you should be able to open a
terminal and type:
get
And receive this:

Just follow the example:
get http://twitter.com/search.json?q=nodejs
POST
Using the POST has been modified to take a stream of JSON as input instead of having
to type the json document in the console.
cat my.json | post http://echo-json.heroku.com
How to Install
npm install get-post -g
Github
https://twilson63@github.com/twilson63/get-post