Thank You Open Source

I have a family member who has ALS which, among a lot of other things, remove the person’s ability to walk, talk and use their arms and hands. My family member is at the point that their arms and leg aren’t useable and speech is only understandable to a few.

Being the “computer person” in the family I have been helping to cobble together an assistive setup. We started with a product by Tobii which is meant for gamers but also works pretty well as a general eye-tracking device and paired that Windows 10’s eye control functionality on an entry-level Microsoft Surface Pro 6. This setup has helped to restore a level of interaction with the world that ALS had taken away and at a fraction of the cost of the medical grade solutions that are available.

One of the big items on our hit list was the ability to control an Amazon Fire TV Stick. For our first try, we used BlueStacks which is an Andriod emulator for Windows which allowed control of the Fire TV via a third party remote application (the remote application provided by Amazon is unusable as it requires swiping to get most actions done which don’t work well with eye tracking).

The above set up seemed like it was going to work well, but it turns out that the entry-level Surface Pro doesn’t have enough power to deal with BlueStacks without causing stability issues. After a lot of searching, I couldn’t find an alternative, so being a software developer I decided I would order my own Fire Stick and find a way to program one myself. Thanks to Amazone Prime I had my Fire Stick the same day.

I struck out hard on my Google-fu trying to find a way to control the device from Windows. This is where open source comes to my rescue. I found btastic’s repo windows-adb-remote on GitHub. Seems that btasctic forgot his remote when he was at his girlfriend’s house and whipped up a console application that uses adb to control his Fire Stick.

I was very excited at this point. Yes, adb made the interactions slow, but since the application was going to be used via eye control it was more than fast enough. Now I just needed a UI. I started working on a WPF front end, but before I got too far I decided noticed that a few people had forked btastic’s repo. Turns out that amolkamble46 had already added a UI in this repo!

I forked amolkamble46’s repo and added a bit of code to save the IP for the Fire Stick and I had all I needed. A couple of hours later the solution was installed and I got to the see the joy in the eyes of my family member all thanks to open source. Without the repos I found this process would have taken me so much longer.

I have always been thankful to the people who spend time working on open source software, but this has raised that appreciation to a whole new level. It also goes to show no matter your project or how useful you think it might be to other people you should put it out into the world because you never know when it will make a massive difference in someone’s life.

Back at it

Hopefully, you all haven’t noticed, but over the last few weeks, I have been out of my normal routine due to some medical issues with multiple family members. Don’t worry everyone is now fine, or well on the way to fine. While my wife doesn’t actually read this blog I still want to call her out for being amazing. She is one of the family members who had an issue and I took some time off to take care of our son while she was recovering and her job is so much harder than what I do every day.

Back to blog related items. The reason you all haven’t noticed that I haven’t been around is that I keep about 4 posts ahead. This is a rule I set for myself years ago. If you are running a blog where you are trying to post on a schedule I highly recommend that you get ahead of your schedule. Getting ahead of my schedule is the only way that I have kept my stress level low enough to continue the blog at all. Since I have been out for a while my number of posts ready to go has gotten way too low and I have been struggling to get back into my normal routine.

I know this post isn’t going to be interesting to most people, but this is going to be a small win that gets things flowing again. Thank you for sticking with me and stay tuned the normal post will return next week.

Four Years of Blogging

Monday will be the fourth anniversary of my first post on this blog. If you have been around for a while this post is going to be very similar to the one from last year.


Most of my positive points are the same as last year, but here they are again in case you are new this year.

  • Driver for learning new things
  • Opportunity to use new/different technology outside of my normal work
  • Helping others learn new concepts
  • Helping others overcome problems
  • Comments from readers letting me know posts were helpful
  • No big hosting issues this year (thank you NodeHost!)


Suprise some of the challenges are the same too. The big new one this year is negative responses/comments to some of my posts which has actually been much worse for me to come to terms with than the rest of the challenges I have faced.

  • Negative responses/comments (See this post an example)
  • Learning new things on a deadline
  • Self-applied pressure to meet my goal of a post a week (increasing my stress level)
  • Not focusing on stats, shares, comment, etc.
  • Picking the right things to learn
  • Time requirements taking away from other projects I would like to do

Top posts of the year

I had two repeats this year and the rest are new to the top 5. It is a bit surprising that a post with Angular 2 in the title is still making the top 5.


ASP.NET Weekly is a weekly digest of all the best ASP.NET related news and blog post run by Jerrie Pelser.

ASP.NET Community Standup is straight from the team at Microsoft who is responsible for ASP.NET Core. These videos are a great way to get the scoop on what is in the works.

NodeHost is my hosting provider. They provide super simple and cheap hosting. If you are looking for a place to host your own blog check them out. Combine them with Cloudflare and Let’s Encrypt and you are all set if you are going to WordPress route.

See my Books, Podcasts and Other Resources post for a more complete list.

The next year

This coming year is going to be a good one with the continued previews and eventual release of .NET Core 3 and related ASP.NET Core 3, Entity Framework Core 3, and support for Winforms/WPF.

I am also open to topic suggestions. Use the comments on this post or drop me an email and I will see what I can do.

Welcome to 2019

Last year I did a Welcome to 2018 post due to a technical issue with my blog. This year I wanted to do the same type of post unprompted by technical issues. So to welcome 2019 let us do a little review of 2018 of the things that provided me value.


ASP.NET Weekly
Dev Tips Weekly
Shawn Wildermuth


I use these podcast to make sure I have a good pulse on the industry even and go deeper when a topic really sounds like something I want to dig into. My commute would be wasted time without these podcasts.

Software Related

.NET Rocks!
Complete Developer Podcast
Developer on Fire
Software Engineering Daily




Gary Vee

Books Read in 2018

Like last year I pulled heavily from  John Sonmez’s book reviews playlist as well as some read suggestions from last year. You will notice there are more fiction books this year. I’m playing with my learn something vs entertainment ratio to see if I can help with my stress level. Without further ado here is the list.


From Zero to Thousands of Target Blog Subscribers in 60 Days

Personal Development

The 5 Second Rule
Algorithms to Live By
As a Man Thinketh
Be Obsessed Or Be Average
Breaking the Habit of Being Yourself
The Compound Effect
The New Kingmakers
The Power of Now
Secrets of the Millionaire Mind
Slipstream Time Hacking
So Good They Can’t Ignore You
Stop Being Lazy
The Subtle Are of Not Giving a F*ck
Wait, What?
Willpower Doesn’t Work
Your One Word


Crushing It!
The E-Myth Revisited
Zero to One


The Fellowship of the Ring
Fight Club
The Hobbit
The Sword of Shannara Trilogy
What If?


The Plant Paradox


Clean Architecture
Curious Moon
Modern API Design with ASP.NET Core 2
Writing High-Performance .NET Code

Top Picks

The Compound Effect is my number one pick from this year’s books. It really brings home the fact that the little thing you do can have huge effects on your life. It was also through this that I found Darren Daily which is basically free daily mentoring by Darren Hardy the book’s author. Check it out it is how I start every weekday.

Willpower Doesn’t Work did an awesome job of explaining willpower vs our environments. Our environments are where we need to make changes to truly set ourselves up for success.

Principles by Ray Dailo round out my top 3 for the year. This book is a great look into how Ray runs his life and how he ran his business. I have never seen someone as successful as Ray lay everything our as he did it this book.

Negative Responses

After 3.5 years I finally had a post that resulted in a negative reaction from a fair number of people. The morning after the .NET Parameterized Queries Issues with SQL Server Temp Tables post went live I woke up with 4 comments waiting for approval. Before I read them this was exciting. I thought that I had hit on an issue that a lot of people had faced. I was wrong.

The Negative

Three of the four comments were about that specific person’s view of best practices and how my post was a poor example and something that any seasoned developer would ever dare use.

I replied to all the comments and tried to clarify the points of misunderstanding. The post was based on a real issue we faced and something that was not at all clear on why. The post was meant to be simple in order to show the point and I did my best to communicate these points to the commenters. To say the least this was a hard day for me.

The post now has something like 33 comments, which is way more than any of my other posts. I think that for the most part, the commenters are more clear on what I was going for. The straight up negativity around the post in question is something I hope to avoid for the most part.

The Positive

On the plus side on the day in question, I hit a new record for single-day views on my blog. The previous record was from 3 years ago when I had a post featured on the ASP.NET homepage.

While less visible on my blog I also got a lot of support from people letting me know that they understood my point and through it was clear. The post has also appeared in a blog and newsletter that I highly respect. I really appreciate everyone who took the time to reach out and remind me that this type of thing will happen and to stay positive.

Future Strategies

If something like this happens again I will do my best to keep it in perspective. I want honest feedback on my posts. I welcome people posting issues and us working through them. It results in better information for my readers which at the end of the day is why I spend so much time doing this blog every week.

I think it is human nature for negative comments to stand out. It will be important for me to temper that initial negative reaction with the positive side of things.

Back from Disney World

Today is my first day back from being at Disney World for a week with my family. We had a wonderful time. It was awesome to see our 6-year-old light up seeing all the sights and ride for the first time.

This trip was also the first full week of vacation I have had in years. There was a lot going on at work and I found it really hard to unplug. I can’t tell you how many times I checked my email and Teams while waiting in line for one thing or another. I’m sure this amounted to less than 1% of the time I was off, but I feel like even that level of work is more than enough to lose some of the mental recoveries that vacation should provide.

Future Strategies

I think the biggest thing I could do in the future is different timing. This trip ended up being during a client go live which greatly added to the feeling that I needed to stay connected in case something went wrong.

Second, I need to take more time to ensure I’m not the single point of knowledge on any subject. The one thing I did end up having to do was because I forgot to convey some information on how our QA team was running a service.

Third, I just need to take more time off. As I said above this is the first time in years that I have taken a full week off. This has been due to family medical issues and it has gotten me in the habit of saving all the time off I can to cover times I need to be out to help out the family. Now that things have calmed down I am going to have to adjust to being able to have time off and disconnecting.

Wrapping Up

I’m still in the process of getting back into the swing of things and this topic was on my mind. I would love to hear how you all deal with this issue.

Three Years of Blogging

This Thursday will be the third anniversary of my first post to this blog. This post is going to be similar to the post I did last year in the form of a retrospective.


Most of my positive points are the same as last year. I guess I shouldn’t be surprised as these are the reasons I spend my free time working on the blog.

  • Driver for learning new things
  • Opportunity to use new/different technology outside of my normal work
  • Helping others learn new concepts
  • Helping others overcome problems
  • Made my first contributions to open source
  • Comments from readers letting me know posts were helpful
  • No big hosting issues this year (thank you NodeHost!)


Again most of the challenges are in line with what they were last year. I guess I should take that as a red flag and focus on solving some of my challenges instead of living with them.

  • Learning new things on a deadline
  • Self-applied pressure to meet my goal of a post a week (increasing my stress level)
  • Not focusing on stats, shares, comment, etc.
  • Picking the right things to learn
  • Time requirements taking away from other projects I would like to do

Top posts of the year

I was a little surprised at the makeup of this list. I expected to have more than a single repeat from last year’s list.

I did a series of posts looking at Identity Server 4 this year that didn’t make the above list individual, but as a total, the series was huge for me last year. If you are interested you can check out all the posts here.


There are a couple of resources that I want to point out.

ASP.NET Weekly is a weekly digest of all the best ASP.NET related news and blog post run by Jerrie Pelser. Jerrie does a lot of good work in addition to ASP.NET Weekly including a blog and a book.

ASP.NET Community Standup is straight from the team at Microsoft who is responsible for ASP.NET Core. These videos are a great way to get the scoop on what is in the works. Also, note that if you have watched in the past this show has moved from Scott Hanselman’s YouTube channel to .NET Foundation’s channel so update your subscriptions.

John Sonmez’s free blogging course is what finally pushed me over the edge to start blogging. It is a great resource to help get you moving.

NodeHost is my hosting provider. They provide super simple and cheap hosting. If you are looking for a place to host your own blog check them out. Combine them with Cloudflare and Let’s Encrypt and you are all set if you are going to WordPress route.

The next year

As usual, I am looking forward to seeing where ASP.NET Core goes next. Things like SignalR Core, HttpClientFactory, Entity Framework Core improvements are going to be great to explore.

Outside of ASP.NET Core, I am looking at putting out a very basic Xamiran app. Based how that goes you may see a few posts related to Xamiran in the next year.

If there is a topic you would like to see covered leave me a comment and I will add it to my list of things to look at.

Hitting a wall

I have had a very frustrating week. I got sick, failure on two different blog posts, basically no progress on any project. I hit walls on everything I attempted.

Everyone has bad weeks and if you look back I am sure you will find I have made a couple of posts along these same lines. I don’t post this type stuff to complain, but instead to be clear that this isn’t easy and at times is a struggle. I share this so that it can be an encouragement when you hit your own walls. Everyone faces struggles. Pick your hero and I can promise that they struggle.

We tend to see only the positives from the lives of other people which makes what we are going through feel worse and unfair. Comparing the full depth of yourself to the public face of others is an easy way to head down a very negative path. A path I have struggled with at times.

If you struggle with some of the same things I recommend that you check out the content of John Sonmez and Gary Vaynerchuk. Both of them have helped me push through some of the walls I have hit. The Energy Bus by Jon Gordon has also been helpful for staying positive.

Whatever wall you are hitting keep working and push through. You can do this.

First talk retrospective

I made it through my first lightning talk at the May meeting of the Nashville .NET user group. If you want some background you can check out this post on my preparation for the talk.

This post is going to be mostly for me to look back on in the future in case I decided to attempt another talk, but I am sure if someone is a new speaking it could be a useful as well.


Overall the talk went OK. There was no huge epic failure, but it far from a good talk. I was extremely nervous which lead to me be locked to the podium and flying through the talk way faster than I should have. I am pretty soft spoken and didn’t project as much as I really needed to. As a result of that is my points weren’t as clear as I would have liked.

David Neal was right that the audience does want you to succeed. There were a couple of questions at the end of my talk which made me feel that my point wasn’t totally lost. I got feedback for some of the audience members and other speakers which I included in the previous paragraph. All the feedback was presented to me in a kind manner which I greatly appreciated.

The future

In the future, if I try speaking again I have a lot of things I can improve on. I know that sounds negative, but I am looking at it as an opportunity to grow. I now know that I will need more time during the prepping stage to practice out loud and in front of people.

I love technology and sharing what I learn with others. That is one of the reasons I write this blog every week. Speaking may or may not be part of the future way I get to share with other, but I am happy to now know it is something I can do. It would require a ton of work, but it is no longer something I can’t ever see myself doing.

Preparing for my first talk

I will be doing an intro lightning talk on JavaScriptServices at the May meeting of the Nashville .NET user group. The meeting will be over by the time this post comes out, but I wanted to share my outlook on it before hand.


This will be the first time I have done any sort of talk since the required speeches I did in grammar and high school. In college, all the required speaking was attached to some sort of group work in which I was happy to do some extra legwork if another group member was willing to do the presentation.

Based on what I have written so far I am sure you have picked up on the fact that speaking is terrifying to me. Although I have forced myself into more social situations in the last few years it has done nothing to alleviate my fear of speaking to a group of people.


Trying speaking is something that has been in the back of my mind for a few years. Speaking is an area I have always shied away from, but over the last few years listening to people like Scott Hanselman, Cory House, Jeremy Clark and David Neal among others and their take on speaking/giving back to the community planted a seed that speaking is something I need to try at least once.

David Neal’s talk on Public Speaking without Barfing on Your Shoes was especially encouraging to me. Here is a recording of the talk from the last Nodevember.


I decided on JavaScriptServices because it has provided a great amount of value to personally and I want more people to be aware of it. With the topic in hand, I moved on to making an outline of what I want to cover. Since this talk should max out at 10 minutes my initial outline ended up needing to be scaled back.

The next thing I did was to create a checklist of all the thing I need to do before the talk. The following is an example of where it stands at the moment.

  • Flesh out the outline
  • Add important items for each point in the outline
  • Create and test demo
  • Test demo offline
  • Create a couple of slides
  • Practice out loud

Of the above having to practice out loud is the one I dread the most. I am not sure what it is about hearing one’s own voice, but it is always disconcerting.

 Wrapping up

I am still in the prepping stages and ever day that the talk gets closer the more nervous I get. There is also a level of excitement to see if this could be something I enjoy. It would be fun to have a new way to share my enjoyment and lessons learned outside of this blog.

I will post an update here or a full new post after the talk with how I felt it went. I will also hopefully have the feedback of a few others as well.