I was reading through Coders at Work and realized that I haven’t done much code reading lately, other than reading through code samples in tutorials and articles. The interviews in the book suggested that code reviews and code reading are one of the most important things you can do as a professional programmer. This gave me the idea to write this article on the Angular injector.
I’ve been doing some stuff with AngularJS and one of the key ideas is dependency injection. Here’s a deconstruction of Angular injector.js which contains all the functions and classes for dependency injection.
I created a tool on the Django admin for positioning hotspots on an image. Hotspots on an image are points that can be clicked which will then display a pop-up with more information. I created this because we had maybe 50+ hotspots to place. Without the tool it would be a manual job, figuring out exactly where to place them. With the tool, all we had to do was drag and drop the hotspots on the image.
I wasn’t involved with the front-end except for a few minor CSS fixes. I was only involved in working on the Django admin tool for placing the hotspots and assigning the extra information they needed to display.
Unfortunately, I didn’t take a screenshot of the tool (and I probably wouldn’t be allowed to share it) so I created a mockup instead. I also started work on a free/open source implementation, it’s called jquery-hotspot-placement.
The state of the AngularJS tutorials and API docs is not that great. I’ve had to look through two books and many tutorials just to understand the basics and instead of simply complaining, I decided to do something about it.
So here it is, my Learning AngularJS tutorial. It shows you how to setup an AngularJS project, what you need for testing, how to create a controller and how to use some of the more common directives, such as ng-repeat, ng-click, select, ng-bind, and ng-model.
The presentation shows there are multiple branching models and that each one is good for different situations. The Github model is the one I most agree with; have a master branch and make sure it’s always deployable.In my mind, it most closely adheres to Agile software development principles.