Advertise here with BSA
Some of us are already familiar with Node.js and for some others, it is probably "another new development tool/language/standard that is getting popular but what the heck..".
Node.js is really getting popular + being used more and more each day and it deserves this attention with the flexibility and performance if offers.
What is Node.js?
In a single definition: Node.js is a server-side JavaScript environment that uses an asynchronous event-driven model.
JavaScript is mostly ran/rendered on the client-side, in the browsers. However, Node.js is a server-side JavaScript interpreter and allows us to handle and make requests via JavaScript.
It is so fast as the engine is powered by the Google's V8 JavaScript Engine, runs under a single thread and every I/O operation is asynchronous which means no waiting for I/O operations of other requests.
A Node.js application can handle thousands of concurrent connections with minimum resource usage
Also, the ability to share code between the server and client-side is another plus. For ex: you can easily run the same form validation code on both sides.
It is not alone in the world of server-side JavaScript as there are other solutions like Aptana Jaxer, Ringo, Narwhal or EJScript. And, running JavaScript in the server is not something new as well considering classic ASP with IIS can do that too. But, things running asynchronously changes many things.
How to learn Node.js?
There are already a good number of tutorials and (e)books on Node.js. Here are some great ones to start with:
There are many modules and resources to easily get going with Node.js. Also, some great open source applications built with it. Here they are:
Node Development
The popular package manager for Node.js which can be used for installing and publishing Node programs.
Also, it can manage dependencies and the website has a package-search-engine.
A remote debugging tool built with Node.js and Socket.io which enables your mobile application to send/receive messages from other connected devices (mostly mobile in this case) to your desktop browser.
P.S. It was previously mentioned at WRD.
Socket.IO brings WebSockets real-time communications to every browser whether they support it or not.
It has several transport methods like WebSockets, Adobe® Flash® Socket or JSONP Polling and the best method for the client's browser is selected automatically.
A set of tools for so easy publish-subscribe messaging between web clients.
It comes with easy-to-use message routing servers for Node.js + Rack applications and clients that can be used on the server + in the browser.
Pubsub.io adds the interface of a database to a publish subscribe system.
You subscribe to queries, can preform select statement and even control the frequency of datas.
A PDF document generation library for NodeJS for creating basic-to-complex PDF files.
With a chainable API, complicated documents can be generated with only a few lines of code and it has support for vector graphics, images and custom fonts besides text.
A flexible NodeJS module for sending e-mails using SMTP or sendmail.
It can send attachments, embedded images, HTML with plain alternatives and has unicode support.
A lightweight framework for testing client-side JS code in a simulated environment.
A feature rich priority job queue for Node.js backed by Redis.
It has a plain and clean user-interface for viewing and managing queued, active, failed, and completed jobs.
A pure JavaScript framework for implementing LDAP clients and servers in Node.js.
It can accomplish most of the features of LDAP v3 RFC(s) and compatible with the protocol and OpenLDAP.
Node.js Riak client with support for HTTP and Protocol Buffers.
A set of Node.js bindings for MySQL and Drizzle.
You can build manual SQL queries, or use the wrapper methods that include auto-escaping
A fast, high-level Redis library for Node.JS that exposes an accessible and extensible interface to the Redis data types.
Redback comes bundled with advanced Redis structures such as the Social Graph, Full Text Index, or Rate Limiter. You can also build your own Redis-backed structures with ease.
Node.js Frameworks
Flatiron comes with simple to use yet full featured components and lets developers add/remove what they want.
The components include routing, templating, middleware/request handling and more.
A fast and flexible web development framework for NodeJS that is inspired from Sinatra.
It comes with routing, redirection helpers, dynamic view helpers, content negotiation and much more.
Geddy is a modular and complete web framework for Node.js. It eases serving RESTful resources in any format (HTML, JSON or XML).
It also handles EJS templating, with recursive partials support.
It is a Node.JS MVC framework based on ExpressJS and allows building web applications in a similar manner as in Ruby On Rails.
RailwayJS has resource-based routing, JugglingDB ORM, Coffee-script support and more.
SocketStream is a new full stack web framework and distributed hosting platform built around the Single-page Application paradigm.
It uses HTML5 WebSockets, Socket.IO, Redis and other techologies for providing a responsive experience for the web.
This is a behavior driven development framework for Node.js for testing asynchronous code.
It executes the tests in parallel when needed and sequentially when there are dependencies.
NodeQuery allows us to invoke jQuery API calls on the server and receive callbacks from the browser in real-time.
Simply, we can work with any DOM (to the extent that jQuery can) without having to serve up any client side JavaScript beyond jQuery and NodeQuery.
This is an an advanced modular web framework built on Node.js.
It can be used as a standalone static webserver, a basic routing framework, a multi-level apache-like routing system, as well as being modular enough to have the capability to completely switch out its routing engine.
Stylus is a robust language that provides an efficient, dynamic and expressive way to generate CSS.
It has support for mixins, variables, conditionals, built-in functions and much more.
A template engine that is inspired from Haml, has very nice readability and flexible indentation.
It has support for mixins, static includes and (optional) memory caching.
Open Source Node.js Apps
A statistics application that displays user activities on a website, like pageviews or custom events in real-time.
It works with the help of a tracking pixel and makes use of websockets besides Node.js.
Cube is a system for visualizing data of time series. It is built with NodeJS, , MongoDB and D3.
It has support for filtering events where events are sent to Cube in JSON.
A CMS application built with Node.js that is based on Express, Connect & Mongoose.
It is made up of modules which are loaded asynchronously (with the nature of Node.js).
There is an integrated scheduler and feed module that allows pulling any content + any module can expose restful endpoints which makes it easier to build your own API.
Log.io is a Node.js and Socket.io-powered log viewer which can display logs from multiple sources in real-time.
HUBOT is a bot written by the GitHub team to automatically handle regular tasks like posting images, translating languages, integrating with Google Maps, displaying Uptime Robot stats or any other custom task.
A full-featured web-based IDE which is mostly focused on JavaScript development.
It has syntax highlighting, an integrated debugger for Node.js and can be extended with plugins.
A web-based IDE built with Node.js that can display project files in a filetree, allows creating/deleting/renaming files and syntax highlighting.
It integrates with NPM and has an built-in Node.js documentation.
A NodeJS and PHP-powered chat application that has support for multiple rooms.
Its repository can be found here.
Vogue is a very useful and tiny web server that watches CSS files of web pages opened through it and tells browsers to reload the stylesheet once it is updated.
Simply, no more refreshes during CSS updates.
An event-driven e-mail server that supports can work as inbound and outbound.
It has various plugins for integrating with spam preventing algorithms, DNS blacklists and more.
Others
There are many other useful modules and tools for Node.js like:
And, these are not all as well. It is almost possible to find a resource on "everything Node.js" today.
So, don't fear that you can get stuck using Node.js on a project because there are not enough resources, tutorials or an active community. All of them exists out there.. and growing fast.
Special Downloads:
Ajaxed Add-To-Basket Scenarios With jQuery And PHP
Free Admin Template For Web Applications
jQuery Dynamic Drag’n Drop
ScheduledTweets
Advertisements:
Professional XHTML Admin Template ($15 Discount With The Code: WRD.)
Psd to Xhtml
SSLmatic – Cheap SSL Certificates (from $19.99/year)
Advertise here with BSA
A website toolbar is something that can beautify or uglify web pages depending on the solution used and how it is configured.
In order to improve the visibility of several things on WRD, last month, I have integrated, Skysa, a free-to-use (with paid plans) toolbar that can sit either in the header or footer of websites (check the footer>left of this page) and provides many features in a tiny space.
Skysa is loaded with many applications for social buttons, translating pages, content aggregating, announcements, polls, chat, games and more.
As the toolbar is highly-customizable, I have placed social buttons with the order I preferred, so readers would easily tweet, like or +1 WRD (and, it worked as expected, the amount of such social activities were much higher than the previous months).
And, with a minimalistic approach, only activated the social widgets, translate, "who is on" and scroll-to-top apps. Simply, the ones that will ease the way readers browse and use WRD.
The translate app is great, it remembers the choice of the reader and auto-translates any other pages that readers would visit. So as the "who is online". Besides an "online readers count", it displays them on a world map.
It is possible to track the usage on each application, how many times they are clicked, etc. and, from the statistics, I can easily tell that "they were actively used".
Skysa has an application gallery where you can browse, choose and activate quickly. Every app has its own customization options.
If you have a membership-based website, the app can integrate into that as well and use the profile info (name, photo, etc.) when needed.
For paid plans, it enables you to create custom applications, manage multiple toolbars and place ads inside it.
Also, worth mentioning, the color of everything inside the toolbar can be completely customized so that it will fit perfectly into any website.
Conclusion
The most exciting thing about a toolbar is its ability to "always staying inside the viewport". During this 1 month, Skysa proved me that it can help me use that space efficiently and it is a stable platform.
There is definitely a lot of room for improvement, new apps, more positioning options, etc. but Skysa is very solid at what it does. No problems faced during that month.
I can keep using the toolbar or not, but, if you in search of such a solution, I definitely suggest giving the application a try.
Special Downloads:
Ajaxed Add-To-Basket Scenarios With jQuery And PHP
Free Admin Template For Web Applications
jQuery Dynamic Drag’n Drop
ScheduledTweets
Advertisements:
Professional XHTML Admin Template ($15 Discount With The Code: WRD.)
Psd to Xhtml
SSLmatic – Cheap SSL Certificates (from $19.99/year)