Monday, November 23, 2015

Weekend Reader, Week 47

Highlights from AngularConnect 2015

The post is a very good overview about the progress of Angular 1 and 2.

Angular 1 ist still making progress. I am looking forward to the component syntax and also to the component router and the new internationalization features which both are shared with Angular 2.

I am a concerned about the ever growing scope of Angular 2:

  • They plan to deliver their own command line interface called Angular-CLI for integrated tooling
  • They want to support APIs in 4 languages: ES5, ES6, TypeScript and Dart
  • They want to support the MV* pattern but also the Flux pattern for separation of concerns
  • They want to support different rendering targets besides html to support native mobile applications
  • They want to use WebWorkers to run most of the Angular code in a seperate process

I am really curious how all these features will turn out in regard to complexity and developer experience.

JavaScript Community in Bern

Just a reminder for the "Bärner JS Talks" happening next wednesday.

Very interesting topics, I am looking forward to all of the three talks.

The Thing about Bower

There is something going on around bower

It was proclaimed dead on redit

One reason for that proclamaition was this discussion on github.

As a reaction the bower team posted the following post: Bower is alive, looking for contributors and started a crowd funding initiative.

Meantime in the Microsoft World, VisualStudio is still betting on the bower horse and improved the integration with a new Bower Package Manager UI for ASP.NET 5.

Personally I am currently a fan of modern JavaScript workflows based on NPM/Webpack or JSPM … no bower for me anymore.

If you want to get rid of bower, the following post might be a good starting point: Why We Should Stop Using Bower – And How to Do It

New Rules for JavaScript

Kyle Simpson ist known for having other opinions about “best practices” in JavaScript. In this video he questions many common practices and rules of current JavaScript programming.

Business: Nobody Wants Your App

An interesting article as an interesting following up on "Don’t base your business on a paid app"

The article shows the story of a startup that wanted to create an app … and was not that successful.
Interesting is that they had a good visibility, but nobody wanted to download for the app:

One download for every one thousand web views.

The conclusion:

The app world is so bloated, it’s overwhelming to the consumer.

I see that effect myself: Some years ago I was browsing the App store to detect new cool Apps, but now I can’t remember when I actually opened an App Store the last time…

Tools: Classeur

I am using Markdown a lot. For my courses and for blogging. But I am still looking for my favorite Markdown tooling. For some time I have been using StackEdit for blogging. Recently I discovered which makes a neat impression. I am writing this post right now in Classeur …

Programming Humor: FizzBuzz Enterprise Edition

Fizz Buzz is a famous programming exercise, suggested to be used in programming interviews. A solution in JavaScript might look like this.

Somebody made an enterprise version of Fizz Buzz in Java … Hilarious!

Tweets of the Week

Saturday, November 21, 2015

Quo Vadis JavaScript?

JavaScript went through a makeover extraordinaire with ES2015 which was finalized this summer.

This is not your grandma’s JavaScript any more:

import React from 'react';

export default class Catalog extends React.Component {
    buy(product) {
    render() {

But it seems this was just the beginning… the metamorphosis is far from done for JavaScript.

For future versions of JavaScript there are many proposed new language features. Among the most outstanding proposals for me are decorators, async functions and private state

Some years ago nobody would have believed that the following snippets are (will be) valid JavaScript.


export default class CatalogStore {
    onSearchLoaded() {

Async Functions:

async function fetchJson(url) {
    try {
        let request = await fetch(url);
        let text = await request.text();
        return JSON.parse(text);
    catch (error) {
        console.log(`ERROR: ${error.stack}`);

Private State:

class DataObj {
  private #data1;

  constructor(d) {
    #data1 = d; 

  get data() {
    return #data1;

I think its now safe to say that Silverlight and Flex were failed attempts to bring other languages than JavaScript into browsers … but looking at the snippets above, it might sure look like some C#/Java infiltration squad sneaked into the Ecma building …

Babel and TypeScript both already support decorators and Babel also supports async functions (TypeScript is working on it). So you can use those language features right now in a modern JavaScript project setup.

Of course the JavaScript ecosystem/community is going through a tremendous development and learning process right now. We are slowly getting the new features piece by piece and figuring out how to use them … while that slow metamorphosis process can be healthy, it can also be painful…

In the future, once JavaScript has completed it’s metamorphosis, people might legitimately ask why we did not just integrate C# or Java into the browsers … ?

Tuesday, November 3, 2015

Karma and Protractor Illustrated

For my JavaScript / AngularJS workshops I created two illustrations to explain how unit-testing with Karma and end-to-end-testing with Protactor is working:

In both setups the code is running in the browser. The main difference is, that with Karma I am testing isolated ‘code-units’ that are run individually, there is no complete running application involved.
In the Protractor setup a complet running application has to be availabe and the test drives a browser to interact with this application.

Wednesday, October 28, 2015

Next Teaching Engagements

During winter 2015/16 I will deliver inhouse courses about development with JavaScript and AngularJS to teams at Puzzle ITC, mtrail GmbH, Mobiliar, Postfinance and SBB.

I will also deliver public courses for DigiComp and TechTalk:

At DigiComp my next course “Frontend-Entwicklung mit AngularJS” is scheduled for December 17th & 18th 2015 in Bern.
There are already enough registrations so that the course is guaranteed to take place, but there is still room for more participants …

I am delivering a three day course “Front-End Development with JavaScript, AngularJS and Visual Studio 2015” for TechTalk.
The course will take place:
- November 16th - 18th 2015 in Vienna
- January 25th - 27th 2016 in Zürich
… there are still places left.

Monday, October 26, 2015

Weekend Reader, Week 43

Angular Connect

Last Week was the Angular Connect conference in London.
Unfortunately Angular 2 is still alpha … the highly awaited beta version was not released at the conference.
Besides Angular 2, TypeScript and Reactive Extensions seem to be the technologies that you should start to look into for future develoment with Angular.
The sessions are available on YouTube, I am still catching up, but the qualtity of most sessions is very high.

The Angular team also updated the docs for Angular 2, definitely worth looking at …

JavaScript Community in Bern

Next Meetup of “Bärner JS Talks” is on November 25th.
Next Frontend Pizza is on November 3rd.

Don’t base your business on a paid app

The App and Play stores have turned out to be exceptionally poor places to run a software product business for most developers.

DHH (the creator of Ruby on Rails) argues against the myth of profitability of mobile app development today. Apps are a great distribution channels for services, but they are not the product you should try to make money with.

SVG Porn

Nice logos made with SVG.

A cartoon guide to Flux

Flux is not easy to grasp. This illustrated guide is a funny intro into the pattern.

The State of JavaScript on Android

the fastest known Android device available today performs 5× slower than a new iPhone 6s, and a little worse than a 2012 era iPhone 5

The post is highly interesting. It seems that iOS users are much better off using modern web sites and the Android ecosystem is actually threatening to hold back the progress of web technologies …

Is Eclipse Dying?

Eclipse is not the shiny thing every developer loves any more … but is it really that bad and is the predominant IDE dying?

Video: Web Development in 2020

Web Development in 2020 - Steve Sanderson from NDC Conferences on Vimeo.

Steve Sanderson looks into future trends of Web Development.
An interesting Presentation with a very funny intro.

Tweets of the Week

Friday, October 9, 2015

React vs. Angular: A personal anecdote

I am currently working for a team that is about to build a web frontend for their in-house legacy system. The web frontend is basically a greenfield project, and the team can freely choose their technology stack.

I developed a small technology prototype in AngularJS and React. For both solutions I used npm and webpack as a build environement. In the AngularJS solution I used TypeScript and in the React solution I used ES2015 (formerly ES6) and Babel.

The prototype is here:

I presented both solutions to the team, and let them decide which stack they like to choose for the actual project.

The team decided that they felt more comfortable with the solution based on React.

There were two main reasons:

  • AngularJS is currently in a strange state, since Angular 2.0 is announced and hyped but not ready for production yet. If you start a project based on AngularJS now, you get the feeling that you are writing in a legacy technology right from the beginning.
  • The React solution left a conciser impression and was clearer to grasp by the team. For example to realize a “component” in AngularJS you have to understand Directives (a DDO is pretty arcane for a newbie) and the implementation is spread over several entities (DDO, controller, template …). In contrast to that the approach of React to components is much easier to grasp.

This decision was made some weeks ago. In the meantime I set up the real project with the following components:

Monday, September 14, 2015

Weekend Reader, Week 37

Security: How a bug in Visual Studio 2015 exposed my source code on GitHub and cost me $6,500 in a few hours

Wow! Amazon and the Hackers are both continuously scanning public repositories for passwords!
This story should make you reconsider where you leave your credit card information… things might get out of hand, even if you think that you are just using a free service …

Agile: Avoiding the most common pitfall of large-scale agile

Gojko wrote an interesting article about the current trend of scaling Agile. Unconventional as always, he draws anaglogies with “The Lord of the Rings” and escaping a concentration camp in WWII.
He argues that our industry is obsessed with effort instead of focusing on outcome.
His main explanaition why Agile does not scale in most attempts is:

On a small scale, effort does boost outcome.[…] On a larger scale, effort no longer directly relates to results.

Salary in IT: An endless topic on Quora

Interesting to see different perspectives. Although I have a hard time to take the second answer seriously. In my experience not many enterprises are looking for the mythical “10x engineer” and are willing to pay these extravagant figures …

Stack overflow has also some info about salaries.

SwissJS: Videos of the sessions are online

If you missed SwissJS last July, the recorded sessions are now available on YouTube.
If you just want to watch one session, I recommend “Creating UIs for the WebA Audio API” by Stephen Band. His usage of the browser to create music is impressive and its a refreshing non-enterprisy topic.

Video: How to make your code sustainable

Christin Gorman is adressing the problem of over-engineering in typical business applications. This one is more serious than previous presentations by her, but she kept her refreshing way to present …

How to make your code sustainable - what they don't teach you - Christin Gorman from JavaZone on Vimeo.

Community: First JS Community Meeting in Berne

Four intereting talks. I am looking forward to this event …

Tweets of the Week

Related Posts Plugin for WordPress, Blogger...