Upgrading Ghost to 0.5

Ghost just released a new version with a number of nice features and improvements. You can read more here: http://blog.ghost.org/ghost-0-5/ If you might have used a Ghost blog site dev workflow such as I explained in my Ghost Workflow post, it's nice to know that nothing…

Moving user state to the browser

Thanks to HTML5's Local Storage, it is now much more feasible to move your entire site's user state to the browser client. User state What is "user state" anyway? In the case of a typical e-commerce site, this would include the user's shopping cart, and any partially completed forms in…

The HTML5 Approach

The term "HTML5" might seem to relate most directly to HTML- a site's layout and user interface. But the most dramatic implications of HTML5 relate to web application architecture. The HTML5 Web App An HTML5 web app employs some or all of the following emerging technology standards: HTML5 tags- new…

Using recursion to tame callback hell

Asynchronous programming with JavaScript can lead to what is disparagingly termed "callback hell." I feel that Node.js beginners are told far too often that the only way to accomplish asynchronous JavaScript is to use an async library. In my experience, solving relatively simple async problems is the best way…

Why async?

Node's asynchronous (non-blocking) model is the most challenging hurdle to learning Node, but is also the fundamental reason Node is so compelling. This new "parallel programming" technique is a consequence of Node's inherently "event-driven" approach which naturally fosters efficient and scalable solutions for I/O intensive server applications. Procedural programming…

Understanding Node.js

This introduction to Node.js is for those who have experience creating web sites and applications using server-based solutions such as PHP, ASP, or .NET, etc. Moving from IIS and Apache As someone who has implemented many server-based web solutions, from e-commerce to integrated corporate financial systems, I hope to…