Posts

Angularjs + Asp.net MVC Routes with Partial Views

Image
Recently I've had the great opportunity to create something pretty awesome and I think it helped me seperate or clear up any confusion I had on project where I used two MVC frameworks on top of each other. Those two frameworks are usually AngularJs and Asp.net MVC. It can be a little hairy especially if you're new to Angularjs but when you use them right web developing is be a snap.

Client Side
$routeProvider.when('/', { templateUrl: 'home/_home', controller: 'AppCtrl' }).when('/product/:id', { templateUrl: function(params) { return 'home/_product/' + params.id; }, controller: 'AppCtrl' }).otherwise({ redirectTo: '/' });
  What's really important here is the route for product and the parameter (look where it takes id). The id can hookup to any middle tier and from there it can handed to a model bound partial view. You can even mix in angular html attributes since the page will be pu…

Diving Back into Selenium and Getting Somewhere!

Image
Recently I've gone back to using Selenium and started to really get comfortable using it. One of the problems that I constantly face when using Selenium is not having good example and looking at Selenium as a whole in whether it is worthwhile. My problems only get work when I have to ask me whether to use the Selenium IDE or the server package.  Which is more scalable to do? Which one is better to give to a team QA that non-technical? Some of these questions can be answered on the Selenium site but some of them depend on your work environment and how much time you want to spend on creating a system of some kind to do all that.      What you really want for all project is something that you can automate across popular browsers not just a single one. Plus avoid doing a dry run every time to correct your UI tests. So the IDE which really a plugin is not going to do that for you but even if I gave it to a QA non-technical team I don't think it would be used effectively. Instea…

The Three Types of Material Design Libraries Available

Image
There are a tons Material Design projects out there but I choose these three because of their popularity and for the fact I just found these projects interesting for a few of own projects. I work in a variety of environments so each gave me certain advantages over the other. This article is just how I broke them down and what projects I plan use them for.

https://material.angularjs.org/Useful for when you are using angularjs.missing some stuff or just not shown in the documents.Great for my single page example.http://fezvrasta.github.io/bootstrap-material-design/Useful for bootstrap project and updating them to material design themes.Wish they used Sauce labs Tests like bootstrap.Great for updating my bootstrap sites and my blog.https://github.com/Dogfalo/materializeUses Jquery, and simple to get up and run just like bootstrap.Very close to other css libraries but still different; only a question of how much support.Great use for my emberjs project.

Javascript: Track Errors with Google Analytics (analytics.js)

I came across an article by David Walsh and just wanted to expand on the topic. When implementing this feature watch out for the differences between analytics.js and ga.js. The code below is works with analytics.js. Another thing to be aware of is that some errors will be created from Adblocker. I thought of adding the logic but I didn't want to leave it up to chance that I might accidentally ignore some real errors. Instead what you can did is just filter it in Google Analytics and aggregate against with the number hits.

(function (i, s, o, g, r, a, m) { i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () { (i[r].q = i[r].q || []).push(arguments) }, i[r].l = 1 * new Date(); a = s.createElement(o), m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m) })(window, document, 'script', '//www.google-analytics.com/analytics.js', 'ga'); ga('create', 'YOURID', 'auto…

Shields.io for Google's PageSpeed Insight

Image
This was an idea I had for some upcoming projects I'm working and it includes the use of shields.io to display important information on the quality of the front-end code. Also to give to give an idea of what's on a production server. This would really work for projects where the code was mostly open-sourced. Users could get a glance before hand of the boilerplate/template for particular project and know the quality it has. I did start to write out some code to do this and currently the only approach I have is using it via Google's API service which requires an API key. Below is the api request and the parameters need, from there all one needs to do is hook up, the three fields in shields.io and return the appropriate svg. 




API:
https://www.googleapis.com/pagespeedonline/v2/runPagespeed?url=http%3A%2F%2F{WWW.EXAMPLE.COM}&strategy={desktop||mobile}&fields=ruleGroups&key={YOUR_API_KEY}A Difference in Implementation
     Be aware there is a nodeJs project using P…

The New Way to Create Jquery Plugins Using Grunt & QUnit

Image
This is my take on the Jquery basic documentation for creating a plugin. There are a lot of new ways to create a jquery plugin and even more frameworks to replace jquery altogether. However I found myself at that point where the scope of the project was limited in a framework but had large enough components that could separated into plugins. I've removed all the business logic and now just want to create a very scalable plugin.

Example Project & Setup
With my Jquery Plugin, I'm using Nodejs and continuous integration to do the heavy lifting. All I'm doing is taking a selected element from the caller and determine if it already has a table. Then if it does attach data to provided url's from the developer. Simple enough but there more to it, I just simplified the explanation incase people want to skip over this part and others who are interested can just read more about the plugin on github.

Tools & Systems
Travis-ciNodejs packagesgrunt/grunt-clijshintqunitJs …

Running Solr on Google Cloud

Google App Engine has gone under a great number of changes and originally I set out to use it to my advantage but instead went through Google's cloud platform to run solr on a virtual machine. This gave me a lot more flexibility and didn't require to change any of Solr's source code. In theory changing the source code to handle the file system available through app engine would work.
      I'm not going to get into the steps of how I did this, I think it's pretty straight forward, setup your linux vm and install java, then set up tomcat with Solr. With my catalog-demo, I used the site to proxy to the vm and gave the vm permission to only my web site's IP. The links below are docs that give more information on that. As far as costs go, it is very cheap to spin up a machine and to get the Solr server running. However I'm not happy with the solution and know I can create an even better solution so I've shutdown the server and started looking at other …