node

ConnectJS and All Things Open

Last month I had a pleasure to speak at ConnectJS and All Things Open conferences.

ConnectJS

ConnectJS 2015

ConnectJS was not only about JavaScript, but about web development in general. There was even track dedicated for UI Design and User eXperience. The most popular during the conference were talks about ES6/ES2015 and React.

I delivered two sessions:

TDD with TypeScript, AngularJS and Node.js

// video coming soon

Code

Aurelia – the next generation Framework you will love

// video coming soon

Code

I addition to my talks I attended the following sessions:

Everything I Needed to Know, I Learned in Rabbinical School (Yitzchok Willroth) – this session was about sharing knowledge, and cooperation between developers. One thing I noticed, not only at conferences, but also at local meetups in Seattle area is that many people would like to go and speak at the conferences, but “they aren’t doing anything interesting in day-to-day job and they are not expert in anything”. They should have been at this session. Yitzchok was explaining how you can help others, and engage in Open Source. Moreover, he emphasized one, simple truth: every developer has something interesting to share.

Building Web Sites that Work Everywhere (Doris Chen) – very useful overview of web compatibility problems, and recommendation of tools that can help with that, like Autoprefixer. I also liked the quote from Patrick Lauke: “The userAgent property is ever-growing pack of lies”. Doris recommended that we should prefer feature detection over relying on userAgent strings.

Re-evaluating Front-end Performance Best Practices (Ben Vinegar) – the most important lesson learned at this session is the fact that whatever you find in JavaScript books written 2+ years ago might be already obsolete. Moreover, whatever you learn today, might be obsolete tomorrow. This is definitely not a good news for developers, but we need to deal with that and when reading anything on the web – thinking for ourselves.

Video killed the Telephone Star (Ben Klang) – WebRTC is coming to the browser. In this talk Ben demonstrated web app that allows to do a video conference (his implementation of Google Hangouts in Rails).

Lessons learned with TypeScript and ES2015 (Dylan Schiemann) – it was an overview of TypeScript and ES6 based on experience working on Dojo 2 Framework – the second largest application written in TypeScript (after Azure Portal). After this presentation I talked to Dylan, and he showed me another projects his company SitePen is working on: Intern – very flexible and powerful testing framework, and Mayhem – JS Framework written in TypeScript (still under development).

Functional Programming Basics in ES6 (Jeremy Fairbank) – tips&tricks you can do in JavaScript(ES6), but you cannot in OO strongly typed languages like C# or Java.

Lessons from Open Source @ Scale (Christine Abernathy) – Facebook has over 300 repos in github (after this talk I checked how many Microsoft have – almost 300). Christine explained how they help community by delivering Open Source, and how community helps them by contributing to their software.

Introducing Trix (Javan Makhmali, Sam Stephenson) – Javan and Sam created web based text editor, and they open sourced it right after this talk.

The rise of “API” first applications (Travis Tidwell) – this talk was about Micro Services, and modern applications architecture where we have multiple, independent endpoints responsible for one functionality each.

It Was Like That When I Got Here (Paul M. Jones) – it was a great talk about approaching legacy applications, and refactoring techniques. I enjoyed it even despite the fact that Paul was using PHP examples…I actually felt a bit sentimental as PHP was a language that get me started with Web Development when I was back in middle/high school 🙂

All Things Open

All Things Open 2015

All Things Open is one of the largest Open Source conferences in the United States. This year there was over 1700 attendees, and 13 tracks!

I gave a talk about TDD with TypeScript, AngularJS, and Node.js – the same as at ConnectJS.

On a day before the conference there was 5k run/sightseeing event at the evening. It was exactly what I needed before 2 days of seating. Kudos for organizers 🙂

Most of my time during the conference I spent in the room with front-end related sessions. Carina C. Zona explained problems with artificial intelligence and machine learning – Consequences of an Insightful Algorithm. Seth Vargo made an overview of Vargant – product that allows to create and configure universal development environment for every developer in the team. Christian Heilmann was encouraging people to learn JavaScript, ECMAScript 6, and to stop supporting old browsers, such as IE8, that has security vulnerabilities. Yehuda Katz explained how he and other contributors of Ember.js created version 2 without breaking a lot of APIs from version 1, and thus allowing developers for a smooth transition. I also liked the session about Netflix architecture by Andrew Spyker. I wish Andrew had more time to explain details more deeply. The surprising takeaway is that Netflix has 3x of everything. Which means – for every server, service and API they have additional 2 redundant.

The most widely commented session at the conference was keynote by Mark Russinovich. I was pretty surprised that people were surprised by Microsoft doing so much Open Source. For me this is a known fact for a few years now, but it seems that the rest of the World doesn’t know yet, and still see Microsoft as closed-source corporation that want to lock you in their technology.Well…that’s not true anymore. I also had a pleasure to met Christian Heilmann – former Evangelist of Mozilla who joined Microsoft with one mission: kill the Internet Explorer. I really enjoyed his session on ES6, and keynote.

At the speaker dinner I had a pleasure to seat at the table with Andrew Spyker from Netflix, Michael Laing of New York Times, Christine Abernathy from Facebook, and Eric Martindale – entrepreneur from Silicon Valley. We had interesting conversation of the future of Netflix, Internet Television, bitcoin, and digital newspapers. I also learned that New York Times is the only news paper that is profitable in the transition from paper to electronic.

At All Things Open I finally got awesome Ninja Cat stickers:

ThinkPad X1 stickers


IP heatmap generator

IP heatmap generator

Recently, we were looking at the error logs of the Azure Portal. One of our ideas – in order to investigate errors that were hard to diagnose – was to check in which part of the World users who get errors are located. The assumption was that people from, e.g., New Zealand might have slow connection issues (timeouts) more likely than people from USA or Europe. I couldn’t find any tool that does that, so I put a simple website at ipheatmap.azurewebsites.net. The main page use geoip-lite node library to geolocate IP address. For cross-check, you go to ipheatmap.azurewebsites.net/ipinfo.html, and the IP will be located using ipinfo.io API.

Creating website + setting up deployment from github took me less than 5 minutes on Azure. I didn’t have to do any special configuration to get it work. I didn’t even have to leave the Azure Portal to lookup github url, because it fetches all available repos automatically after you provide your credentials. Even better: repos are sorted by creation date – thus the recently created repo (one that you would choose most likely) is on top of the list.

Source code is available on github: https://github.com/jj09/ip-heatmap-generator.


Seattle Code Camp: Aurelia and TDD with TypeScript, AngularJS, and Node.js

Last Saturday I had a pleasure to speak at Seattle Code Camp. It was an amazing event, which was free. There were over 50 talks, 500 attendees, and raffle with many prizes, e.g., Microsoft Surface Pro 3!

Seattle Code Camp - Aurelia

Aurelia – the Next Generation JavaScript Framework you will love

Aurelia is a next generation JavaScript client framework that leverages simple conventions to empower your creativity created by Rob Eisenberg, creator of Durandal, who left Angular 2 team to create cleaner and simpler JavaScript framework of tomorrow written in ECMAScript 7!

In this talk I am showing how to get started with Aurelia, and how ES7 (aka ES 2016), JSPM, System.js, babel, and gulp can make you development amazingly fast, smooth, and enjoyable.

Video

Slides

Code

You can find demo app I created during presentation on github.

TDD with TypeScript, AngularJS, and Node.js

TypeScript helps to develop and maintain large web applications. Strong typing prevents from introducing bugs, but it doesn’t mean we can give up on testing. In this talk I showed how we can use TDD for building web applications with TypeScript on the client side (with AngularJS) and server side (with NodeJS). I showed a few JavaScript testing frameworks (mocha, Jasmine), and showed a few tools that can make Web Developer’s life easier (npm, gulp, bower, tsd, karma, protractor).

Video

Slides

Code

You can find demo app I created during presentation on github.

More is coming

I will be speaking about Aurelia, and TDD with TypeScript, AngularJS, and Node.js at various events this fall. You can find more details in my speaking page.


TDD with TypeScript, AngularJS, and Node.js

On July 1st I had a pleasure to speak at Seattle Node.js meetup about unit testing and Test Driven Development with Angular.js and Node.js, using TypeScript.

In this talk I gave an overview of JavaScript testing frameworks, and tools. I also demonstrated how TypeScript can strengthen your tests by adding free unit tests (type checking) thanks to strong typing.

The demo code is available on github.

The site I created as a demo is live on Azure: tddvoting.azurewebsites.net.