Advanced JavaScript with EmberJs
At the top of the JavaScript MVC world there are a few heavy hitters, Ember is one of the most comprehensive frameworks available and is about to be released for production use (currently at RC3).
I will be presenting on Ember for the West Texas Ember Meetup and the Lubbock Software Developers group this Thursday evening from 6:30-8PM. The keys to Ember are in their philosophy of conformity over configuration and embracing DRY (don’t repeat yourself) practices for building ambitious applications. I will show you how, the tools to use, and even some bonus round material like Bower and Grunt.
1. Quick Ember history
2. The JavaScript MVC Matrix
3. Ember Ecosystem: Resources, Projects, Tools, and People that make it up
3. Building Controls, Widgets, Snippets, and complete Single Page Apps (SPA)… now
– Quick API overview
– Code Walk real-world implementations of:
* Application and Namespace Structuring
* Client Side Routing / Router
* State Management with State’s and StateManager
* Model Data (object models, JSON aggregation, enumerable objects)
* Views (layouts, basic, collectionviews, containers)
* Controllers (arraycontrollers, controllers, proxies)
* Events (touch, any event hooks, dragNdrop, etc, observers, instrumentation)
* Mixins (yeah, the sprinkles on your tasty treat – validation, CSS3 effects, logging)
4. The Application We Just Built (github, preso location)
5. BONUS ROUND:
- GruntJs (lint, minify, watch, live-reload your code in real time)
- Bower (if you like bootstrap twitter has a package mgmt platform too ya know)
- SocketStream (node,web-sockets, middle-ware via express/connect etc, redis, stylus)
AngularJs vs EmberJs vs BackboneJs
There is much to do out in the wild about which javascript MVC frameworks are the best. I see everything as an opinion and you all know what they say about opinions…..
So my question is, where is the proof? To say it takes less lines of code to do something in Angular is easily answered in Ember by putting all your properties in one line of code. ”Splitting hairs, we are.” – Yoda.
There has to be some benchmarks out there that actually show the difference between Angular and Ember in a matter of fact, not opinion. So, where does this exist and if it doesn’t then maybe it is time to profile a full and complete Angular Application against the same Ember Application.
Ember has their performance benchmarks against Backbone that nullifies that question, so on to the next….
Ember CSS3 FX Repo on Github
Yesterday while chilling out at Starbucks, there’s an oxymoron for you, I decided to start working on my presentation for the Lubbock Software Developers Group this coming Thursday….
I didn’t get far before the second quad venti white chocolate mocha kicked into high gear and I was tweaking cool CSS3 FX right into my views. This is going to be a port of a very cool CSS3 sample I trolled across and I have bigger plans to extract a ton of this into a mixin and use fixture data to represent the from and to css values BUT hopefully somebody will find some value in this prior to that happening. Here is the link, enjoy:
http://willcode2surf.github.io/ember-css3Fx/
EMBER4TWEEPS
EmberJs StarterKit fork for listing tweets from tweeps for whatever topic you want to search by.
EmberJs 1.0.0 RC3 Update
#emberdata and lots of tears
Ember Data should not be a requirement to go live. If you are using Ember Data why can’t you do a few things to put that keyboard to use for reasons other then complaining.
1. Write your own adapter.
2. Contribute to Ember Data and make a pull request.
Ember without Ember Data is still Ember and a very capable, flexible, and DRY framework. Just like a Ford Mustang is still a sports car EVEN if it is not a Mustang GT. The GT will come soon enough (data) and the Shelby Cobra will be next (bower package integration i hope).
These guys have said for some time that the adapter that ships with Ember Data is production ready but the entire project isn’t. If you have been developing with Ember the last year then the state of the data project shouldn’t be a surprise If you are building an enterprise Ember application (and you are NOT if your WAITING on someone to do work for you instead of finding a solution) then you are probably in the category of Ember dev’s who would like to see a modular approach to Ember and not build in dependencies you may or may not use. Keep it modular, releasing without Data and then packaging it all in will show the best way to build Ember packages that enterprise apps will need.
If it is a silver bullet that will solve all your framework woes is what you are looking for then I heard Microsoft has a real lean and mean thing called .NET and it ships with the shiny Entity Framework (only took them 4 years to get EF4 to EF1 promises so Good luck with that mess)
EmberJs RC2 Updates
Getting EmberJs, got it?
Lot’s can be said about the various frameworks that are ready for the big show. We could have a session a day dedicated to a different framework but why confuse the hell out of you?
There are a few frameworks that really allow you to make magic happen and scale in ways companies have not seen in a while….. WHEN USED CORRECTLY!!! AngularJs, EmberJs, Knockout, etc all have slivers of difference between implementations but the key thing to remember is the objective is the same, make bad ass web applications with as little as code as possible. DRY DRY DRY, that is a great philosophy to code by [Don't Repeat Yourself]
If you are repeating yourself then you are probably writing a ton of boilerplate code to shim an EmberJs project together. No sir! You are begging for weird bugs, terrible maintenance and low developer adoption because you cannot clearly demonstrate how this pile of code is better then what is happening now at your place of work. Don’t sell yourself short by ending your push to get HTML5 into your enterprise by executing on a great idea, with a great technology, before you even think it out.
Personally, EmberJs is the best of breed for my approach of development. AngularJs is creeping up on that title and I will port some apps to Angular this weekend to see how that goes. I will report back if it is worth it.
For now I want to help those who are dabbling with different frameworks and have heard of EmberJs -OR- you jumped on EmberJs and the project has not been as fruitful as you had anticipated. If you have researched any JavaScript frameworks to jump start HTML5 development and embrace the NodeJs era, then you have seen the endless ToDoMVC jazz online. I always have people telling me what to do, the last thing i want to waste my time on is improving a way for people to track these things, no, I want to see something that covers a few critical concepts and technologies that will make your project awesome.
The majority of all the ember projects that you will find on github are outdated, not recommended, deprecated, etc. On top of that the development efforts that has gone into most is lacking at best and the implementations vary wildly. I am actually surprised that some of the projects I have reviewed were presented to groups of developers… WTH! Teaching people the incorrect way to hack around EmberJs is not a good idea.
That said, I am putting together a sample project for my developers to get used to correct ways to use EmberJs, NodeJs, SocketStream, with Bootstrap and….wait for it, Bower, a package/component manager.
Whaaattttt….. modularizing an EmberJs application…. check! This is EmberJs the way I like it, magic on magic. Some basic scaffolding for testing as well as linting, etc, are all here in this project. I am going to do a separate post about the actual project and walk through the main concepts you will take away, should be your boilerplate for a realtime emberjs app next time you start or convert a project.
Oh yeah, happy coding and have an awesome FAT TUESDAY!!!
The LSDG Christmas Project
The Lubbock Software Developers Group (LSDG) will have the finishing touches put up tonight at our host nonprofit for this year (Family Counseling Services 5701 Ave P). It is rewarding to see and hear about the positive impact this project will have on people that are part of their outreach program. It will also be a platform for us to coordinate other donations and support other initiatives going on around town.
You will see some stuff on Facebook, hear about it on FMX or see it on the news, etc, etc. When you do, take some time to see what is happening and how you can help our initiative even if you aren’t a geek. We need everyone’s support and exposure so that we can service and support the hardworking nonprofits that make this a great place to live.
So what do we need? LED Christmas lights!!!! If you would like to donate some or have a garage full of outdoor Christmas decorations one of our volunteers would gladly pick them up. You could also drop donations off at couple other locations (Family Counseling Services and/or ARMtech Insurance Services). We will kick off the light show and Christmas extravaganza this week but will be taking donations and adding to the show daily. The more the merrier!!! Merry Christmas everyone!
REDIS Quickstart
This is always a goto page when dealing with redis.