Monday, February 3, 2014

Privacy Policy

While this app may access the Internet, it will not be collecting information or reporting back to a central server. This app complies with applicable laws and regulations

Tuesday, October 15, 2013

Windows 8 / Mobility Presentation Links

Hey there! I hope you enjoyed my presentation on Windows 8 and mobile development. Here is a list of the links and other information.

Twitter: @WhatsTheBigIT


Facebook: WhatsTheBigIT

Windows Store App Builder Info

Windows 8 Design handbook

Microsoft MSDN

Microsoft Channel 9

BUILD Conference

Microsoft Virtual Academy

Microsoft DreamSpark Program

Microsoft Imagine Cup

Daugherty Business Solutions


Nokia Dvlup Program

Lance McCarthy (Nokia Developer Ambassador)



IBM Developer Works (for java)

Google Developers (for Android)

Xamarin (Cross platform development)

Phone Gap (Cross platform development)

Cordova (Cross platform development)

Tuesday, July 9, 2013

Dynamic Directives with Angular

Having recently embarked on a Single Page Application (SPA) for one of my clients, the technology landscape is pretty vast.  Without going into much detail, I settled on AngularJS as one of the many javascript libraries. Angular is pretty robust with a wealth of options required of spas.

[I looked at a few others, such as KnockoutJS and Durandal. While these are great JavaScript libraries, I found Angular provided most of the functionality I needed in a single JavaScript package.]

One angle of Angular is the concept of directives.  Directives, in a nut shell, are ways for the developer to build custom html tags, or add features to existing tags.  The purpose of this post is not to go into all of the details of directives, but to focus on one particular hurdle I recently had to overcome.

Problem: The information I need to display to the user must be in a variable format, based on an attribute of the object. Each view variation is presented by a related custom Angular directive. It can be challenging to dynamically assign the correct Template, or TemplateUrl from within the actual directive. I needed a way to select the correct directive for each row of data and render them all on the screen at the same time.

First, I’ll start with the data.  In this example, I have an array of five objects.  The only notable thing is the driverType.  There are three different types, which will determine the Angular Directive I wish to present to the user.  The types are driverOne, driverTwo, and driverThree.  Nothing special.

 function fetchDriverData() {
        return [
            { id: '001', name: 'Sample Data1',  driverType: 'driverOne' },
            { id: '002', name: 'Sample Data2',  driverType: 'driverTwo' },
            { id: '003', name: 'Sample Data3',  driverType: 'driverThree' },
            { id: '004', name: 'Sample Data4',  driverType: 'driverOne' },
            { id: '005', name: 'Sample Data5',  driverType: 'driverTwo' }

The array of objects is available to my HTML by way of an Angular $scope.  It is injected into my view’s controller and can be accessed from any number of ngViews for my SPA.  If you are not familiar with ngView, there are a number of good resources on the web.  Views are a pillar of SPAs, so it is best that you become familiar with them.

The magic for dynamic directives comes into play with three angular directives,
The first thing I want to do is iterate over my driver collection.  I’ll use a simple repeater:
<div ng-repeat ="driver in drivers">

Within my repeater, I’ll use the ngSwitch to selectively make use of the three different custom Directives.  The switch will be on each driver from the driver repeater.
<div ng-switch="driver.driverType">
(Remember: drivers is the collection and driver represents a single item within the collection)

Now all I need to do is identify each condition, or driverType.
< div ng-repeat ="driver in drivers">
< div ng-switch ="driver.driverType">
< div ng-switch-when ="driverOne">< div class ="driver-directive-one" driver ="driver"></ div ></ div >
< div ng-switch-when ="driverTwo">< div class ="driver-directive-two" driver ="driver"></ div > </ div >
< div ng-switch-when="driverThree">< div class ="driver-directive-three" driver ="driver"></ div ></ div >
< /div >
< /div >
The highlighted div tag represents one of my custom directives, driverDirectiveTwo

Creating custom directives is a fantastic way to help provide a separation of concerns within your web based application and to provide the potential for reusability. Directives are also a great way to provide a means for testing your code, which is always a good idea. I hope this post was helpful and sparked options for the dynamic, data-driven, aspects for your own Single Page Application.

Wednesday, May 29, 2013

Pssst! Developer, Be a Family Superhero

I know your idea of a vacation would be to stay at home, watch Pluralsight videos, then work on your billion-dollar app idea. That’s fine, but it stinks for the rest of your family. Do they really want to stay at home while you listen to John Papa? Heck no!

You will end up at some beach or touristy attraction with your laptop in the hotel room. The end result is probably a fun vacation, but little progress will be made on your techie ideas. There has to be a way to feed your developer needs AND have fun for the whole family.

Everyone likes water parks. Right? Why not take your family to the famous Wisconsin Dells and stay at the Kalahari Resort? From August 12th – 14th, That Conference will be hosted at the Kalahari Resort. Yes, you heard me correctly. One of the top developer conferences will be at the Kalahari. The perfect place to end summer vacations and have one last splash before schools resume.

This is the ultimate win-win scenario for techies and their families. You get to attend high quality training and your family gets to enjoy some of the world’s best water attractions. Pause, for just a moment, and let this soak into your brain.

Water parks. Family fun. Developer conference. YOU, being a family superhero! (did I mention water parks?)

Register, today.   Tell them “The BigIT” sent you!

Updated on June 10, 2013!!!
Get discounted air fare here

Tuesday, May 21, 2013

Mark Your Calendar, November 14-16

Years ago, the backbone of the Midwest was agriculture.  Fertile fields fed the world.  Today, the Midwest is growing more than just corn, wheat, and soybeans.  The Midwest is growing businesses.   The Corn Belt is attracting a large number of start-ups, venture capitalists, and technologists.  As technology becomes a key player, some have labeled the Midwest, the Silicon Prairie.    This November, one of the largest technology conferences in the Midwest will be held in heart of the Silicon Prairie, St. Louis.

The St. Louis Days of Dot Net conference will completely overtake the Ameristar Casino & Resort on November 14-16.  This premier event is an excellent opportunity to network with technology companies, technologists, and software engineers.   If you are interested in becoming a sponsor, shoot me an email; or, you can wait until the official sponsor drive opens.  Follow me on Twitter to keep yourself up-to-date on this awesome opportunity.  

St. Louis Days of Dot Net

Wednesday, May 8, 2013

Midwest Developer Conferences

Who says you have to go to the coasts to attend a top quality technical conference?  Four of the best developer conferences will be located in the middle of the United States!  You KNOW you want to be there!

August 12-14 That Conference @ Wisconsin Dells, WI

August 28-30 DevLink @ Chattanooga, TN

September 18-20 Strange Loop @ St. Louis, MO

November 14-16 St. Louis Days of .NET, St. Louis, MO

Saturday, March 2, 2013

Building Combat Simulators

My day job is in consulting where I help my clients solve problems using tools and techniques in the IT field.   In the evenings and weekends, I teach college level computer science classes.   Teaching classes in the evenings and on weekends can be especially trying.  The difficultly comes from people being tired by the end of the day, or have difficulty finding the motivation to come to school on the weekend.   To help motivate people in my more advanced classes, I have come up with some creative ways of instruction.

For one of my classes, I tell the students on the first day of class there will be no homework assignments the entire semester.  I also tell them there will be no formal midterm or final exam.  After saying this, I can tell all eyes are on me and I have their full attention.   I then inform everyone their grade will be based on only three assignments.

The first assignment is to construct a combat simulator.  The name, alone, sounds exciting!  The combat simulator will include an arena and two fighters.  The goal of the simulator is to battle two fighters until there is only one standing.   You can see the wheels spinning in the students’ heads.   Once this idea soaks in, I explain the grading technique.

The combat simulator, and the other two projects in my class, will be graded cafeteria style.  I hand out the list of grading possibilities.   For example, a student can earn up to ten points for correctly using an interface.  Fifteen more points can be awarded for using an abstract class.  Twenty points can be received for implementing their own custom exception; this includes creating the class, throwing the custom exception, and catching it.   There are several other possibilities for earning points.  The final grade for the project is based on a total accumulation of points.

Programming is just one aspect of the assignment.  The students must also document and present their projects to the class.  They can earn 10 points for documentation and another 15 points for their presentation.   When they give their presentation, I encourage the students to give an overview of their project and pretend the audience knows little about the assignment.  They then should demonstrate their simulators, highlight parts of their code, then field questions from the audience.

The purpose of the presentations is to give my students some experience presenting a technical subject to an audience.  It also reinforces the fact they have to do their own work.  I let them know, from the beginning, how awkward it will feel if they are asked questions about a method and can’t explain it.   I also let them know I would rather see them stumble in front of the class, as to stumble in front of a client, employer, or a financial backer hoping to fund their start-up.   Their code demonstrations also help them get a feel for demonstrating software.

I have used the combat simulator for a number of years and have found it to be very successful in a number of areas.  From a technical perspective, this program helps students to better understand the concepts of interfaces, abstract classes, inheritance, and exceptions.   The format of the assignment allows the students to be creative and come up with their own designs, some of which have been very unique.  The demonstration aspect helps them present in front of people and to work on communication skills.

You may recall, I mentioned there is no homework in my class.  I’ve found students spend more time working on their project than they might spend working on small homework assignments.  I’ve also noticed students are more motivated when they can work on a project of their own direction.  Having a creative aspect tends to keep their interest.

If you would like more information about my combat simulator project, or other aspects of teaching, feel free to send me an email.