Monday, December 23, 2013

Open Source Facebook Projects

We all know that Facebook and open-source software go hand in hand. Open source has been a big part of their philosophy. James Pearce, the open source lead at Facebook also confessed on the company blog, “Since Facebook’s first line of PHP, and its first MySQL INSERT statement, open source has been a huge part of our engineering philosophy.”
Facebook, open source, PHP, RocksDB, open source project, facebook project, xctool, buck, rebound




In 2013, there were some noteworthy contributions from Facebook to the open-source community in 2013. Here they are:

xctool: This was created as a replacement for Apple’s xcodebuild, which is responsible for making it easier to create and test iOS and Mac projects.

Buck: This is an Android/Java build tool that helps in faster, better Android builds.

Rebound: This is a Java library meant for animations.

React: This is a JavaScript library that is aimed at building new user interfaces.

Regenerator: This is a Node.js tool that helps to replace generator functions by means of efficient JavaScript-of-today (ECMAScript 5 or ES5 for short) that behaves pretty much the same way.

Huxley: This is a test-like system for capturing visual regressions in Web applications. This keenly watches you browse, takes screenshots, and informs when they change.

Presto: This is a distributed SQL engine that is aimed at running interactive analytic queries.

RocksDB: It is an embeddable persistent key-value store that helps for faster storage. It can also act as the foundation for a client-server database.

Pearce further told Venture Beat, “We know there is still a huge amount to work on, across each of the major themes above. We’re very lucky to have strong and enthusiastic communities on our projects, and with that comes great responsibility.”


Ref:efytimes

Wednesday, December 4, 2013

the top five javascript MVC frameworks

The massive growth in rich, JavaScript-heavy web applications has lead to a huge array of frameworks designed to help you build apps. There are so many that it can often be difficult to choose which best suits your needs, so in this article I'll discuss five of the most popular, and look at where each of their strengths lie.
You shouldn't base your decision entirely on this article - I encourage you to play further with a framework before committing - but I hope this sets you off in the right direction.
Most frameworks follow roughly what's known as an MVC pattern: model, views and controllers. Models deal with data, fetching it from databases and returning it. Views then display the data, and controllers link the models and views together. Of course, that's a very simplified explanation, but the idea in essence is to keep the presentation and the data completely separate, which brings huge benefits as your code starts to grow in complexity. If you've ever worked with a framework like CodeIgniter or Rails, the MVC approach will be familiar to you.

01. Backbone.js

We start with one of the most well known frameworks,Backbone.js. With Backbone, your data is represented in Models. Models can then be contained within Collections which are a collection of model instances. Views also offer more than just templates for displaying data, they also deal with binding events. One of my favourite things about Backbone is the hugely extensive documentation, which makes it much easier to really get to grips with the framework.

An important note is that there is no such thing as a typical controller in Backbone. The job of the controller tends to more be done partially by Views - they contain UI logic along with represting data, as we'll see shortly, and the Backbone Router, which maps URLs to functions. Collections are described on the Backbone site as "A group of models on the client-side, with sorting/filtering/aggregation logic".

You typically define methods to filter your data on collections. For example, the example Backbone todo app defines methods to filter just the todos marked "done":
    var TodoList = Backbone.Collection.extend({
          ...
          done: function() {
            return this.filter(function(todo){ return todo.get('done'); });
          }
          ...
      });
The above todo app is well worth examining if you're new to Backbone - it's fully commented and very helpful when it comes to deciding how best to lay out your application. One of the issues (if you could call it that) with Backbone is that there are a lot of different ways to achieve the same end goal. Don't get confused if online tutorials do things slightly differently.
 Backbone.js
In my opinion, Backbone is great for small, one page applications, and that's how I tend to use it. However there are plenty of people who have built impressive, vast applications with it, including USA Today and the New Rdio. Plenty more are cited on the Backbone site. I encourage you to give it a try and see how you find it.

02. Ember.js

Second is Ember.js. Whilst Backbone is fairly low level, with a lot of code that you need to write yourself, such as code to update the view when model data changes, Ember does a lot of that work for you. It's more opinionated because it tries to do a lot more for you, but that also leads to you having to write less boilerplate code.

Ember's main features are its data binding; obejcts in Ember can bind properties to each other, so when a property changes in one object, the other is kept in sync. Another is the ability to define functions on an object that you can then treat as properties. Hence, if a model has a first and last name, you could create a function to define a person's fullname, and have it treated as if the model has a fullname property. For example, here's how you might define such a property:
    fullName: function() {
        var firstName = this.get('firstName');
        var lastName = this.get('lastName');
        return firstName + ' ' + lastName;
      }.property('firstName', 'lastName')
You can then reference fullName as if it was a property throughout your code and in your views. For example, with the above property defined, your view might look something like:
    <p>Hello, <b>{{fullName}}</b>!</p>
And this would automatically update when the value changed. A combination of data binding and computed properties is very powerful.

Coming from a Backbone perspective, the feature most likely to draw you in is that Ember automatically updates its views when data changes - saving you a lot of work. This comparison post between the two sums it up quite nicely: "Backbone is more explicit and less magical". Depending on your perspective, that can be a good or a bad thing. Some prefer Backbone because it keeps things simple, and lets you do everything how you want, whereas Ember does much more for you. A framework that does more for you means you relinquish some of the control, but gain time in not having to write code to handle a lot of the mundane functionality.
 Ember
Ember also has more traditional controllers. Views (usually written in Handlebars) provide ways of attaching certain buttons or links to Ember controller actions. Of course, controllers don't need to deal with updating content, but can house methods to deal with just about everything else. This is where most of your methods will go that deal with the data. In a todo app, for example, you might write methods that return just the completed todos, or the methods that save another todo item.

03. Angular.js

Next up is Google's offering, the relatively new AngularJS. Angular takes a slightly different approach by doing data binding directly in your HTML. It also uses just plain JavaScript for its controllers, meaning there's no need to extend other objects as you have to do in other frameworks. The data binding means data in views is automatically updated when the data changes, but also Angular makes it effortless to bind forms to models, meaning a lot of the code you typically write to link a form to creating a new instance of a model is not needed. Its data binding is bi-directional. For example, here's the HTML for a form for a todo app (taken from the Angular documentation):
    <form ng-submit="addTodo()">
            <input type="text" ng-model="todoText"  size="30"
                   placeholder="add new todo here">
            <input class="btn-primary" type="submit" value="add">
          </form>
Notice the use of ng-* attributes within the HTML, which is where the majority of the magic lies. The ng-submit attribute will capture the form submit event and pass it to the addTodo method, which is a method on the todo controller. By declaring the ng-model attribute on the text field, you can easily get at the value without having to reference the field's DOM element and grab the value.
 Angular.js
By moving a lot of the binding directly into the HTML, Angular leaves you with much leaner controllers and less JavaScript to write. It might take a while to get your head around, but this approach is really powerful. The Angular home page contains multiple sample apps and videos of those apps being built, so if this interests you I highly recommend you check them out.

04. Knockout.js

Knockout.js is an MVVM (Model-View-View Model) framework written in pure JavaScript. MVVM frameworks are split into three parts. Firstly, there are models, which are exactly what you'd expect. Typically these sync data with a server.

You then have view-models, which are pure JavaScript and are a code representation of your data along with exposing methods for manipulating the data - these are as close to controllers as an MVVM framework comes. The bulk of your logic goes into these. Finally there are views, which display the information. These are written in pure HTML with bindings inserted as attributes (similarly to how Angular JS does it), which Knockout then uses to update views with the data. Knockout does this for you.

As an example, to display the firstName property of a model instance, my view would contain:
 <p>First name: <strong data-bind="text: firstName"></strong></p>
You then activate Knockout by applying the bindings. You pass this function an instance of your view model, which defines the value of properties. For example, something like:
       function AppViewModel() {
        this.firstName = "Bert";
      };
You can then activate the bindings like so:
ko.applyBindings(new ViewModel());
 Knockout.js
And you'll see the strong tag show "Bert". This code was taken from the interactive KO tutorial, which is the best place to start if you're interested in learning more.

05. Batman.js

Finally, I wanted to pick something different to all of the above and went with Batman.js, and not only because of the name. Batman is written in CoffeeScript. It can be used with JavaScript or CoffeeScript, but your code will look much cleaner in CoffeeScript as Batman makes use of CoffeeScript's classes heavily.
I'd only recommend Batman if you are happy to write CoffeeScript. With Batman you create an instance of Batman.App, which acts as a wrapper around your application. Then, you create controllers and models within this App class. App classes are very straight forward:
     class Todo extends Batman.App
        @global yes
        @root 'todos#index'
The first line sets it to global, so it's added as a property on the global object. The second line will look familiar to those with Rails experience. This sets the application's root path to be the index action on the controller. Controllers and methods get added as properties on this class. Batman also uses data-bindings in the HTML. For exmaple, to output a list item for each item in a product model, it's as easy as:
    <li data-foreach-product="Product.all">
        <a data-route="product" data-bind="product.name">name will go here</a>
      </li>
Batman is a great choice if you're a fan of CoffeeScript. It's quick to pull simple apps together and is also probably the framework to stay closest to what I would consider a typical MVC pattern.
 Batman.js
Nick Small, Batman.js' creator, has a great presentation on how and why you should use Batman.js. It unfortunately doesn't seem to be as popular as the other frameworks out there which I think is a shame, as the amount you can do in such little code is fantastic.

06. Conclusion

It was very hard in this article to pick out five frameworks and try to give them a fair overview in a limited number of words. The last four are pretty similar, with Backbone probably the odd one out. It does leave you with more work to do, and doesn't provide bindings, a key feature of the others, but if you want full control over everything, it's a good one to look into.
The key advice I would give is to look at apps written in these libraries and try to write your own small apps before commiting to one. Each has subtle differences which will either suit you or not, and it's good to find those out sooner rather than later.
Of course, there are plenty more than these five, and the Todo MVC project is a great place to start if you'd like to explore other options. That site has a huge collection of applications written in a great variety of frameworks, including all the ones mentioned in this article. You can find the repository of these applicationson Github.
Thanks to Addy Osmani for his peer review of this article
Jack Franklin is a 20 year old developer living in London, UK. He runs a JavaScript blog at javascriptplayground.com and also writes PHP, Ruby and other languages. He tweets as @Jack_Franklin.

Sunday, December 1, 2013

Factors That Hamper A Programmer's Productivity!

From clients to bosses, everyone wants a programmer to deliver their products in the shortest of time! But it seems that anyone hardly cares about the needs of developers to get the job done. From pointless meetings to useless productivity parameters and know nothing bosses, here are 10 biggest hindrances to a successful programming project. 

1. Meetings

In the survey by CIO, a majority of developers readily agreed that meetings are the biggest factor which acts as a roadblock and kills their productivity time. Bosses preaching on every little detail and co-programmers going on and on about petty bugs or features or architecture is a let down.

2. Reading And Replying All Emails

Agreed that meetings are bad but so are their alternative, that is emails. Discussing everything on emails and then going through all those mail trails can be a bigger killer! And while there are options of skipping of blocking the mails, that way you can even miss some important communication.

3. Useless productivity measures

There comes a time when managers suddenly start to count your commits and lines of code or number of bug fixes. And if you are putting up programmers in this gameplay, they instead of making the code better, start to concentrate on increasing the writing lines and solving bugs or doing whatever is being counted. So such measurements instead of boosting the productivity can encourage the programers to create long files of overly engineered codes.

4. The First Coders

If there is one person at work who can be worse than your boss then he is the person who was working on these codes earlier and then left. If you are trying to understand what the code was all about, he will make sure that it sounds as bad it can be. And trying to understand the basic function of the program via them can be a big time productivity killer!

5. Nonprogrammer managers

While some programmers are happy about having non programmer managers as they are easy to make excuses to, others say that these guys just call meetings and get in the way. Some blame them for not giving enough guidance.

6. Programming pro boss

This was an obvious on the list as those who love non programmer managers, hates those who are pro in programming. These former geniuses often micromanage the project and want to change almost everything that you create. Result: Productivity killed!

7. Programmer v/s programmer 

“You can't always blame it on others," say a lot of respondents of the survey. Many programmers often lock their horns on pettiest of features without even considering what the client actually wants. And what suffers in this battle of two is again productivity.

8. Poor Documentation

Yes, we understand that documentation takes a little time but imagine getting into someone's code without having any documentation. It surely is when you have to try and err and understand what feature do what. Infact for the current coders also documenting it all at end might be even more time consuming. A well explained documentation which is updated time to time will help you to retain which coding was for what and will save a lot of time.

9. Circus atmosphere

This specially happens when you are sent to the client's office to work and they make you sit at a place which is full of distractions. Be it new trainees or next to pantry. Yes, these things kills productivity big time!

10. Clinging to historic technologies

There still are project leads that want you to code in a technology that should better be placed in museums. Out of many purposes of the upcoming languages, one is definitely meant to cut down on time and effort. And here if you are stuck to older ones that need even deeper analysis and reading by the programmer, it is definitely a productivity killer! 

REF:-Atithya Amaresh, EFYTIMES News Network 

Saturday, September 21, 2013

Web Tech Hot in 2013

A list

Composer

Composer
Composer is a tool for dependency management, similar to Bundler and NPM. Declare your dependencies within a configuration file, and then run a single command to immediately pull them into your project!
Though it rapidly picked up steam last year, in 2013, I expect to see wide-spread adoption of Composer from the PHP community. Learn about it here on Nettuts+.

Laravel 4

Laravel
Laravel will be to the PHP community what Rails was to the Ruby world. It’s an incredibly elegant framework that will surge to the next level in early 2013, with the release of Version 4. Composer support, better testability, easy emailing, and resourceful controllers are just a few new features that you can look forward to. Keep an eye on this one!

Tuts+ Premium Further Learning


PHP 5.5

PHP 5.5
Following the successful release of PHP 5.4 in early 2012, which introduced a plethora of badly needed new features, such as a built-in server, traits, and an improved array syntax, in version 5.5, we can expect to play around with generators, support for list within foreach statements, and, among other things, a vastly simplified password hashing API.

D3

D3
D3 is a fantastic JavaScript-based data visualization library that allows you to bind data to the DOM, and then make transformations to the document. To learn more, refer to D3′s GitHub repository for a massive gallery of examples for visualizing various data sets.

Brackets

Brackets
Brackets is an open-source code editor that takes HTML, CSS, and JavaScript to the extreme: it’s built with those very technologies! As a result, as long as you have a relatively basic understanding of JavaScript, you have the necessary tools to extend the editor as you see fit.
Expect to see this editor give Sublime Text 2 a run for its money in 2013! Until then, here’s a peek at the latest (at the time of this writing) updates to the editor.

Bryan Jones’s Self-Serving Pick

CodeKit 2.0

CodeKit Logo
CodeKit became massively popular in 2012 and is now used on sites like Barackobama.com, Engadget.com, and many more. The 2.0 release coming in the first half of 2013 features a complete UI overhaul, support for more languages and tools, better integration of frameworks and a revolutionary new-project-creation workflow.
Essentially, the goal is to make anyone who’s forced to build a website without CodeKit… cry.

Dan Harper Picks

PHP

2013 will be the year of PHP. The year PHP finally makes its comeback and starts to fight against the call of Ruby and Node.
Composer is bringing PHP its long-sought-after package manager. The PHP Framework Interop Group is setting a standard for how PHP should be written, allowing every new and existing framework to grow together and benefit one-another. Not to mention the whole host of new features coming to the language with PHP version 5.4, 5.5 and beyond. It’s hard not to be excited about PHP’s now rosy-looking future.

Tuts+ Premium Further Learning


Meteor

Meteor, a new Node.js-powered framework is set to revolutionise how you write high-quality dynamic web apps. While right now it’s still in preview at version 0.5.2, it’s set to hit the version 1 milestone sometime in the new year. It very well may spark a change in the industry like we haven’t seen since the rise of Ruby on Rails. I’m seriously excited for this. I’ll grab the popcorn.

Backbone.js

With browsers getting ever faster, JavaScript is being turned to more and more to provide fast and slick user interfaces for web apps. Backbone is one of the leading libraries for structuring your JS code. With Backbone fast-approaching version 1.0, it’s sure to only achieve more and more success as the year goes on.

Tuts+ Premium Further Learning


Sublime Text 2

There’s just no way you can’t love Sublime. With its command palette, multiple cursors, split-panes, insane levels of customisation and extensibility, it really is no surprise why Sublime Text 2 has stolen then hearts of thousands of developers away from text editors across every operating system. In 2013, I expect it to continue reigning supreme – with a few exciting updates along the way.

Tuts+ Premium Further Learning


Adobe?

The controversial one. Adobe? The company loathed by anyone who’s written even a single line of HTML? Well, yes. In the past year, Adobe have made it abundantly clear that they’re embracing the future of web technologies. They’ve announced a number of very cool projects, from Brackets, a new take on a text editor for a web designers, to Edge Animate, a Flash-like editor to produce rich CSS3 animations and their CSS FilterLab experiment.
Also, let’s not forget their purchase of PhoneGap and Typekit! Perhaps, by 2014, we’ll have started to forget that Flash websites and Dreamweaver ever existed?

Nikko Bautista’s Picks

Zend Framework 2

Zend Framework 2
Zend Framework 2 was released earlier this year, and it has been a wonderful experience so far. Its adoption of Composer (or Pyrus) to manage its packaging is a huge step in the right direction. I’m hopeful that, in 2013, it will take the crown as the best tool for web developers seeking to build highly-scalable web applications.

Twitter Bootstrap

Twitter Bootstrap
Since its conception in 2011, Twitter Bootstrap has become a standard rapid prototyping framework, used by many developers (including myself) who have no idea how to create a grid-layout (or are too lazy to write one). With both developers (@mdo and @fat) moving the whole project into its own open-source organization, I’m looking forward to what the new infrastructure will bring to the project as a whole.

Facebook Open Graph

Facebook Open Graph
In 2011, Facebook released the Facebook Open Graph. The Open Graph has opened Facebook users to a whole lot more, allowing users to share richer stories, based on exactly what they’re doing. From a development point of view, it allows for better integration with Facebook, providing definable stories, which surpass what a simple “Like” can offer.
In 2013, I foresee Facebook’s Open Graph becoming a standard way of sharing different kinds of stories and actions – not just in Facebook, but for any application.

PlayThru

PlayThru
CAPTCHAs have always been the bane of my existence. They’re inclusion in any project generally results in a slightly lower conversion rate. Love it or hate it though, I’ve always deemed it necessary to help fight robots, looking to spam your web sites.
Enter PlayThru: a CAPTCHA alternative, which asks users to play a simple mini-game instead of typing unreadable gibberish. It’s easy to implement, and is nearly uncrackable by any existing CAPTCHA solving solutions that are currently available. In 2013, I can see it being adopted by many of the applications that we use today.

Eden PHP

Eden
Eden is a PHP library that was designed for rapid prototyping. I view it as the Twitter Bootstrap for your PHP code. It’s quite easy to use, offers support for plenty of services, and, best of all, it integrates well with any framework you choose. In 2013, I expect to see it make more of a dent in the PHP scene.

Gabriel Manricks’ Picks

Koding

Koding
Koding is a web development platform that combines all the development tools you need, along with a social aspect to a single place in the cloud. They offer a complete solution, which includes support for multiple languages (PHP, Python, Ruby, etc.), multiple databases (mySQL, MongoDB), terminal access, a sub domain, and file hosting.
Additionally, they’ve made it social, with a mix of GitHub, Twitter and Stack Overflow. You can view friends activity, ask questions, follow topics and post updates. With all of this innovation on a single page, you’re likely wondering how much it’s going to cost you? Well, the developers have stated that the product is free and will remain free for developers always.
They are still in beta, so there are some things which still need tweaking, such as one-click apps and options to purchase additional resources. Overall, though, I think this product shows a lot of promise, and may turn into something really great in 2013.

RethinkDB

RethinkDB
RethinkDB is a database system, rebuilt for the modern 21st century.
Things that are traditionally the most complicated of tasks can be accomplished through the admin’s clean UI.
RethinkDB is a database system, rebuilt from the ground up for the modern 21st century. Created in 2009, RethinkDB is an open-source database that, in my opinion, is considerably under-rated.
It uses a JSON data model to store everything in documents, and supports: atomic updates, JavaScript code directly in the queries, upserting!, map/reduce functions, inline sub-queries, and all operations are lock-free. Additionally, it comes with a stunning UI that puts other tools, like phpMyAdmin, to shame. The included admin allows you to run queries (with autocomplete code hinting), view usage graphs and set up sharding/replication on a per table basis. Things that are traditionally the most complicated of tasks can be accomplished here through the admin’s clean UI.
RethinkDB has automatic failsafe operations for when a node crashes or loses internet connectivity, and the entire system is optimized to take advantage of the new SSD technologies.
Currently, they only provide a package for Ubuntu, but they do offer instructions for getting it set up on Mac OSX. And, of course, they are working on packages for other systems. It will be interesting to see where they take this in 2013.

Stripe

Stripe
Will 2013 be the year that they go global?
Stripe, for the unfamiliar, is a payment processor with the mindset of “built by developers for developers.” If you’ve ever tried to accept credit card payments with something like PayPal, then you know that it can be a headache to set up. From unclear documentation, to fussy APIs, you end up with a lot more open-source projects. Stripe combats this with a dead simple REST API, webhooks for handling different events, and wrappers for basically every language available.
Stripe recently released “Stripe Connect,” an OAUTH 2.0 API that allows you to handle payments and access users’ information, allowing you to create analytical apps and services for Stripe. The single downside to Stripe currently is that it’s only available in the U.S. and Canada. That said, the development team have stated that they are trying to branch out to all countries.
Will 2013 be the year that they go global? I guess we will have to wait and see. Until then, you can learn how to use Stripe here on Nettuts+.

Chrome Packaged Apps

Chrome Packaged Apps
Hopefully, 2013 will bring a new era of hybrid applications, which combine the web’s simplicity with the OS’s power.
Packaged apps are an exciting concept for web technologies and developers alike. Building a web app is a super easy process compared to native OS apps; all you do is layout your objects in XML (forms, buttons, text, etc.) and style them with CSS. Then, to add functionality, you can use something like JavaScript to write simple code in a very component-oriented way.
The downside to web apps is the need for a persistent connection, and nearly no support for native tasks (access to USB devices, writing local files, and so on). Lastly, they are bound to a web browser, which can spoils the effect.
Chrome apps are a mix of both worlds: you get to build apps with access to all of the features of your operating system, but you do it with HTML, CSS and JavaScript!. Chrome offers API-like libraries, which provide you with access to the computers’ resources – and your application is created offline first. This means that, once installed, there is no requirement for an internet connection; it fully runs outside of the browser.
So where’s the catch? Why haven’t we seen many Chrome apps? Well the reason is because it’s still only in the preview stage right now. You can certainly build your own apps with it to test yourself, but there is currently no way to package it for distribution. Hopefully, 2013 will bring a new era of hybrid applications, which combine the web’s simplicity with the OS’s power.

CKEditor 4

CKEditor 4
Already, there are plugins for syntax highlighting and MS document handling.
When building a web application, you must consider the different options for improving a user’s experience. A good UI can “make or break” a product, regardless of its functionality. CKEditor is a WYSIWYG editor that allows you to generate HTML code from an easy to use interface.
CKEditor 4 was released in late 2012, and comes with a few drastic improvements over its previous version. It now supports inline editing of HTML pages, new UI themes that look great out of the box, and a full API to create your own custom extensions.
When it comes to making products, you shouldn’t waste time creating inputs for your users, only to then process the data and format it for the web. With CKEditor, you can customize every stage of its event-cycle, from what’s in the toolbar, to which format the content should be processed into. CKEditor 4 has only been out for a few short weeks, but, already, there are plugins for syntax highlighting and MS document handling.
This is something that I’m very curious to learn more about.

Claudio Ortolina’s Picks

Ruby 2.0

Ruby 2.0
With the Ruby 2.0 release just around the corner, offering new language features, like named arguments and improved performance, Ruby will certainly be a hot topic for 2013 – especially when it comes to upgrading any application deployed on previous versions.

Rails 4.0

Rails 4.0
Another big release, with important architectural changes (like strong parameters) and a more modular structure that should once again positively impact performance. Keep an eye on this one!

jRuby

jRuby
jRuby is a solid alternative to the default Ruby interpreter (MRI). It’s a mature Ruby implementation on top of the Java Virtual Machine that leverages support for concurrency and integration with Java native libraries and drivers. The latest releases show also extremely good performance; it’s definitely an option, when it comes to deploying Ruby applications.

Travis-CI

Travis CI
Continuous integration for testing is increasingly important; Travis makes it possible with a simple cloud based service. With upcoming support for private projects, it’s going to be a must-use tool for any serious test suite.

Go

Go
The Go language, developed by Google, has rapidly gained momentum in our community, thanks to its simplicity, performance and intuitive design. The recent 1.0 release and Google’s commitment to its future make it a valid option for performance critical services in 2013.

Andrew Burgess’s Picks

Node.js

Some Framework
Node is relatively new as server technologies go, but I’m convinced that the excitement we’ve seen so far is hardly the beginning. Technologies like Meteor are proof that Node opens up a whole new way of building web apps that’s incredibly difficult to pull off with some of the old faithfuls.

Tuts+ Premium Further Learning


MongoDB (and NoSQL in General)

MongoDB
I recently created a Tuts+ Premium course all about MongoDB. Prior to that, I hadn’t really had a chance to check out any NoSQL technology, but it was love at first site (yes, pun intended). The idea of storing your data in the same way you work with it (JSON) seems so obvious; why weren’t we doing it sooner? While NoSQL isn’t always the right tool for the job, I think you’ll be seeing it used a lot more in the not-so-distant future.

Responsive Design

Responsive Design
I’m no designer, but I’m certainly a connoisseur of good design. So, lately, I’ve been pretty excited about the hype surrounding responsive design. Once again, it just feels so right. I’ve seen a lot of websites, some pretty high-profile, redesigning with responsive layouts over the last year, and I’m fairly sure this is one trend that won’t be disappearing any time soon.
Keep an eye on Tuts+ in 2013 for a new responsive redesign!

Industry Maturity

industry
While this isn’t a framework or tool, it’s a trend I’ve been noticing for a while – and liking a lot. What I mean by mature is mainly better, more close-to-standardized practices, when building web applications. A great article this year that put a lot of it down on paper (so to speak) was Rebecca Murphey’s A Baseline for Front End Developers. Other projects, like Yeoman, encourage developers to build tested, modular projects, and tools like Github encourage good code management and history.
This maturing can only be good for the industry, so I welcome it whole-heartedly.

Source : tutsplus