Friday, August 08, 2014

I just listened to the JavaScript Jabber Podcast episode 115 with Guy Bedford.

This was an interesting podcast for me. It felt like I was hearing from someone who was working on the future design aspects of the browser environment and JavaScript language features we may find commonplace in 5 years. The spec process that determines all this is quite slow and in that line Guy Bedford mentioned the date of the
ECMAScript 6 (ES6) spec completion has now been moved into next year.

The tools that have been built  to validate the concepts of the spec, have impacted the way the spec is written - by seeing what works and what does not work - and corresponding changes get made based on testing of the concepts being proposed in the spec. The discussion also highlighted that the hooks that are built into the browser is going to be a different spec based on the completed ECMAScript 6 spec.

Guy Bedford has been working on some open source libraries to manage the modularity of JavaScript, which was the topic of my last post. ES6 will have modules; today there have been two competing formats - AMD and CommonJS.
The Projects that Guy has worked on build upon one another:

The SystemJS will load any of 3 styles of modules (ES6,AMD,CommonJS) which is designed to work with the ES6 Module Loader - and make them work together.

JSPM - a JavaScript Package manager built on SystemJS. (It sounded like you could load NPM modules with this too)

Inside of the SystemJS they provide a build process for production systems that will make the modules CSP-Compliant (Content Security Policy) so that the systems are less vulnerable to attacks.

There are Transpilers involved in getting the ES6 testing done here and may even work down to IE8.

The architecture of these ideas feels like a good direction. One of the comments in the podcast is that it will have to become more complicated before it becomes more simple. These ideas are being transpiled(Translating ES6 source to ES5 source), and not built into the browsers yet - but the browsers are changing so fast now that we may see these features in the next few years in all the browsers - which will also mean that most browsers(if not all) will be "evergreen" - self updating.

It has also become obvious that Node has become one tool that every web developer must learn.

Friday, August 08, 2014 5:17:36 AM (Eastern Standard Time, UTC-05:00)
 Monday, May 26, 2014
One of the talks that I attended at TechEd 2014 was on TypeScript and managing a Large JavaScript code base.
The developer speaking works for Microsoft on the "Monaco" project - that was converted to using Typescript for programmer safety - when the code base exceeded 100K LOC.  This is where TypeScript has a sweet spot - to give you the modularity from the intellisense and programming structures within Visual Studio.

I still agree that developers should know and understand the JavaScript language first before learning TypeScript - as you should know your language - and be able to explain the output that TypeScript is using.

Typescript can output the modularity as AMD or CommonJS (which is more prevalent with NodeJS).

Just as developers should know the language of JavaScript - understanding the basis of the Modularity and what ES6 is planning is very fundamental to having a broad basis of what your application is doing and why.

Addy Osamani's writeup on Modularity is a good start to that - and I would recommend it to developers needing to round out their understanding of JavaScript modularity concepts.

Monday, May 26, 2014 10:29:18 PM (Eastern Standard Time, UTC-05:00)
 Saturday, April 19, 2014

In looking over my twitter feed a few days ago - I saw the tweet by Rob Eisenberg  and read his post that Angular and Durandal will converge and he is working with Google to develop AngularJS version 2.0 - he did write a post on the angular website too.

Durandal 2.x will be supported and is not going away - however Rob's energy is going to the new version. The post he wrote explains how this came about and how these two projects converging will actually benefit developers by putting together some incredible minds in melding together two of the more impressive frameworks that I have looked at over last couple of years.

I just wonder how the AngularJS Manning MEAP book I ordered - due in the Fall - will handle this news - and hope that they change the basis of the book to be AngularJS version 2 - instead of the current version 1.

The learning that I have been doing with Durandal will still be good - which you can understand in reading his posts.

The learning that I have been doing will still be valuable. It sounds like the improvements to Angular with Rob Eisenberg working with them will be a nice team to create a great framework. I look forward to learning the result.

Friday, April 18, 2014 11:08:09 PM (Eastern Standard Time, UTC-05:00)
 Sunday, March 23, 2014

A couple of weeks ago, I had some internet connection issues with my ISP providers equipment. To resolve the issues -I had to make an appointment - and that meant being at home to wait for them to show up to fix the equipment -without a working internet connection.

 I tried the YouTube App on my phone for the first time. I saw a 2013 CSSConfUS  talk by Pamela Fox titled "When Bootstrap Attacks" , where she talked about the work she  did on the Coursera web site(apparently she is now at Kahn Academy).

 It was a half hour presentation on upgrading  the Coursera site from mixed versions of Bootstrap to a single version across a mixed code base - old and new. The work to upgrade to one version was made difficult because of the Bootstrap class names were in the HTML, the CSS and the JavaScript code - and the older code was PHP which would have that all mixed with SQL Statements also in the mix - so identifying just the bootstrap classes within the entire code base was not  easy.    The Coursera sites new Architecture uses BackboneJS, and Jade (requires NodeJS)  for templating and Stylus for CSS (a CSS Preprocessor Library similar to Less and SASS)


Finding things by name in the source code base was problematic, and would have been easier if there were a namespaces in the CSS.

She said that Bootstrap has an open issue in their backlog to Prefix their classes - but that they have not made it a priority. She suggests having your own classes that Extend the BootStrap classes using SASS (even though she really is using Stylus).


She also recommended that you publish your own style guide documents for your team to use and not use the Bootstrap docs. She suggested moving away from using the Bootstrap JavaScript and using their own; also not using the Styling CSS Classes in their JavaScript -they could use a JavaScript targeted CSS class (adding a  js suffix on the end) - so that the separation of style and functionality can remove the impacts on the JavaScript dependency to the CSS Class names. With HTML5 you could use Data Attributes to hook into things instead of using the CSS Classes. Keeping Styling and functionality concerns separate - reinforced the Separation of Concerns for these promotes better maintainability.

Pamela Fox also mentioned that she also started to introduce testing to their site -" if the front end does anything at all - you need to test it" - Mocha , Chai, JsDom and Selenium were used to start getting testing done on her site.  (Needle uses Selenium + Nose using python - to do screen shot comparisons from a good state screen shot when pixel  layout can impact functionality if not all of a set of data is visible due to CSS Changes-she has not actually used it) It is best to start this test development early so that you have plenty of tests. They have only reached a 2% coverage so far (as of 2013 talk).


You need to test that your separation of these concerns effort has not broken something and by lessening the dependencies you have a much better overall maintainability with test coverage automation will ease future maintenance - so if you plan on using Bootstrap or any other CSS Framework - keep the idea of separation of concerns in mind so that you do not trap yourself into a maintenance issue corner. That talk was a good followup on my look at Durandals use of Bootstrap.

Sunday, March 23, 2014 10:10:49 PM (Eastern Standard Time, UTC-05:00)
 Tuesday, February 25, 2014

The last month has been very busy. So, unfortunately I have not been able to do much research on BootStrap as I would have liked. Bootstrap is a good framework for getting workable HTML with CSS for a set of controls for a web UI that is very usable. The risk is that you could have a broken UI if they change the tags and CSS, on a later version. An advantage of using this framework is that you have a good basis to start from; you could bring in a true designer to re-skin your website/application by just updating the CSS.

Bootstrap as a combination of JavaScript, HTML with classes for CSS to style makes for a very powerful basic site.

CSS can be challenging and the use of a basic framework for a layout can be a time saver.

I hope to get some time to look into the use of FontAwesome and Bootstrap together.

Tuesday, February 25, 2014 10:44:47 PM (Eastern Standard Time, UTC-05:00)
 Thursday, January 16, 2014
Well, right off the bat, those initial Starter Kit issues I saw with Durandal, turn out to be the 2.01 changes were released just as Bootstrap 3.0 came out - which seems to have broken some parts - and the use within Durandal of the old FontAwesome is not compatible with Bootstrap 3. The  Durandal-Google-Group during the first two weeks of January had this info - so I will probably need to look into the Bootstrap 3 and FontAwesome pieces first in my exploration.

Thursday, January 16, 2014 9:58:53 PM (Eastern Standard Time, UTC-05:00)
 Tuesday, January 14, 2014
DurandalJS JavaScript Framework for Learning in 2014 - is a first post for 2014. I hope to use the framework for learning more about JavaScript, and Single-Page-Application approaches, and tools around the JavaScript community that are also used in the framework. JavaScript application Architecture, use of BootStrap, and Fontawesome, some NodeJS, and even some TypeScript - while using RequireJS, KnockoutJS, and jQuery. Overall it should be a good learning tool to exercise some tools that I have not experimented with. This post is how I came to decide on this framework.
Tuesday, January 14, 2014 6:12:55 PM (Eastern Standard Time, UTC-05:00)
 Thursday, September 12, 2013
Plugging into the developer Community. How a twitter feed led to a ton of other great information, and why it is important to be connected to the developer community.
Thursday, September 12, 2013 2:56:16 AM (Eastern Standard Time, UTC-05:00)