Monthly Archives: April 2015

DevOps in 2015 – Beyond Basic Metrics – CodeProject


DevOps has quickly become the buzzword du jour for the software industry and promotes something that many developers and IT Administrators don’t enjoy: collaboration. According to Wikipedia, “DevOps acknowledges the interdependence of software development, quality assurance, and IT operations“. By having all three arms of a technology department collaborating, software products and services can be produced with a high quality bar and operational efficiencies. In this article, we’ll review how IT operations can engage more with a customer’s experience and assist software development in isolating problems in a production environment with no code changes needed from the development engineers. We’ll use the AppDynamics Application Intelligence Platform to help illustrate how these synergies can drive a better product for customers

, 20 Apr 2015

Read “Understanding ECMAScript 6” from Leanpub

ECMAScript 6 reached feature complete status in 2014. The features vary widely from completely new objects and patterns to syntax changes to new methods on existing objects. The exciting thing about ECMAScript 6 is that all of these changes are geared towards problems that developers are actually facing. And while it will still take time for adoption and implementation to reach the point where ECMAScript 6 is the minimum that developers can expect, there’s a lot to be gained from a good understanding of what the future of JavaScript looks like.

ECMAScript 6 reached feature complete status in 2014. The features vary widely from completely new objects and patterns to syntax changes to new methods on existing objects. The exciting thing about ECMAScript 6 is that all of these changes are geared towards problems that developers are actually facing. And while it will still take time for adoption and implementation to reach the point where ECMAScript 6 is the minimum that developers can expect, there’s a lot to be gained from a good understanding of what the future of JavaScript looks like.

Eskimo – Node Boilerplate Framework for Rapid MVP’s

@niftylettuce –

Eskimo – Node Boilerplate Framework for Rapid MVP’s

 


August 2014

Introducing Eskimo

Eskimo

If an eskimo builds an igloo, and an igloo is a structure made up of individual building blocks, then eskimo is a command line interface (“CLI”) used for building an igloo.

Eskimo is a new Node.js boilerplate for building Rapid MVP’s (“RMVP’s”).

Launched at a NYC Node.js Meetup held at Microsoft on August 27, 2014.

Problems

Cluttered community

Boilerplates

Despite an abundance of boilerplates and frameworks (“project starters”), the Node community lacks an up-to-date, opinionated, simple, modular, and minimal project starter (specifically for building RMVP’s with). Projects start off small and opinionated by one person, but then they become influenced by contributors and grow to unmaintainable proportions. Searching on Google and GitHub for “node boilerplates” or “node frameworks” yields hundreds of results.

Sails/Locomotive !== Express 4.x

Express 3 vs. 4

Due to heavy reliance on connect in express 3.x, the projects have become outdated and do not abide by the concept of “use individual components” (sails ## and locomotive ##).

Lack of automation and best-practices

Best Practices

Many project starters lack automation for testing and production deployments. Several ignore front-end best-practices such as having an asset pipeline (uglify/minify/optimize assets) and don’t utilize Bower, Bootstrap, Font Awesome, S3/CloudFront, clustering, andLESS.

App structure and code re-usability

Electrolyte

Currently no frameworks nor boilerplates have implemented dependency injection usingelectrolyte (other than eskimo, with exception of Jared Hanson’s projects as far as I know.

Catonmat

Most applications structure their code by passing around global objects to exported functions, or simply have global variables (which is bad practice). For example, here’s how many some project starters are structured using global objects:

Solution

Eskimo

Install

Install Eskimo

Usage

Usage for Eskimo

Simple scaffolding

Built with commander and inspired by yo, the eskimo CLI provides a command create to scaffold a new RMVP and model, view, and controller commands to scaffold a newmongoose schema, jade template, and route middleware respectively.

Highly opinionated

In order to stay focused, one direction across the front-end and back-end must be taken with a project starter. Having support in the CLI for all templating languages, all ORM’s for building schemas, SQL, NoSQL, etc. is too much to maintain. However, support for swapping out anything that is default is required. One templating language (jade), one ORM (mongoose), one database (mongodb), and one CSS pre-processor (less) have been selected as initial candidates based off successful RMVP projects (see theShowcase) below.

Easily customizable

Highly configurable

Don’t like using jade, less, passport, …? Simply delete them from the generated project starter files and remove them from package.json after running eskimo create [name].

Documented micro-examples

After you create a new project starter, what’s next? Need Facebook and/or Google Authentication in your app? Integration with Stripe for payments? Documentation and setup for a RESTful API? Using Sockets.io? Setup for zero-downtime reloads and automated deployment? Simply look in the /examples folder or file an issue if you’d like help. By simply having micro-examples as Readme files, users are forced to learn by reading and thinking (as opposed to simply copying/paste a complete working example).

Framework/boilerplate comparison

Back-end

Name ☆’s* Express 4 DI** Gulp Mocha Travis Cov. LOC***
eskimo 128 2730
sails 7550 26741
locomotive 685 16598
totaljs 1061 14827
hackathon-starter 7300 16877
derby 3366 2688
kraken 2901 1762

Front-end

Name ☆’s* Asset Pipeline Bower Bootstrap 3 Font Awesome 4 Jade LESS
eskimo 128
sails 7550
locomotive 685
totaljs 1061
hackathon-starter 7300
derby 3366
kraken 2901
  • * as of 9/10/2014
  • ** dependency injection with electrolyte
  • *** number of lines of code on a fresh git clone of the repository (using git-extras‘s git-line-summary command) as of 9/10/2014

Showcase

Showcase

Our Harvest

Market Prophit

Seedfeed


niftylettuce@gmail.com | Github | Twitter | Updates | RSS/XML FeedPowered by Wintersmith