Unit Testing Complex Web Workers in AngularJS with Karma and Jasmine
Creating unit tests for complex Web Workers can be difficult since they run in an isolated context and only expose methods for sending data into the worker and receiving data back when the worker is finished. To unit test individual Web Worker functions, we need to execute the worker in an accessible context, expose its methods, and mock the isolated context properties workers expect.
The MEAN Seed
In my spare time, I've been putting together a seed project based on some of the work I've done at Flare with the MEAN stack. It started as a learning experience, to see if I could simplify all of the boilerplate code needed to set up user signup, authentication, password resets, email confirmations, etc. but keep enough flexibility so the project could be easily configured and expanded.
AngularJS: Timing Multiple resource Resolves in ngRoute and ui-router
Both AngularUI Router and Angular's own ngRoute support the concept of a resolve, an optional map of dependencies which should be injected into a controller associated with a particular state. Let's look at how we can resolve multiple external resource calls before transitioning to a new state.
Travelodge Match-Up with CSS3 Transforms
When I moved to San Francisco, I stayed in a Travelodge for a few weeks while I looked for a reasonable apartment in the city. To commemorate that awful stay, I made a memory matching game using CSS3 transforms and transitions.
A Lightweight Caching Proxy in PHP
Occasionally, I've come across situations where I'm building client-side applications that use AJAX or AHAH calls to retrieve data from an infrequently updated third-party source and I'd like to minimize the load on the source while still managing to get new data when it's available. A caching proxy can help do just that.
Obtaining Visitor Location with the HTML5 Geolocation API
The HTML5 Geolocation API can be a handy tool for location-aware applications but browser support is still incomplete. Utilize HTML5 geolocation, a timeout, and IP-based geolocation to ensure you get a visitor location.