A Tester and/or Unit Tests Should Be Your Friend

A little bit over 3 years when I started at Quicken Loans as a Software Architect  I did not know / understand how valuable the Quality Analyst (QA) or testing role was to a product or application.  When I started, on Day 2, Brian Friesen introduced me to a lot of people but one of the introductions I remember the most was to Hilary Weaver-Robb (https://g33klady.wordpress.com/). The reason why I remember this is because she had since built a conference talk around it.  Titled something like “QA and Developers should be best of friends” or something like that… 🙂  The story goes like this…

Day 2 at a new place after spending a FULL day in front of the company fire hose getting introduced to everything that is Quicken Loans, Brian introduced me to my new surrogate team (I was on loan for few months).  The introductions went along and eventually Brian introduces me to Hilary (some know her as Heather).   Brian says “This is Hilary, our QA”. I immediately, mostly jokingly, say “Ugh”. We all chuckled, although I believe Hilary, excuse me, Heather, secretly started hating me. And while I was partly joking at the time, in my experience prior to meeting Hilary, I’ve never understood the value of a Quality Analyst.  Until now.  Whether Hilary wants to believe it or not, I consider her a good friend, although I am not sure the feeling is mutual

 

 

Anyway, the real reason for this post.  In the last 3 years at Quicken Loans, I have learned the value of writing Unit test and having testers on a team.  There have been far too many times (at least one 🙂 ) where I have pushed code for my person projects (Desert Code Camp, MVP Summit Events, etc) and things have failed miserably. So, I have gone back to all of my personal projects and have added Unit Tests and you should too!  Not just in your personal projects but your professional ones. I know, it takes more time to write a Unit test or I write it the first time.  Believe me, it doesn’t and you don’t.  You’ll probably spend more time researching and fixing your problem that you would have “wasted” on building a unit test. So just do it!

 

 

15 Years Ago, I Witnessed Something That I Will Never Forget

There is an expression in the US and part of the world that goes ‘9/11 Never Forget’. I will never forget 9/11! I remember virtually every detail of that days and the weeks that proceeded. From just after the first plane hit, until two or three weeks after the ‘event’ . Here is my tale…

It started out as any other ordinary day. I took a bus to commuter train (LIRR) to the NY City subway to get to work at Guardian Life Insurance. I always got in early, around 7:00 to beat the rush. I was in my cubicle probably checking email or coding when a few coworkers came and said, “Do you see the World Trade Center is on fire?” At the time, I worked in downtown Manhattan at 7 Hanover Sq which was about a half of a mile from The World Trade Center. I replied “No” and I followed the people to the other side of the building where I watched the North Tower, 1 World Trade Center, smoke from what we know now as the first plane to hit the building. We watched in awe as the building was smoking and papers were flying around like it was snow at Christmas.

North Tower Plane Crash

We stood, the 6 of us, amazed the World Trade Center was on fire. Seventeen minutes later at 9:03 am EDT I and the 6 others were shocked when we saw the second plane hit the South Tower (2 World Trade Center).

Second Tower Hit

I was shocked! I watched as the plane, as we know now, as the second plane to fly in the sky and HIT the second building. ALL of us were like, “what the f#@#!?”. We had no idea what happened. We all scattered. like the NYC cockroaches do when the lights turned on and went back to our desks. I, like all the others, went back to our desks/cubicles. I called my wife (@deeguadagno) in a panic… “Did you see? I just saw a plane hit the World Trade Center?” Both of us at the time did not know what happened, I said to her “I’m out of here”, I told my boss at the time. “I just saw a plane hit the World Trade Center and both of them are on fire. I’m leaving!”. He, as most corporate managers would do said, “We do not have permission to leave yet.”. I said, “I don’t care, I’m leaving”. I left and called my direct reports and told them to head home if there were already in transit. As I walked the 4-7 blocks from the office to the subway station it felt like I was walking through dirty snow. There were paper and soot from the fires and ashes from the World Trade Center that was blocks away. I eventually got on a subway and the last commuter rail (LIRR) out of Penn station heading for home. At the time, I did not have a cell phone so I had to borrow someone else to call the wife and tell her I made it out of the City and was heading home. I and the other passengers were watching the World Trade Center smoke from a distance. I finally arrived home around 10:40 am where I hugged my wife and 2 kids to learned that both Towers have collapsed. I did not know what to do or say other then hug my family. I eventually went did some of the ‘Honey Do List’ items to take my mind off of what happened. While doing that, I tried to find out how some of my direct reports were doing. One was in Denver on training, two were en route to work. Unfortunately, as a result of the ‘attacks’, the telephone network was damaged. It took almost 24 hours until I found out that all of my direct reports were OK.

The weird thing about the event was that we, as a Family, were supposed to go on a vacation to LA on September 12th to go to Disney, Sea World, Hollywood and Southern California. Unfortunately, as we all know, flights were ground for a bit. While Dee was glued to the TV, I couldn’t watch it and did a lot of my ‘honey do list’ stuff like mow the lawn, fix stuff, anything to avoid the TV and the realization of what happened until the flights we no longer grounded.

Around September 14th or so, flights were allowed to take off again. Personally, outside of all of the tragedy, this one of the smoothest vacations around. We, a family of 4, were on a 737 or so aircraft with a configuration of 2 x 4 x 2. This plane could probably sit about 300 people or so. There were about 30 of us on the plane which meant each person had a row to themselves for the 4-hour flight. While on the trip, since no one seemed to be flying or vacationing at the time. we essentially had Disney World, Universal Studios , LegoLand and SeaWorld to ourselves. The trip was great! There were no lines at the parks, we went on rides multiple times and enjoyed life…

Fourteen days later I returned to reality. I got up at 5:00am and started my commute into work. This was roughly when “Lower Manhattan” was open to businesses. Unfortunately, at the time, the trains only went to about 14th street because the City was inspecting the rails and tunnels as a result of the collapse. This meant that my commute went from about an hour and a half to about two hours and fifteen minutes with about two miles of walking. The time or walk did not matter. It was more of ‘the walk’ or how we had to walk that mattered. The furthest south that the subway would stop was around 14th and Broadway. The easiest walk to our office was straight down Broadway. Broadway, for those of you that do not know NYC, ran parallel, one block away from the World Trade Center. That means that even day, to and from work, I walked by what was left of the World Trade Center. Let me tell that it SUCKED for a minimum of two weeks. Once I, and other commuters, got to the vicinity of the World Trade Center at was at an intersection we all stopped, looked and cried. Because of the different angles and the length of the ‘site,from’ this went on for about a half of a mile. Let me tell you it sucked! It was rough going into and leaving work every day and having to for 30 minutes or so as part of your ‘commute’.Don’t get me wrong, my crying and longer commute time do not compare to the 3000+ people that lost their lives or loved ones that still have to suffer.

So 15 years later I still remember the day as it was yesterday. It’s still hard to see a plane in the sky and not picture the plane I saw hit the South Tower. However, you have to remember that we, as a Country, have and will more on.

Fast forward about 20 or so months later to the Northeast Blackout of 2003  when NYC and others lost power. We had NO idea what happened. We all assumed another 9/11 type attack. We all panicked and migrated/ran/left the city. I walked home from the office, about 18 miles, in 85-degree heat and about 1000% humidity, until I got to my brother’s apartment. On route, I experienced people charging $5 – $10 dollars for a 16oz bottle of water.

While I can imagine what others felt around the tragedies of 9/11 or what the survivors or sufferers have been through, I will Never Forget 9/11.

Desert Code Camp

I posted on Twitter today that Desert Code Camp is not happening this year.  The venue that we use, Chandler – Gilbert Community College is going through some renovations and just could not fit us in this year, unfortunately.  A few people asked what we would need from a venue to help make Desert Code Camp happen.  I put together a list below:

  • Should be able to support 700-900 people (it grows about 100 people every Code Camp)
  • Should have at least 15 rooms
    • Rooms should have a projector
    • At least 7 rooms should be able to accommodate 30 people
    • At least 3 rooms should be able to accommodate 75 people
    • Preferably have 3 rooms that can support 100+ people.
  • There should be a large area to host breakfast, lunch, and a sponsor area for all of the attendees
  • The venue should have reliable WiFi for the attendees
  • Preferably free or very low-cost since this event is free

Some nice to have:

  • A room / venue large enough to hold all of the attendees for an opening and closing keynote.
  • Amble (free) parking for the attendees.

If you have any questions or would like to throw your venue in the hat, please reach out to me.

So you want to be a Microsoft MVP

It’s very common for myself and other Microsoft MVPs to get asked “What does it take to become a Microsoft MVP” or “I want to be an Microsoft MVP, please tell me what I can do” when we speak at conferences or chat with each others on social networks. The short answer is most people outside of Microsoft do not know that the “secret formula” is. The long answer requires a little bit of understanding of how Microsoft evaluates potential candidates for receiving the award and what the propose of the award is.

The rest of this post is my opinion on how you can become a Microsoft MVP. To see what Microsoft says about how you can become a Microsoft MVP visit http://mvp.microsoft.com/en-us/becoming-an-mvp.aspx

In order for one to earn the Microsoft MVP award, Microsoft has to see the recipient as some one who provides value to the Microsoft ecosystem and is influential in the software industry. The award is given based on the previous years contributions to the Microsoft ecosystem and is from one of the product teams. Product teams include, Microsoft Office, Microsoft Azure, Microsoft .NET and many others. Each product group budgets for a certain number of MVPs a year, depending on the specialty, there can be very few spots to many spots available to for new candidates. In addition to this, you need to get nominated by a Microsoft MVP or Microsoft employee for Microsoft to consider you.

OK, so how can I provide value to the Microsoft ecosystem you ask. That’s the tricky spot, there are no fixed rules, minimum contributions or formula for getting in. That being said there are a few things you can do to get on the radar:

  • you can blog
  • speak at conference / user groups
  • respond to forum post on MSDN, Stack Overflow, C# Corner and similar forums
  • help out you local user groups and Microsoft Developer Evangelists at events
  • contribute to open source projects, especially ones that Microsoft is interested in 🙂 (Thanks @jamie_dixon for the tip)

My recommendation is that you do not make becoming an Microsoft MVP a goal, but let it happen naturally by doing some of the things mentioned above and even if you do not get the Microsoft MVP award, remember that you are still helping people with your contributions.

Being More Productive with @Todoist

It’s not unusual nowadays for the typical person to be overwhelmed with tasks that we need to get accomplished on a day to day, week to week or just plain need to get done. Whether it’s for work, home, or just some personal tasks, we look to different ways of tracking this items or ways to remind us that we have something to do.  Some go old school and tie a ribbon or thread to a finger 🙂 Some write down tasks in Franklin planners or equivalent tools. Some followup methods that have been created by “productivity experts”. For me, I used a combination of my multiple emails accounts; work, personal x 2, and communities emails address along with PostIt notes. After my work email box got up to about 100 items I needed to act on and my personal got to about 75, I said enough is enough, I needed to find a better way to track the work I was working and when it was do, so I could better prioritize my day.  After searching the web and trying out a few applications I landed on Todoist.

Todoist basically provides a service to store your “TODOs”. However, Todoist is not just a todo list. The value is in the meta data that you add to the todo. Things like projects, labels, due dates. reminders, and notes.  Granted some of these features are extra, but at a cost of $29 a year, it is reasonable. Todoist is also available on multiple browsers, platforms, phones and plugins to web mail.  Look here for the full list.

The Application

Main

Todoist Interface

Todoist Interface

As you can see the interface is quite simple. On the left we have 3 links to “views” of your todo list. ‘Inbox” is used for anything that you did not assign to a project. “Today’ contains any items that are due today. ‘Next 7 days’ contain a list of the items due in the next 7 days. There are then links to the projects, that you create with the color your assigned them.  The slightly grayed out number represents how many items are in the view or project.

Right Side

To the right we have the todo list view.  It contains a header

Header Bar

Header Bar

The header contains the current filter applied (mine is overdue and next 7 days). A plus button to add a new task. A bell for you to see the application notifications. The shield and numbers represent your todo Karma rating and how it is trending.

Adding a Task

Adding a Task

Adding a Task

Adding a task is easy. Though out the desktop application the are multiple locations to add a tasks and the all look like the image above.  You simply type the text you want and optionally set a due date. Due dates can be set by selecting from the pop up calendar or typing in text like ‘Every Friday’.  See here for date options.

Overall the product is simple to use and it has helped me a lot in the last month.

Just a note, I did not receive anything for this blog post. I wrote the post because the application / service has been very helpful for me and I wanted to share.

Speakers are not Idols

I’ve noticed that at a lot of conferences I attend conference attendees are afraid to approach the conference speakers. It would appear that some attendees think that speakers are idols and untouchable. I want to say that conference speakers are not idols. While I can not speak for every conference speaker, I know myself, and the other conference speakers that I know, love when conference attendees come up to us. So when you are at your next conference, or user group meeting, feel
free to walk up to the speaker after the talk or if you see them in the
hall way.

Here are a few tips for interacting with a speaker:

  • Be respectful of the speakers time. Do not monopolize their time.
  • Do not expect the speaker to solve all your problems. Most will spend a few minutes to talk to you and to understand the issue so that they can provide suggestions, some may provide guidance.
  • Feel free to contact them.  Most speakers provide an email address and / or have social media accounts.  Please keep in mind that some speakers keep their Facebook accounts personal so do not be offended if they deny the request or do not approve it.
  • Avoid interrupting speakers if they are already talking to someone.
  • Avoid interrupting speakers while they are eating, if they are at your table they will most likely talk.

I’d love your feedback, please leave comments below with your thoughts.


Bootstrap for ASP.NET MVC Review

Starts off with a good introduction to using Bootstrap in your ASP.NET applications.  It covers the default “File | New” experience, manually added files and my favorite, NuGet. The author then continues with introducing the Bootstrap element styles in a logical order, starting with the grid and ending with form validation.  Next the author introduces the JavaScript components of Bootstrap.

In the next part of the book the author does what I have not seen in other books on Bootstrap, the author explains how to create helper methods, which is good but there already is a well used package for that in which the author has a chapter on on at the end of the book.

The author goes on to give suggestions are to how to work with and convert sites that do not have bootstrap.

I’m not sure why but the author included a whole chapter using the jQuery DataTables plugin with some of it’s extensions with Bootstrap.

Overall, the book was easy to read, the author was clear and logical in his explanations of Bootstrap. I would recommend this book to someone just starting to learn Bootstrap and working on ASP.NET applications.

Pro NuGet Book Review

First off, I love the subtitle “Your Salvation from Dependency Hell’, although NuGet does offer its own Dependency Hell sometimes.

The first chapter starts out as you would expect, how to get started with NuGet.  However, the authors  added a helpful page of links to the different NuGet tools and documentation that they would be referring to.

The next chapter goes through, in great detail, how to install, uninstall and upgrade NuGet from the user interface, NuGet Powershell Console and command line. They then continue to talk about NuGets solution package management and visualization features.

The third chapter is a doozy, the authors explain in great detail how to author a NuGet package. They cover versioning, dependencies, configuration transformations and more.

The next chapter covers publishing NuGet package in three different ways; on NuGet.org, through the command line, and NuGet Package Explorer. The authors continue the chapter by explaining how to publish the symbol files for you NuGet packages.

The authors then show you how you can host your own NuGet repository on your servers or use a service like MyGet..org to host your packages privately.

The next three chapters talk about integrating NuGet into you release management process for both continuous and automated delivery as well as integration with your build services (TFS and Team City)

The final two chapters talk about extending NuGet to add features to it and using NuGet to make your applications extendable.

Overall, this books first 5 chapters starts with what you would expect a book or a set of blog post on NuGet would. However, the authors provided a lot more than just the “normal” stuff, they added a lot of extra detail and reference points.  But what really sets this book apart from the rest is the last 5 chapters that go into how you can incorporate NuGet into your current environment and processes. It also provides lots of ideas on how you can custom NuGet and use NuGet to make your own application extensible. 

jQuery Twitter Bootstrap Flickr Carousel

A few months ago I built a jQuery plugin that uses the Twitter Bootstrap Carousel to cycle through images on Flickr. In order to use this plugin you need to get an Api Key from Flickr and have the following software:

  • jQuery (v1.8 or higher)
  • Twitter Bootstrap (v3.0 or higher)
  • Twitter Bootstrap components (v3.0 or higher)
  • twbsPagination (optional)

Sample Usage

$('#flickr-carousel').twbsFlickrCarousel(
	{
		tagsToSearchFor: 'mvpsummit,mvp2013,mvp13', 
		flickrApiKey: 'insert your key here', 
		paginationSelector: '#flickr-pagination'
	}
);

Download the plugin from GitHub at: https://github.com/jguadagno/twbs-flickrCarousel

See an example of usage at: http://mvp2014.mvpsummitevents.info/flickr

Bootstrap Theme Switcher jQuery plugin

A few months ago a published an article on a Bootstrap Theme Switcher. I’ve since approved this post and the JavaScript and turned it into a jQuery plugin. This plugin works with the Bootswatch API to provide the user the following:

  • Loads a list of available themes from the API into a SELECT or a UL,
  • Dynamically change the site theme to the selected theme
  • Manually change the theme
  • Save the selected theme to a cookie, requires the jQuery Cookie plugin,
  • Loads the selected theme from a cookie, requires the jQuery Cookie plugin,

The plugin also allows you to load of list of local themes in case you to note want to use the Bootswatch site.

Let me know what you think.

Downloads

jQuery Plugin page
http://plugins.jquery.com/bootstrapThemeSwitcher/
GitHub Repository
http://github.com/jguadagno/bootstrapThemeSwitcher
Demo site
http://introtobootstrap.azurewebsites.net/

Next steps

  • NuGet Package
  • NPM module
  • Bower module
%d bloggers like this: