Yuriy Dybskiy

Curious JavaScript Engineer, html5cat

Today We Mourn

Following Eric Meyer’s posts during the last couple of weeks was very hearbreaking. Brings a lot of perspective to day-to-day problems we have.

Today we mourn.

#663399Becca

Meteor Devshop Lightning Talk

Since August 2012 I’ve talked at and hosted Meteor events in Vancouver, Portland, Seattle and Buenos Aires. In this lightning talk I’m sharing my experiences and why you might want to host or attend a Meteor event too.

Laptop Sticker Standard

or: “How standards are made on small scale”

Yesterday Max Ogden stopped by EsriPDX offices and amongst other things showed his new laptop sticker collection. We quickly agreed that there should be a standard for them and that the most useful one seems to be 2”x1.75” hexagons. I tweeted it and the reaction was way more amazing than I expected.

According to Twitter Analytics this tweet had “160x normal reach” (Update 285x as of Apr. 14).

I think there are two forces at play here:

  1. Max is undeniably awesome.
  2. Laptop sticker sizes are indeed in need of some standards.

Terin Stock and Jason Denizac were fiddling with this idea as well and Terin created a GitHub repo with the possible spec: https://github.com/terinjokes/StickerConstructorSpec

I’m very curious to see how this experiment goes. This could be a nice playground to see how standards are made and adopted.

How to Get the Most Out of Your Next Google I/O

I just attended my first Google I/O and I want to take a moment, reflect on it and write down some things I’ve learned that might help you in the future at I/O or other conferences.

tl;dr

  1. Plan, Prepare, Execute
  2. Skip some Sessions
  3. Check out the Demo Stands
  4. Meet Google Engineers
  5. Take Breaks

Choosing a JS MVC Framework: Angular.js vs Ember.js

tl;dr

As of late March 2013, after spending a month with each project, digging into documentation and examples available, I can say with confidence: it’s not fair to compare them. But if you really don’t have time to learn both – use AngularJS. Ember is not ready for prime time, yet.

AngularJS is a dream if you’re accustomed to HTML data- style behavior like you find as part of Twitter Bootstrap’s javascript

Some context

Year 2013 started with a great R&D project for me. The problem: existing webapp codebase had too much technical debt and it was incredible hard to add new features without regression. Solution: re-write the app using MVC framework.

Problem #2: which MVC framework to use? Solution: build a prototype using two most promising ones and decide. The app is purely client-side single page JavaScript app, talking to a few server APIs. Think simplified version of Double-Click or Google Analytics.

You might have heard or seen the talk by Double-Click team about moving to AngularJS. So have I and my gut feeling was that Angular would be a perfect fit for this project. Glancing into the future, or actually present, that assumption was spot on and it is Angular’s sweet spot type of app.

MVC framework comparison algorithm:

  1. Check out available docs, blog posts and example apps
  2. Go through Tutorial
  3. Build app prototype
  4. Rinse and repeat

How AngularJS won me over

Apart from the data-bindings and MVC awesomeness that both frameworks bring to the table, here are three things that drew me to AngularJS:

Focus on testing

AngularJS team is using Karma (formerly Testacular) to test the framework itself and go extra mile writing end-to-end and unit tests for all the steps in the Tutorial. Having testable code is part of AngularJS philosophy. Making it easy to write tests is crucial. I don’t care how good your code is – if it’s not testable, it’s useless in the long run.

App structure

It might sound like a minor thing, but if you have a team of developers working on a project, having a scalable app structure right out of the box is very helpful. Key Angular concepts translate naturally into controllers, directives, filters and services files or directories. I also like the way the app is broken into such concepts – seems very natural to me, unlike the Ember approach.

Extending HTML

Angular’s main philosophy is extending HTML syntax instead of abstracting HTML away with another templating language – Angular is what HTML would have been had it been designed for applications (from Docs/Overview)

If you are using the classical code quality measurement metric of WTFs/minute, Angular will make you happy.

What about Ember?

March was pretty rough for Ember team with a lot of angry posts about how confusing and hard it is getting started with it. Significant changes to the router didn’t help that either and the amount of up to date examples and articles was approaching 0. That being said, best way to resolve Ember questions appeared to be just reading its source code and comments there.

Here is a list of interesting posts in chronological order:

  1. EmberJS Confuses Me – by Rob Conery from Tekpub

  2. Ember: Baby Steps – by Rob Conery

  3. “GETTING STARTED WITH EMBER.JS IS EASY.” – no it isn’t – discussion on Discourse which is built using Ember

  4. MAKING EMBER.JS EASIER – response from Ember team

  5. STABILIZING EMBER DATA – another response from Ember team

  6. Ember… What If (Part 1) – by Rob Conery

Ember team is hard at work in bridging the gap of everyone’s expectations and reality of getting up to speed with the framework.

Final thoughts

AngularJS is built by Google. Google has one of the strongest engineering cultures. Combine that with the resources that they have and with the power of open source and you get a really powerful mix.

The quality of documentation is really good and there are plenty of example code and apps out there which help tremendously in getting started.

During the recent Angular meetup in Mountain View I’ve chatted quickly with the creator of AngularJS, Miško Hevery. He confirmed my assumptions that AngularJS team is in sync with Chrome Dev team and it is a very strong strategic advantage, considering interesting advances in Web Components.

Meteor Aftermath (Meteor Meetup at Mozilla)

This week is definitely a week of Meteors!

While the world is amazed by this:

We know that it’s actually late for the party that looked more like this: and happened on Wednesday at 6:30pm PST at Mozilla’s Vancouver office.