Hi again,
It has been a little bit over a week and it’s time for the 2nd issue of this newsletter. YAY!

If you missed out on the previous letter, you can still read it online at http://gurustop.net/newsletter/1. As you could guess, all issues become available on http://gurustop.net/newsletter, although after a few exclusive hours for the subscribers of the newsletter itself.

Also, I’d like to thank those who commented on the newsletter on twitter. By the way, as always, I’m still looking for feedback and ideas for the newsletter.

Enough talking, let’s see this issue’s picks (you may want to ensure images are enabled for this message)…

F# — Issue Special

F# is THE functional language for the .NET framework, with some hybrid features for when you want to produce easier to consume code for, say, C#. You’ll see now why I put it first this week.

F# Workshop
This is from the very nice F# workshop I attended on Tuesday night, by @JorgeFioranelli. All source code and suggested material from the workshop are available in this repository. The workshop was brilliant BTW, if you are in Australia, tweet to @Readify and tell them to get him to deliver a dev breakfast on it again, or … something – if in Sydney check @FSharpSydney usergroup.

Angular.JS — 1.3 & Beyond

AngularJS 1.3 Improves HTML Forms
A pretty small and very nice summary of the ng-model and validation improvements in Angular.JS 1.3

The Future of AngularJS
Angular.JS 1.3 drops support for IE8, Angular.JS 2.0 (not very soon) will drop support for IE 9, and will have built-in support for things like local storage, etc, and will have something like ngData module (sounds like Ember Data), and all will be written in ES6 (distribution will be converted to normal ES5). More future insights in the post.

Angular.JS — Custom Directives

A nice directive for when you want a contenteditable DIV instead of a textarea, or custom editor library.

JavaScript — React.JS

React.JS is a JavaScript library from Facebook for building client applications similarly to Angular, except it has it’s own ways of doing weird things like embedding HTML in JavaScript files -.jsx files-, which you may reject very quickly, although I remember many rejected custom attributes and custom elements when Angular.JS first came out!

Building dynamic forms with Facebook React
I have been hearing good feedback about react, but never cared enough to look deep what development using it looks like. This small tutorial is the equivalent of a small forms demo in Angular.JS, so was good to get a very quick feel of the different way.


Slides: Supercharge CSS with SASS
One of these goodie oldies. I saw these presentation slides while transitioning from LESS to SASS and while they aren’t updated to the latest version of SASS (I think), they were a very good reference of all SASS features and got me hooked on how powerful the language is.

Support for BEM modules in Sass 3.3
BEM is a way of writing simple selectors even for hierarchies, for example .container .title becomes .content--title (the benefits are around having faster matching selectors & easier specificity management). This is usually hard in LESS and SASS if you use the nesting features because they write the complex selectors for you. This post shows what goodies SASS 3.3 will have for supporting BEM-style selectors.

Medium’s CSS
Some insight on how the social blogging platform, Medium, maintain CSS. Good tips on evolving legacy / bad CSS code basis.

Agile — Project Lifecycle

Pic: The Project Paradox
The project paradox refers to: Making the biggest decisions when knowledge is at it’s absolute lowest.


C# 6.0 What’s New
A very nice article by Filip Ekberg / @fekberg on all the features that are sure to make it in C# 6, and even which features are like to make it (or not).

Container Usage Guidelines
Some good tips when using IoC containers. should help you have nicer code and avoid performance/behaviour surprises.

ASP​.NET — vNext

Video: An Introduction to ASP​.NET vNext
I haven’t seen this video myself yet, but I saw Mads Kristensen / @mkristensen from the Visual Studio team and the creator of Web Essentials extension call it the best presentation on it he watched so far (the video is dated September 11), so, I’m using this newsletter as a note-to-self to watch it myself :)


Book: Designing Evolvable Web APIs with ASP.NET
This book by Glenn Block is a must read for most web developers IMHO, even if you are not writing ASP​.NET applications or using it’s WebAPI framework. It covers all the HTTP protocol and web request lifecycle fundamentals that a web developer needs to know and are often overlooked, and shows all the different approaches people in the REST world talk about for building APIs and when to use which. A great book!

Android — OS Compatibility

This one promises to “Run Android APKs in Chrome OS OR Chrome in OS X, Linux and Windows”. Big promise, and there must be ctaches, but probably worth having a look I guess.

Linux — Security

Bash Vulnerability Affected Configurations & Workaround
A vulnerability has been discovered in bash. Sounds scary, a bit like heartbleed in OpenSSL. Apart from what the vulnerability is, this Red Hat report shows what situations you might be exposed to it, and what workarounds you may apply. For other official vendor patches, check the relevant OS from “Platform advisories” section of this vulnerability analysis post.

Linux — Git / Fun

Pic: Go home LinkedIn, you’re drunk
Does Linus Torvalds (creator of Git) know about.. um… Git?

More from @Meligy / GuruStop

Follow me on twitter — @Meligy

Check The Newsletter Archive — http://gurustop.net/newsletter

Get friends to receive the newsletter — http://gurustop.net/newsletter/signup

Hello there!
Welcome to the first issue of this Angular.JS and web-dev newsletter. The newsletter is going to be a weekly collection of programming related findings that I find interesting throughout the week.

As the first issue, and I knew a few of you have been on the list for more than a week. The links for today’s issue are going to be from my findings in the last couple of weeks.

The different sections and links are going to evolve in the coming issues. Maybe add more of this, less of that, merge/split things, etc. — You can tell me how you want the newsletter changed on twitter or by email.

Angular.JS — New & Hot

Angular.JS Changelog (New 1.2.x & 1.3.x Releases)
Did you know that there are 2 release candidates of Angular.JS 1.3 out already? RC0 and RC1. RC2 is very close to the corner too, and the last 1.2.x version is 1.2.24. Use the page to stay updated about Angular.JS version progress.

Adventures in Angular, The Podcast
A nice podcast just for Angular.JS stuff (co-hosted by John Papa). There’re 7 episodes out already with topics like the history of Angular.JS (1st episode, I bet more details than you know), how to learn it and teach it, running meetups for Angular.JS, build processes, etc. Each episode includes some special resources picks as well.

Angular.JS — Resources

Video: AngularJS Fundamentals In 60-ish Minutes
Oldie but a goodie! This is the main resource I give to everyone who wants to learn Angular.JS. Once you get all the main conecepts

Common Problems & Solutions When Using Select Elements With Angular.JS
If there is one small part of Angular.JS that’s completely missed up, it’s the select element directive and its corresponding ng-options. It’s very hard to do simple things like have an option pre-selected without having it replaced by an empty option you didn’t add in the 1st place. That’s why this post, which shows all the select problems solved with some non-well-known tricks is the most read post in my blog today (you can skip the video at the end).

I’m not sure how popular this library is, but it can be quite useful if you are using forms a lot in Angular.JS. It generates form fields for you using Bootstrap styles, but you don’t have to use it this way. I only use one part of this library which is generating validation error labels, and showing them smartly. By smartly I mean showing error only when the field has been edited or the user tried to submit the form, etc. That’s where I find it very useful.

ng-book, The Book
From the same guy behind ng-newsletter articles, this seems to be the best Angular.JS currently available.

JavaScript — ECMAScript 6

Video: Douglas Crockford – The Better Parts
This video from April Douglas talks about ES 6 and other changes happening to JavaScript, and to his own opinions, like this alternative to object.create() that he now uses. It’s also such a fun video like other videos from Douglas usually are.

ECMAScript 6 modules: the final syntax
The final ECMAScript 6 modules syntax was agreed on in July this year. This post gives an overview of how modules work in ECMAScript 6. Pro Tip: Explore the blog when you are there, it’s a great JS source.

Collecting and Iterating, the ES6 Way
The post talks about collections in ES 6, but it also has several links to learning other areas of the language, and also to es6-shim.

JavaScript — Libraries

Flot Charts (JavaScript Library)
In my current project I needed to display a bar chart where bars show in green or gray based on some criteria. I needed IE 8 support so something like d3 wasn’t an option. Then I found Flot, and although the API was quite very verbose, I was able to achieve what I wanted. While I can’t share the project code, here’s the prototype I created to test it.


Learning Gulp
A nice visual tutorial for learning Gulp task runner.


ASP​.NET vNext Community Standup
ASP​.NET team is working on a complete rewrite of the framework in the next version. It should be able to work on Mac in production, and have autocomplete in Sublime Text, use Grunt or Gulp to combine and minify CSS / JS. Scott Hanselman started a weekly Google Hangout with the team to show what they work on that week.

What is the significance of ASP​.NET vNext? (Quick 6 points)
Whether you are someone who really likes or really dislikes ASP​.NET as it is now, in this post I have a quick summary of why the new complete rewrite in next version should be really good.

Introducing Gulp, Grunt, Bower, and npm support for Visual Studio
Microsoft decided to stop making fights that make no sense. Most clinet-side libraries are on Bower package manager not Microsoft’s Nuget Package Manager, so, they decided to support that in Visual Studio, first as an extension to VS 2013, and then soon as part of the product in VS vNext. They also support Grunt / Gulp (so, they didn’t try to declare a winner). I talk about these plans in my blog as well.


GitHub Flow Like a Pro with these 13 Git Aliases
A nice blog post by Phil Haack from Github on using git aliases when following Github flow.

Git pretty
A flow chart for showing which git commands you might want to use in different cases.

UI / Design

Grunt Email Design Workflow
A Grunt workflow for designing and testing HTML email templates with SCSS. I haven’t played with this myself (so no, it’s not used to produce this email), but it’s kinda promising. I already use SCSS and use PreMailer.NET to inline CSS in emails sent from the applications I develop.

UI Gradients
A nice tool for gradient hero content inspirations for any landing page you might be creating.

Design Tips for Developers
Since we devs ending up mocking with designs a lot of the time, these are targeted resources for helping with that.

More from @Meligy / GuruStop

Follow me on twitter — @Meligy

Check The Newsletter Archive — http://gurustop.net/newsletter

Get friends to receive the newsletter — http://gurustop.net/newsletter/signup

, , , , , ,

The Question:

This is a question I found recently on Quora:

What is the significance of ASP.NET vNext?

I do not have much info on the topic more than watching some relevant TechEd videos, etc, but I managed to provide an answer and thought it might be good material for a quick blog post:

The Answer

Several things:

  • Real cross OS support. Microsoft is testing it even under Mono on Mac OS.

  • Much lighter framework, meaning it’s faster, and can handle more requests per second using the same hardware

  • Highly imporved compilation speed and workflow. Speed is due to compiling in memory not to disk), this ends a real slow productivity killer in large projects, the workflow improves as developers just save a file, refresh the browser and get the changes just like in JavaScript, CSS, etc

  • New codebase, meaning less need to know which defaults you need to change to get the behavior of a version that fixes a bug in a previous version, more testing-friendly APIs, etc

  • Better Node.JS integration, allows ASP .NET developers to easily get access to JS tools available at Bower package manager for example

  • New and clean replacement of MSBUILD (for ASP .NET only), allowing developers to easily write tasks similar to grunt, etc instead of complex and limiting MSBUILD tasks.

More Info

The best resource for ASP.NET vNext is simply http://asp.net/vnext – you can also check this video linked from that page:

, ,

Update 3:

Update 2:

Scott Hanselman announced it as well

It also looks like Grunt and Bower are not as far as ASP.NET vNext is, they’re coming quite soon!

Update 1:

Turns out the original bit about supporting Grunt is not breaking news (video). The video is definitely worth watching. It suggests Visual Studio will have special tooling written just for Angular.JS for example, and increase Bootstrap tooling as well.

So, I saw a nice tweet from Mads Kristense (creator of Web Essentials and one of the team working on Visual Studio tooling):

It was about Visual Studio tooling for Node’s packages.json file.

Side Note

If you are interested in the particular plugin in the previous video:


So, I was like:

But then guess what? I got this reply!



I retweeted the tweet, and a smart colleague of mine asked:

The answer was that it’s coming, just after Grunt, as in:

So, yeah, as my friend and colleague Joshua McKinney said:

Then later, as shown in Update 3 of this post:

Thanks a lot, Mads and Microsoft.

, , ,

Hello again and welcome to another Angular.JS video. This time I talk briefly about templates in AngularJS and the ng-include directives, and how to combine them to create recursive templates that can be used to model any number of tree levels.

Here’s the video. Check the code snippets belows:

The Code

In this demo, I used a dummy controller just to have a model to work on, the controller looks like that:

The obvious magic comes from the HTML, here’s the relevant part:

You can see the result below:

AngularJS Tree Demo

I hoped you liked this one, and until next video.

, ,