NPM On Windows

If you have been using NPM on Windows, you are used to npm install -g installing packages under your user profile. It has a bin folder where it adds a batch file for each package that executes the main JS file of the package using Node.

You can check the path for this folder by running npm bin -g. NodeJS installation would have added this folder to your PATH environment variable already.

It’s not the same on the Mac, and it’s by design.

NPM On Mac (Or any other Unix/Linux system)

If you go to the NodeJS official website and install Node from there on the Mac, then you run npm bin -g, you’ll get an interesting result:

This is a root folder outside your user folder ~. This is why you are required to use sudo (run as admin) with npm install -g.

sudo-npm

This is obviously inconsistent, but the NPM answer to this is that global installs usually mean “All users” install to *nix users.

Mac/Unix/Linux (*nix) Vs. Windows

So, why isn’t it the same on Windows? Because NPM seems to think that running as admin is a bit harder for Windows user and a surprise to users in a world where “per-user” installs are becoming more and more common. You can read the comments on the Github issue here.

The other alternative for Windows users if NPM were to standardize the approach is to have to open new console window as admin to install the global packages. There are probably other options but they’re even less common in Windows world.

Per User Or Per Machine

It’s interesting how things run differently in Windows and Unix/Linux lands. In Windows you are often granted with a good default that you typically change only if you have a reason to. In Linux/Unix land (including Mac), it seems how good the defaults are doesn’t matter. There will be a true defacto setting that is the real default, except you have to discover it on your own.

You can argue that Windows people are used to be dictated, or that the strive for better out of the box experience is better in Windows land. I’ll leave this one to you.

Although NPM use is much higher in *nix systems – I assume, most people will talk about NPM global install as per the defacto setting. Most people change the global bin location NPM config setting to a per-user folder, which they manually add to their environment path variable.

Some people run something like:

And then add $HOME/npm/bin to the environment path. Depending on whether you use bash or Zsh shell, you open your ~/.bashrc or ~/.zsh and append something like:

Then you’ll have the global packages installed under your user account, and their commands still available everywhere in the shell, and you can manage them without having to use sudo.

Another Viable Option: Node Version Manager

When I posted this article on twitter I got a few comments suggests that the official install isn’t the best way to install Node anyway, even with the userprofile hack. That’s another difference to learn about Mac and Linux, there are sometimes more than single non-official de-facto way to do things.

Similar to Ruby for example, which has RVM (Ruby Version Manager), a version manager exists for Node as well. And it’s non-surprisingly called NVM (Node Version Manager).

NVM eliminates the problem with global installs as it installs global packages in a folder relative to the selected Node version, which happens to be a user-specific folder.

A side effect though is that if you are using multiple versions of Node, you need to install the global packages once per version (discussion).

In Closing

Personally, I’m still leaning towards using the defaults and I just remember to use sudo. I’m still new in this Mac world, and the main reason isn’t that I think it’s superior to Windows (actually I’ve got much more respect to Windows than what I already have form using the Mac), but to learn these nitty-gritty *nix life.

I might share more findings later as well. Stay tuned!

Here we go, it’s the last day of the year!

Hi, it’s Meligy from GuruStop.NET, and this is another issue of the AngularJS and web development newsletter.

I wrote this intro several times this month to fit the success of the first ng-sydney usergroup meeting, a company presentation I put online about Angular 2, Christmas holidays and gifts and all, my own dramas with the first MacbookPro I owned ever, and now, well, here it comes, on the last day of the year!

According to my records, there’re 60+ new subscribers to this newsletter since the last issue. Thanks a lot if you shared it with your friends, and if you are one of the new friends, make sure to check the previous issues at gurustop.net/newsletter.

If you are not, this is always your go-to reference in addition to searching your mailbox. And thanks for always being here at this end of the newsletter :)

It has been a few weeks since last issue, so, I’m making it up for you. This issue is going to be long. Let’s jump in quick:

AngularJS

Angular 2.0

Video: My Take on Angular 1.3+ (1.x) and Angular 2.0
In this ~17mins video I share a few ideas about the misconceptions people seem to have about Angular 2.0, and where Angular 1.x is going. You probably read a few of them in previous issues of the newsletter.

AngularJS 2.0 Status and Preview
A pretty nice writeup on the current status of Angular 2`.0 with code. It’s a bit long that the post offers a table of contents!

Angular 1.4

Video: AngularJS 1.4 Planning Meeting

If you are interested in knowing what’s likely to make it to Angular 1.4 and 1.5. 1.4 is likely to make it to ng-conf in late January 2015 BTW! InfoQ wrote an article closely related to this video focusing on what to expect beyond 1.4 for the 1.x in 2015.

Official Angular Blog: Planning Angular 1.4
The team also put a summary of the meeting in this blog post. One thing you want to look at is the “Progress” and “Design Doc” links in there for the real meat of what’s going on.

A couple interesting things about 1.4 are:

  • The router looks like it’ll have an appearance in this release. I personally doubt it’ll be good enough!
  • There’s another round of forms improvements. These are always welcome :)

Learning Angular 1.x

Egghead.io Cheat Sheets

Egghead.io is the best place for short videos teaching AngularJS. The creator of the site now has posted some cheat sheets targeting some very interesting areas of Angular:

  • AngularJS Core Services (PDF)
  • AngularJS Directive Definition Object (PDF)
  • AngularJS ui-router (PDF)

Creating Custom AngularJS Directives – 7 Part Article
A very detailed primer on creating directives from Dan Wahlin. Dan has popular courses on AngularJS, and more importantly he is the creator of the Angular in 60 minutes video, which I still consider the best intro video for developers new to AngularJS.

Getting Started with Angular and Accessibility
A good introduction to accessibility in AngularjS and the ngAria official AngularJS module.

Videos: “AngularJS Fan” YouTube channel
A very good collection of videos with nifty tips & tricks, They are all very short also like the awesome egghead.io videos. I found this channel by accident via a video about Isolate-Scope Attribute Expressions Use Dependency-Injection In AngularJS.

Testing

An Introduction To Unit Testing In AngularJS Applications
This article takes a good angle at unit testing your application with both theory and code.

3rd Party Modules & Tools

ngKookies
A replacement for default cookies service in AngularJS to take away the limitations of the default cookie implementation.

angular-translate
A good tool whether you need to support custom languages or just add proper pluralization. It takes care of the obvious details like lazy loading and flexibility to replace parts of the library.

ngTasty
A collection of directives and services that seem interesting. You can check their table directive with support for serverside paging/sorting, their range filter for when you need to repeat on a range of numbers not really a list of objects. I saw it mentioned a few times but haven’t played with the code myself yet.

gulp-ng-config
If you ever needed to create something like a constants.js file that had some values that don’t change in the life of the application but change per dev environment (local, test, stage, prod), you might find this useful (provided you use gulp too I guess).

Code To Read

dillinger.io – The Web-based Markdown Editor
A very good Markdown editor built with AngularJS on the front and NodeJS ExpressJS on the backend. It offers offline storage support and integration with many cloud storage options (Dropbox, Google Drive, One Drive, Github). You can play with it at dillinger.io but I thought you might be more interested in checking the code ;)

John Papa AngularJS Styleguide
John Papa is another great speaker who is now focusing on AngularJS among other things. He created a very nice styleguide that is worth looking at and deciding for yourself what to agree and what to disagree with.
If you are into validating your coding style, you should also learn about the official angular-hint module.

JavaScript

Should I be learning ES6?
I think the answer is yes. ES 6 is still effectively JavaScript vNext, but it’s good to learn one of the trasncompilers to ES 5 (current JavaScript). However, this link is not about what I think, but what reddit thinks.

CSS And Preprocessors

Introducing Sass-Compatibility
SASS was created on top of Ruby. There are a few popular versions of it out there and there’s a C implementation as well that other platform implementations rely on. The Sass-Compatibility site helps you tell what features are incompatible with what implementation. I haven’t really fallen into this problem before, but I’m very aware it exists and it might be just a matter of time.

The 5 Most Popular Frontend Frameworks of 2014 Compared
I looked here to see if I missed anything, but, TBH it just felt like Bootstrap is the king of this area still, arguably of course.

HTML5 & Web Components

Web components allow you to create independent UI widget that can have their own HTML/CSS/JS includes and have some JS-rich behaviors. While browser support is still poor for web components, the Polymer project provides a great polyfill for current browsers.

Video Playlist: Polymer Tutorial
I was looking for some Polymer tutorials and found this playlist which has several videos with good introductions to the Polymer concepts

Video: Web Components and the Future of CSS
Another introduction video focusing on shadow DOM (DOM that has its own isolated CSS and DOM selection).

No more JS frameworks
The post talks about what feature are making it to standard / native technologies that we have always had to get a JavaScript framework to have, like async loaded HTML templates, JS promises, etc.

The State of HTML5 Gaming
An interesting comparison of the big JavaScript game engines out there.

Node​.JS

Node.js Best Practices
It’s not very common to see good best-practices guidance in the NodeJS world, especially for those who don’t write a lot of NodeJS code, so this one is a good gem.

stream-handbook
A book about one of the most important and often confusing topics of NodeJS. It’s written as a Markdown file on Github with a build tool to view in browser, a nice way!

Functional Programming

Video: Functional programming design patterns by Scott Wlaschin
My friend @JorgeFioranelli suggested this video as a great one for those interested in the topic in general (He is my go-to person on it).

Having further look I noticed the entire site is a collection of NDC videos. NDC is one of the best in-depth developer conferences I know of, so, you better browse the video listing for topics that may interest you.

Microsoft Technologies

ASP​.NET MVC

Using AngularJS, ASP.NET MVC, WebAPI and EntityFramework to build NLayered SPA
A detailed code sample that features an interesting boilerplate template builder aspnetboilerplate.com.

ASP​.NET vNext / ASP​.NET NET 5

Yeoman generators for ASP.NET 5
With official production support for Mac OS & Linux in next version, we get to see crazy things like yo aspnet! Not just that, it has sub-generators that correspond to Visual Studio’s Add-New-Item dialog feature as well: Adding New Items to Your ASP.NET 5 Project with Yeoman Subgenerators.

Video: ASP.NET 5 – What do you need to know
A good introduction to the upcoming version of ASP​.NET, from ALT​.NET Sydney usergroup.

Building future .NET projects is quite pleasant
While several resources focus on development experience in ASP​.NET 5, this article talks about how nice the CI build story is as well (using TeamCity as the build runner as well).

Internet Explorer

It’s still no Chrome for sure, but there’re good things happening with the automatically updating (AKA: ever-green) IE 11. Here’s one:

Security

How To Migrate To HTTPS
Addy Osmani from Chrome team shared this guide for “gradually” migrating to HTTPS. It’s currently an 8 pages WIP document. Definitely worth checking.

Books

Pakt Publishing $5 Ebooks Bazonga
Pakt are having a $5 sale on all their ebooks and videos. It will end very soon so use it quick if you will.

Principles of Distributed Computing (lecture collection)
Looking at what algorithms fit more in a distributed world.

JavaScript Books

Eloquent JavaScript And Other Books
A post on reddit about how good the book Eloquent JavaScript triggered a good discussion of other good JavaScript.

Programming JavaScript Applications
Another good JavaScript book available for read onlineASP​.NET

Craftsmanship

How to Be an Expert in a Changing World
To quote “When experts are wrong, it’s often because they’re experts on an earlier version of the world”.

How to Send Email Like a Startup
This is more for the engineers who sometimes have to write marketing emails, ones that maintain customer relationship not normal ones like this email or you internal company email. I find it a very good sill to learn these for everyone though.

ng-sydney

This is a one off section that will not make a frequent appearance in this newsletter.

In the last newsletter I talked about the new ng-sydney usergroup for AngularJS developers in Sydney. I promised to share a picture from the first meetup. So here it is:

There were about 35+ people attending. We had an open talk session that I was worried could go wrong but people actually loved it that it went beyond time. It was a great night.

Finally

A quick mention of the actions I’d love you to do NOW before closing this message (before the end of the year):

  • Send me feedback about YOUR thoughts of the newsletter and how to improve it (just email me or reply to this email) – I promise I’ll take action!

  • And tweet the newsletter to your friends if you are on twitter (or share on Facebook, LinkedIn, G+, you have one of these, don’t you?)

Thanks!

Have a great 2015 everyone :)

, , , , , ,

angular-cover

Every 2 or 3 months, each local state team in my company, Readify, helds a night usergroup-like event, or a BarCamp. It’s an opportunity for consultants to share what they find useful, what they learned recently, or just practice public speaking in front of a friendly and supporting group.

I haven’t spoken at Readify’s Sydney BarCamp before. I really wanted to. So, I talked about my findings on the whole Angular 2.0 topic, and my conclusions on how this affects Angular 1.x developers.

I hope it helps you if you are in a similar situation.

By the way, if you like the idea of BarCamp, and want are interested in being part of this team, check out Knock Knock, even if you don’t currently live in Australia :)

, ,

Here we are again with a few more picks, Angular and stuff…

Oh, forgot to say Hi first. Hi!

If this is the first time you read this newsletter, check out all previous issues at gurustop.net/newsletter (you get early access to the picks via subscribing to the newsletter).

This time I want to share with you that the new ng-sydney usergroup seems to be up to something. I have finalized the details of the first meet-up and it’s going to be next week on December 3. Sorry if this doesn’t mean much, but you are my friend, and I’m very excited! Hopefully in the next issue I’ll talk to you about how the night goes.

I know those lines are trying to stand between you and the links, but one last thing before we get to these. Please give me a hand and tell your friends about this newsletter if you like it. Just mention it verbally to your mates or tweet something about like this pre-written tweet suggestion if you feel lazy. The more people this newsletter helps the better.
Remember that I really appreciate your feedback about what to focus on more or even completely change, just email me or mention me as @Meligy on twitter. I’ll listen.

Enough intro, let’s get to the meat of this issue…

Angular

Tutorials

Speeding up AngularJS apps with simple optimizations
A very nice article that shows some small things you can do to improve your AngularJS performance.

Improving Angular web app performance example
This example provides very good tips on how to get better performance of your application if you simply have to do complex / expensive stuff and that’s just the reality.

Official Angular Docs: Migrating from 1.2 to 1.3
I expect that some of you are going through this exercise, so here some help.

Using Breeze JS to Consume ASP.NET Web API OData in an Angular JS Application
OData and Breeze are not that popular, but I have found OData to be very useful, and this article made me think that I maybe I should check BreezeJS as well

Build a MailChimp Signup Form with AngularJS
(Not a mailing list form, the form you use to actually sign up to create Mailchimp lists, etc)

Angular 2.0

Migrating to AngularJS 2.0
A very good article on tips to apply to your Angular 1.x codebase, that might help ease the transition when it’s time for Angular 2. There’s another viral article on the same topic: How to Embrace Angular 2.0 Today with a Future-Friendly Angular 1.3 Application – in case you missed it.
The common wisdom in this area goes like: create custom directors instead of controllers and keep as much code as possible in services anyway, use controlleras to pass data to view instead of $scope. Don’t communicate with parent scopes and use isolate scope in your directives, and start using ES 6.
My personal take: It’s too early to tell if these are actually going to help, and the team is considering having a compatibility layer to map the new APIs to old APIs anyway, they just are keeping thinking about it until they actually finalize the new API shape. The design patterns suggested are good to follow though.

Vido: Using ES6 With Angular Today
The very popular Pluralsight author Scott Allen talks about using ES6 with AngularJS today. This is particularly useful as ES6 is the way to go with Angular 2, so it (again, might) make your migration a bit easier.

Tom Dale Angular Rant
Tom Dale is one of the main creators of Ember. With how Ember is excelling in gradual improvement, of course he did have a few things to say about Angular. Turns out someone collected all his Angular rants as a Storify collection!
If you are interested how I found this one, it was mentioned in the article: Why Web Tools Like AngularJS Need To Keep Breaking Themselves.
A very good read from the same source on the variance between Angular and Ember is: Innovating Fast And Slow: EmberJS Insists, “We Don’t Need To Break The Web”.
And you are in for more rants, check: 2 years with Angular. Verdict: good enough (not really).

Modules / Directives / Tools

angular-kickstart
A project scaffolding tool and build system for AngularJS projects. Includes Gulp and Bower and a few other things. The docs suggest some good stuff in there.

“kcd” Angular Module
When you use AngularJS 1.3 one-time binding, and you actually want to rebind your watches (except only in certain conditions, not all the time like normal bindings do), this directive solves this problem by simply running the Angular compilation again on the element it’s used on. There’s a simple test.

News

Rob Eisenberg: “Leaving Angular” (Reddit Comments)
Not really news if you are on social media. The writer of “All about Angular 2″ and main developer on the new Angular router is leaving the Angular team. Crazy times, eh?
OK, he explicitly mentions he doesn’t think that Angular 2 is going to suck. He just says that there’s whatever (unmentioned) difference in the way he wanted it and the way the rest of the team did. This gets even more interesting when you know he is going to work on his abandoned Angular alternative framework “Durandal”, because the plans for the so called “Next Gen” Durandal have been quite similar to Angular 2 in the backwards compatibility side.
So, nothing more to watch in this space. If you are like me wondering what’s happening to Angular router, then be assured that the team is still working on it. It has been handed to Brian Ford from what the team meeting docs seem to suggest. It’s quite possible that the design of the router will change from what was demonstrated in ng-europe.

ui-router 0.2.13 release
There have been a new couple releases of ui-router in the last couple of weeks. You probably want the latest release if you intend to use it with Angular 1.3.
Remember that ui-router is the best router we have for Angular to day. The new Angular router will be released sometime next year (not sure of the exact time-frame).

AngularJS 1.3.4 and 1.2.27 are out
Yes, there’s some good work going in that area. The team is also working on Angular 1.4 BTW.

EmberJS

Ember.JS 1.8.0 And 1.9 Beta Released
They are getting rid of the string based Handlebars template and replacing it with the compatible HTMLBars template. I like how they approach deprecation as well.

What is HTMLBars and how is it better than Handlebars
In case you wondered ;)

JavaScript

Video: Philip Roberts: What the heck is the event loop anyway? | JSConf EU 2014
A very good video that explains how the browser JavaScript VM (at least v8) handles threading. It shows what the JavaScript event loop is and how it works, including how it handles asynchronous calls like timeout, etc. A must watch.

Video List: JSConf
The previous video from JSConf conference, which has several great videos as well. This is the full list. Browse it and let me know what other sessions you like.

5 functions of the Console object you didn’t know
If you don’t know any of these console methods console.assert(expression, message), console.table(object), console.profile(name), console.group(message) and console.time(name), you might want to check this post out. They are very useful, and quite unpopular!

MongoDB

Video & Slides: Preparing for peak holiday season: Ensuring a seamless customer experience
A webinar that goes through a few ways you can handle a very large load (like Black Friday sale), while still offering the data as close as possible to real time.

Craftsmanship

Pluralsight Smarterer Tech Pro Challenge
Smarterer Flock is a new online testing platform that is getting some strong traction recently, and I expect it to continue. It was recently acquired by Pluralsight (which aligns very well with them as the test identifies the gaps, which you later can attend courses to fill). They also have interesting Elance integration.
I recommend that you register and have a couple questions / tests. A quick tip: Read all the answer choices before you pick one (the answer is committed once you select it, and there’re a few “All” and “None” choices). It’s generally fun to play with too.
Watch this space. It will probably grow!

Write every day
Write drafts, with Markdown or whatever, get yourself used to writing even by writing just for a few minutes a day. It will make a difference, one that you’ll like.

Overcoming Impostor Syndrome
A good story also subtitled “Or How I Learned to Stop Worrying and Love Coding”.

More from @Meligy / GuruStop

If you have made it that far in the issue, and you like what I brought you today, let’s connect in even more ways!

Follow Me On twitter — @Meligy

Check The Newsletter Archive — gurustop.net/newsletter

Get Friends To Subscribe — gurustop.net/newsletter/signup

Remember that you can just reply to this email or mention me on twitter to tell me what you feel needs to change in next issue. And please to tweet it to your friends too, the more people enjoying this, the more it encourages me to make it better.

Until next issue,

Meligy

, ,

Hello again,
Last issue was so focused on what’s going on with Angular 2.0 and how it’s going to affect Angular 1.3. In future issues I’ll assume you are business as usual with 1.3 while still interested in what the 2.0 situation is going to be like. But for now, this is going to be another Angular 1.3/2.0 heavy issue.

Please let me know if you preferred the variety in previous issues more, or whether you prefer the full focus to be on Angular. As usual, just reply to this email (my address is eng.meligy@gmail.com), or shout at me on twitter (as @Meligy).

Speaking of twitter, I’d really appreciate if you tweet about the newsletter to your friends. Here’s a pre-written example. Use a pre-written tweet by clicking here or write your own.

One last thing before we start if you are in Sydney, Australia. I’m starting a new Angular usergroup called ng-sydney. I’m still working out the logistics (venue, etc), but it seems like it’ll be great. Please RSVP to the first meetup so that I can estimate how many will show up. BTW, I’m also looking for speakers, so let me know if you’d like to speak.

AngularJS 2.0

Correction

In Issue 4 of the newsletter the write up mixed the $scope and Directive Definition Object DDO together. The writing suggested they were the same thing in the part that mentioned the removal of $scope.

This is wrong. The DDO is the object that defines the directive, the one that has the compile and link functions and restrict and scope properties. Both are going away in Angular 2.0 though in favor of EcmaScript classes and AtScript annotations (like Attributes in C#).

References

The links in this section are ones that really should have made it to Issue 4, except I only found them shortly after the issue went out.

All About Angular 2.0
This is THE place to learn about everything related to Angular 2.0. This is a very comprehensive article written by Rob Eisenberg (@EisenbergEffect on twitter), the creator of DurandalJS who joined the AngularJS team a few months ago (he is mainly working on the router, but also trying to influence other areas).

Video: Angular 2.0
You can think of this as the video version of the previous article. In this video Rob explains the same points in his post, and for some (including myself), it’s a bit easier to just sit and watch!

Podcasts

The Angular team has been trying to show up to respond to the Angular 2 panic. Most of the answers are like “ES6 is a must and it doesn’t make sense to have our own way of what it does” and “There’s no migration path because we don’t have Angular 2 yet. When we finalize what it’ll be like, we’ll work on a migration path” as I keep mentioning, but still, listen to it in their own words:

Audio: Adventures in Angular: NG 1.3 and 2.0 with Brad Green, Igor Minar, and Miško Hevery
I mentioned the Adventures in Angular podcast in Issue 1 of this newsletter. They dedicated an episode to talk to the Angular team about Angular 2.
There’s also a transcript by John Papa if you prefer to read:
The Angular Team on Angular 1.3 and the Road Ahead to Angular 2.0

Video: Angular Air Episode 0: The Angular Team on 1.3 & 2.0
This is a special first episode of yet another Angular.JS podcast, except it’s a video podcast (using Google Hangouts). You can learn more about the podcast on ng-air.github.io.
Personal commentary: I don’t know what 2 podcasts would be good for, and I hate that it’s only available on YouTube because it means I can’t listen to it easily on phone (Android’s YouTube application pauses if the screen goes off), but they have a very strong start getting the Angular team in.

Different Angles…

AngularJS: The Bad Parts
This is critic of Angular 1.x, but it’s amazing if you look at it in the context of Angular 2, which solves all these problems.
Talk about dynamic scoping? Scope is going. Talk about dependency injection based on parameter name and confusing $inject property? Dependency injection is changing too. Talk about reinventing constructor methods, execution contexts and other JS concepts? This is all going away in favor of ES6 concepts (we still need to see how far the AtScript extension will go still).

This tweet also surprisingly got a little bit more traction than my usual (being a non twitter celebrity, the bar is admittedly quite low):

There’re a few other writings on Angular.JS 2.0 from well known people, but it’s all like: “Angular 2.0 is like Python 3, or is it? And is that a good or a bad thing?”, so, I just skipped these.

AngularJS 1.3

Have you heard of Angular-Hint?
Angular-Hint is a run time tool (a script you add to your page) that can tell you about anything you are doing wrong in your Angular code (via the browser console).
The tool didn’t get the attention it deserves when it was mentioned in ng-europe due to all the Angular 2 buzz, so I wrote this post in order to fix that!

AngularJS: Demystifying Directives
In a directive, does the controller function get called before or after the link function (or functions, pre and post link). Which is the best place to make changes to the HTML element? The article is a very good read even if you think you know directives pretty well

Ultimate guide to learning AngularJS in one day
From time to time, you need to refer a good tutorial to a newbie, or maybe check one yourself. Here’s what I found prior this issue.

Code School: Shaping up with Angular.js:
A new introductory course to Angular JS from Code School. They’ve kindly made it available for free.

EmberJS

Side note: I expect Ember to get a bit more traction coming from the Angular 2.0 panic. After all, it is the closest framework to it, and one of the 3 big frameworks IMHO: Angular, Ember, React (from Facebook).

React still a bit of a niche. It’s quite different from the usual MV* style frameworks like Angular and Ember, maybe a bit like Backbone, except its typical development involves some special .jsx files with HTML mixed with JS.

Ember feels the most natural alternative for those who decide to avoid Angular for now. It also has a great documentation and migration stories (both things it used to lack for long but now nails).

Rails JS frameworks: Ember.js vs. AngularJS
A very good Ember-Angular comparison, heavily focused on Rails and Rails tooling etc, but there’re a few good points even if you don’t use Rails.

Yahoo now uses Ember for all internal and external ads & data web apps
An interesting reddit comment spotted and shared on twitter by Tom Dale (@tomdale), the creator of EmberJS.

Ember.JS 1.8.0 And 1.9 BETA Released
A very good example of how Ember.JS manages version upgrades. Ember 1.8.0 is equivalent to 1.3.0 in Angular, except they are handling the version transition very nicely. Note the deprecation model similar to jQuery’s when deciding to change things in a major release.

The Road to Ember 2.0 RFC
Directly from Github, a “request for comments” pull request is exactly what decides what Ember.JS 2.0 is going to be like. Amazing!

Learning EmberJS


Not really a tutorial guide in itself, but good collection of resource and plan to study Ember if you consider learning it

ReactJS

Well, we talked about Ember, so, here’s another one for React :)
BTW, React is being used in a few areas of Facebook itself I heard, like the comments.

Reactive MVC and the Virtual DOM
Apart from learning how to get started with React, this tutorial explains the approach the framework takes to work in the first place. For example, instead of extending the DOM and writing to it, React uses the shadow DOM (think the non-modifiable :before and :after elements you use in CSS for styling) for rending its views. This is very similar to the way Web Components typically works. It has some polyfill for older browsers though (up to IE8 I think).

HTML 5

Open Web Platform Milestone Achieved with HTML5 Recommendation
Do you know that HTML5 as a final W3C recommendation was only published end of last month? Yes, October 28, 2014. See the HTML5 recommendation page.

5 Obsolete Features in HTML5
First, obsolete means probably not supported. This is a bit different than deprecated which means it’s not obsolete yet but will be sometime in the future.
Here’re the five: the hgroup element, the pubdate attribute on time element, the scoped attribute on style element, the command element, and the center element (the only one a few might still be using for dirty hacks). A few are actually fun to read about!

Free Books

The following are books that you can read freely online, but you are also encouraged to buy / support them if you find them useful, to help the people working on them keep the great work.

Pro Git – 2nd Edition
The 2nd edition of THE git book, the official extensive Git reference.

High Performance Browser Networking Book
This book by Ilya Grigorik, a web performance engineer and developer advocate at Google (you should follow him on twitter or G+) covers everything about networking that many web developers should know, but they probably don’t.
I suggest you take a look at the table of contents, find areas which you feel more interesting (I’m certain you’ll find a few interesting areas you didn’t know about as you thought you did) and give them a read.

Craftsmanship

I came up with this category just to put the following article into this issue. It’s the best article I have found in a while, even though it’s not about code.

How to find your passion
Behind this very simple title a GREAT article that will make you redefine what passion is, and that’s a VERY good thing. If you don’t buy into the self-help stuff, I highly recommend you make this one an exception. A must read for pretty much everyone IMHO.

More from @Meligy / GuruStop

If you have made it that far in the issue, and you like what I brought you today, let’s connect in even more ways!

Follow Me On twitter — @Meligy

Check The Newsletter Archive — gurustop.net/newsletter

Get Friends To Subscribe — gurustop.net/newsletter/signup

Remember that you can just reply to this email or mention me on twitter to tell me what you feel needs to change in next issue. And please to tweet it to your friends too, the more people enjoying this, the more it encourages me to make it better.

Until next issue,

Meligy

, ,