Jeremy Likness' Blog

  • JavaScript Chaos with Canvas

    I learned about chaos theory quite by accident. On a family vacation we stopped by a campground along the Blue Ridge Parkway in the Appalachian Mountains. I was not an outdoor enthusiast at the time so while my parents were hiking I preferred to head over to the arcade to play Donkey Kong and Tempest. One rainy day even the video games were boring so I sauntered over to the main cabin and started leafing through their modest library of books. In between westerns and romance novels I glimpsed a …

    Read More...
  • Angular: The Modern HTML5 Answer to Silverlight’s MVVM

    First, let me say that I realize Silverlight in no way “owns” the Model-View-View Model pattern. I’ve written on this extensively in my article “MVVM Explained.” However, I believe it gained the most public exposure through various implementations on that platform and this is what led to its adoption on the web. In fact, you might think its strange to think that Microsoft could have possibly influenced the sacred land of open source JavaScript, but if you trace the history of view models you’ll …

    Read More...
  • Become a Development Wizard and Win an XBox One!

    For the past decade Wintellect has been helping developers like you improve what you do by sharing how we do it with our enterprise customers. We’re not just trainers, but hands on consultants who have spent combined centuries of experience in the trenches shoulder to shoulder with teams to create next generation software using the best tools and frameworks available. We’ve taken this experience and captured it in a set of online videos that … » Teach you thread fundamentals » Give you C# …

    Read More...
  • Use Zone to Trigger Angular Digest Loop for External Functions

    To continue my series on the power of Zone, I examine yet another powerful and useful way you can use zones to improve your application. If this is your first time learning about Zone, read my introduction to Zone titled Taming Asynchronous Tasks in JavaScript with Zone.js. Anyone familiar with Angular apps has run into the concept of the $digest loop. This is essentially a pass to update data-binding. When the model is mutated, which can happen a number of ways, anything observing the model is …

    Read More...
  • Instrumenting Angular with Zone

    In my last post I described an open source tool from the Angular team called Zone that allows you to execute a JavaScript workflow within an execution context. I demonstrated how to instrument a sequence of asynchronous events using Zone. This is a short post to follow-up and illustrate how to do the same thing in Angular. The first step, of course, is to Angular-ize the HTML. This is simple enough. Instead of manually binding a click function, I can use the ng-click directive, and instead of …

    Read More...
  • Taming Asynchronous Tasks in JavaScript with Zone.js

    I recently learned about a new project by the Angular team called Zone. This project is one of those rare gems that is only a few lines of code but is so groundbreaking it literally takes time to wrap your mind around it. The easiest way to get started with Zone is to watch the excellent talk by its creator, Brian Ford. He demos some pretty cool scenarios that are all in the project repository. In a nutshell, Zone provides what you might consider a “thread execution” context for JavaScript. It …

    Read More...
  • Video: Angular and the .NET World

    While I was at the Angular ng-conf I had the opportunity to sit down with .NET luminaries Ward Bell, John Papa, and Dan Wahlin to discuss why Angular is so important to .NET developers with Ian Smith. We cover lots of ground, including real world benefits we've received by integrating Angular into projects and how we see solid development patterns we used in Silverlight and other XAML technologies carry forward to the web through Angular. I consider this discussion a must see for anyone working …

    Read More...
  • ngConf Report: Day 2 of Angular Goodness

    Yesterday was a fantastic day. I spent the afternoon helping out at the Wintellect booth. There is a rumor I may have been seen challenging attendees to a game of 9-ball in the game room once or twice. I also attended two great sessions, one about dependency injection and the other a panel discussion. The sessions from day one are now posted online. The Future of Dependency Injection This talk by Vojta Jina discussed dependency injection within Angular and what the future will look like. First, …

    Read More...
  • ngConf Report: Day 1

    The world’s first public Angular conference kicked off today in Salt Lake City and I was excited to attend with Wintellect. Our company has been using Angular along with other tools like TypeScript to build enterprise apps scaled across large development teams for a year now, and were able to bring most of the team who has been hands-on with this toolset to the conference. It was a great day interacting with a massive community who are building apps in every vertical. In this post I want …

    Read More...
  • Interception using Decorator and Lazy Loading with AngularJS

    Angular provides it’s own dependency injection that supports everything from annotations to decorators. Interception is a feature that allows you to extend, intercept, or otherwise manipulate existing services. It makes it easy to monkey-patch existing APIs to suite the specific needs of your application. You can build an app that relies on the built-in services for common functionality such as logging and still apply your own custom behavior as needed. To illustrate this, consider a simple …

    Read More...