The biggest hurdle for me when getting started with a new technology is setting up my workspace with all the tools I'll need. For basic web development there are two tools, a web browser and a text editor. Obviously the browser choice is whichever one my customer will be using. The text editor choice is complex. There are dozens of excellent editors available.
What is Cloud?
Recently I attended the AT&T Hackathon for Machine to Machine and Internet of Things. Patrick and I didn't come up with a compelling application. Instead, we spent the time creating a tutorial on how to connect an Arduino with an Ethernet or GSM shield to the Internet of Things through 2lemetry's MQTT service. Here is the tutorial as it was written.
The servers I am currently working on use Tomcat and accept war files for deploying my front-end Angularjs apps. I am building an Angularjs app using Yeoman, which doesn't build war files. To get around this I installed Grunt-Shell and modified my Gruntfile.js so it called Maven at the end of the build and created a war file out of the dist folder.
Recently I added metrics to my site that show page load times and world locations. After a couple weeks of data it was clear that my site only loaded well for North America and Europe. A significant amount of traffic to my site comes from Asia and South America. After researching some ways to improve the page load times for those parts of the world I settled on using AWS Cloudfront CDN. My site is built on Drupal 7 and there is a nice CDN module available.
After getting yeoman installed and creating the first project it is easy to add controllers to the project. Adding controllers is done by running the
yo angular:controller newCtrl command in the terminal. (The new controller will be named 'new.js', the 'Ctrl' portion remains in the code, but all the files will be shortened to just 'new.js'.) This creates two files. the first file is the controller and it is located in app/scripts/controller. The second file is the unit test and it is located at test/spec/controllers.
My demo angularjs app has gained traction, so its time to turn it into a real project. The best fit for me is to move the angular app into Yeoman. Yeoman is a tool for automating workflows in web app development. Yeoman combines scaffolding, testing, and deployment into one tool. The scaffolding is done using Yo. The testing and deployment is done with Grunt. Dependencies are managed by Bower.
How to install neo4j on Ubuntu
Creating minified angularjs scripts requires an extra step to make sure all the dependancies are injected properly. The basic workflow is to concatenate all the angular scripts into one file, use ngmin to rewrite the script with the proper angular injections/syntax, then use Closure Compiler to minify the concatenated and altered angularjs script.