Saturday, 13 August 2016
At CodeStock 2016 David Neal mentioned several electron based software releases. I had seen that there was an electron examle for using Google Play for music playing on your desktop - and I found the source code for it google-music-electron on github - so I forked it and cloned it.Then I needed to learn how to update the NPM packages this stackoverflow article helped.

In the comments on the Stackoverflow article they mentioned the folowing was needed install -g npm-check-update. Once that is installed the command ncu -u will update the package.json file and then you just run npm install. Then when you run npm outdated you should not get any results.

Going to the NPM getting started on this I found the updating idea confirmed

Saturday, 13 August 2016 14:12:12 (Eastern Standard Time, UTC-05:00)
 Sunday, 08 May 2016
Before cloning some Git repositories to study, I decided to update my laptops version of Node and GIT. As the Git 2.8.2 installed - I noted that Vim was installing - but it does not get a path to the install. I went and located it
 C:\Program Files\Git\usr\bin
which has a few program - but the VIM default editor is there - and of course you need to remember to use ESC :q for exit.

Years ago the Pragmatic programmer suggested using an editor that you can use on all platforms - and with this being the default editor for Git - it is a direction that I can work on a bit - as going between environments is something people have to be ready for -  Vi is the editor that Vim emulates.   Of course you can change it - but being prepared for whatever environment you are looking at seems like a good idea - and in line with the Pragmatic programmer book advice.

Sunday, 08 May 2016 13:01:59 (Eastern Standard Time, UTC-05:00)
 Monday, 10 August 2015

I have been a longtime listener to the DotNet Rocks show (I have received two .Net Rocks coffee mugs from my comments on shows).  I know that they attend the Norwegian Developers Conference which occurs in Oslo - and recently has also happened in London. Rob Eisenberg visited Atlanta to do a talk on Aurelia, and he mentioned he would be presenting in Oslo at NDC. Years ago I attended a session on Erlang withBryan Hunter - and he has a talk from the 2015 NDC and he was interviewed for DotNetRocks and had a great discussion with Carl and Richard for the show. The Oslo version has their talks online at  Vimeo

This makes for  a great opportunity to find some great programming talks that may have DotNet Rock shows where they interview the speakers. Could be a great conference to check out in the future.

Monday, 10 August 2015 21:36:22 (Eastern Standard Time, UTC-05:00)
 Wednesday, 04 February 2015

At my employer they are implementing a build tool that I was asked to create a batch file that would execute an MSBUILD from the batch file. It has been a while since I have had to work on scripting in BAT files - which goes back to the original MS-DOS operating system.


I found myself struggling to get little things to work - mostly due to unfamiliarity or not having used some parts for years - I have focused on using Powershell since 2008 and used VB script and Cscript for the ten years before that. The BAT command file format was something I used - but only as needed.  This new task brought back some old and new challenges.


The one thing that took me the longest to realize was that setting variables does not allow a space between - in Powershell and VBScript - that had not ever been an issue - but in the bat file - it took me some time to realize that this was why variables were not present after setting them.





In the two lines above - VAR1 will have no value after the SET statement runs and VAR2 will have a value - because of the whitespace.  It took me a long time to reach that discovery - which is why I am writing this. Hopefully it helps others.


The batch file sets variables that go to the environment variables within that session.  I learned a few things to help with the batch files.


In my searches for information on what I was missing - I found a great little series by a Steve Janson on Batch commands. The writeup was clear and gave good tricks that were needed to accomplish this task correctly.




The main trick for a batch file - is to use the





The pairing of those two protect the variables to not be set to the environment variables - effectively making the SET variables to be private variables to that task at hand - which was a nice touch for batch processing.


In trying to figure out why the variables would not have a result - I found a technique that would detect and exit the script.



REM == IF THE LOGDIR is EMPTY go to the ERROR  for this condition.








REM ====================================================



REM =====================================================


@ECHO The PROJROOT variable was NOT detected.




@ECHO The LOGDIR variable was NOT detected.






The SETLOCAL and ENDLOCAL  scope the SET XXX variables to that section of the batch script - that was something I had not seen - and in keeping the session environment variables clean made that very handy.


There were some reference links I found that might be useful later too.


Wednesday, 04 February 2015 22:18:46 (Eastern Standard Time, UTC-05:00)
 Saturday, 31 January 2015

Earlier I started the idea of learning the Durandal framework that Rob Eisenberg wrote.  Then last year he was brought onto the Google team for writing Angular 2.0 - and Rob gave the presentation at the ng-europe conference on the Routing framework - that was usable for both Angular 1.3 and Angular 2.0.


Rob Eisenbergs work on the Angular team gave me hope that the merger of Durandal and Angular had to be the best of the best working together. However shortly after that  ng-europe conference - Rob left the Angular team - and it seemed like nothing was going on -his lack of community presence was noticable - in fact the evening of Jan 26, 2015 - I was speaking to the .Net user group leader about volunteering to speak on a topic - maybe Durandal and Angular. We discussed that Robs lack of postings was odd - which turned out to be the same day that Rob Eisenberg posted his announcement of a new framework being available - Aurelia.


I have now picked this framework to study - and do a presentation on for the user group.  There are similarities to Durandal - which should be expected.


Aurelia is expecting the browser to support ES6 as the new ES6 classes form some of the basis of the architecture of this new framework - what Rob sees as the "direction of the web" - that he mentioned in his post of leaving the Angular team - he did not agree with their direction now.  Today - on the CanIUse site - that might limit the browsers to Chrome, Firefox, Opera - they are about 85-90% implemented in those browsers - I have not seen any numbers on the new Spartan browser for Windows 10.  (The leader of the local JavaScript user group made the statement that Firefox was the most compliant overall browser - it may refer to


I learned of Rob Eisenberg at the 2013 Orlando code camp - and have tried to follow what he is up to since - I consider him one of the best JavaScript developers I am aware of - and one to certainly learn from.


In order to learn - you have to teach - and doing a presentation will put me into that position - where you will retain 80% of what you learned - in order to teach the subject. That would be a win-win for me.  I am excited to get started.

Saturday, 31 January 2015 14:08:44 (Eastern Standard Time, UTC-05:00)
 Sunday, 25 January 2015
I was catching up on my podcasts and on HerdingCode -  heard Scott Koon say that Rob Eisenberg left the angular team - apparently back in November just after the NG conf post. Here is Rob Eisenbergs blog entry on his thoughts about it. The Herding code group talked about the way that Angular changes have really upset the prior users of the framework - and then hearing about Rob Eisenbergs leaving the team - felt like the right thing for him to do - not where he wanted to take the web.

So I may be renewing my efforts to dig into how Rob is going forward with his framework - he has a great standard of development and is extremely bright developer.

Podcasts are  a great way to catch up on the community when you have been doing other things that dont allow you to keep up directly.

Sunday, 25 January 2015 23:12:16 (Eastern Standard Time, UTC-05:00)
 Friday, 08 August 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, 08 August 2014 05:17:36 (Eastern Standard Time, UTC-05:00)
 Monday, 26 May 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, 26 May 2014 22:29:18 (Eastern Standard Time, UTC-05:00)