Saturday, September 12, 2015

The Internet of Things: It’s going to change your life, if it hasn’t already

The Internet of Things (IoT) is going to change how you think, how you live and just about everything else.  You may not know it but it probably already has. Don’t believe me?  Read on.

In recent years a lot of talk has been about the Internet of Things.  At first it was just a concept, then a buzzword.  So…what is it?

Before we dive in too deep, I’d like everyone who has a Fitbit… Ok anyone who is wearing a fitness tracker of any sort of fitness tracker to raise their hands…  Go ahead.  Guess what?  Everyone who raised their hands is already a participant in the Internet of Things.  More on that later.

The Internet of Things (IoT) is worldwide network of, well, things.  Ambiguous I know, but that is the point.  The closest Webster entry defines a thing as “a material or substance of a specified kind.”  For the sake of this post, let’s define a thing as a person, machine, cloud service or anything else capable of communication or integration within the other things over the internet.  Still a bit ambiguous, perhaps that is why some refer to the IoT as the Internet of Everything.

Ok great, so now that we have a working definition, is the IoT a reality or is it still just a concept? Well, I am here to tell you that not only is it a reality, but chances are, you or at least your things, are a part of it.

The Internet of Things is cutting edge no doubt, however, it did not just spring up out of nowhere.  It is the union of the last 30 years of technology.  Combining the advancements brought to us by the world wide web, E-Commerce, Social Media, Smart Phones, and cloud computing was just the next logical step.  That is not to say there wasn’t any innovation.

In my opinion, there are two major advances.  The first is that it allows the machines to be much more autonomous.  This is huge, in today’s fast paced world allowing the machines a higher degree of autonomy only seemed logical.  Since the cost of computing power, storage, and networking has become so cheap, it is now an achievable goal.  The second advance is our ability to quickly integrate all this cheap computing power together.  Many of the today’s products have added some sort of Api or implement standards allowing an object that has a limited scope of use to be tied together.  The fact that these products are implementing a standard instead of using some sort of proprietary tech gives consumers the ability to make what is called a mashup. The product of these mashups is an emergence of new ideas and features that the original items individually just couldn’t provide.

Consider this, years ago I had a home theater system, I wanted everything to integrate as much as possible.  To accomplish this I had to pick a large company offering all the products I would need. For that I was able to assemble a system that used one remote and allowed the TV, Receiver, and other parts work together, providing a better experience for myself and my family.  Though in the end it worked, it limited my choices in components meaning I had to forego features offered by other manufactures that couldn’t participate in the proprietary linking system.  In addition to not having all the features I was looking for, this also made the costs extremely high because I was very limited in my selection of components.

Recently I bought a new Samsung TV, an Xbox One, a sound bar with sub-woofer, and I already have DIRECTV.  With all of these “things”, I wanted integration.  This time I was happy to learn that all I needed to do was connect them all together using a HDMI cable and it would just happen.  The Xbox was able to directly control all the other components, even the sound bar that connects to the TV.  As a consumer, how that happened was not important to me.  But the companies developing each product had to make integration and standardization a priority.  They implemented numerous standards, providing integration with outside systems.  The end result?  My Xbox can not only turn my TV off, it can change

channels on the satellite receiver or TV if I didn’t use satellite.  It can control the volume on the sound bar and turn the whole system on/off.  It can do it all of this using voice commands!

What are these “things” you keep hearing about?

So what are the “Things” that make up the Internet of Things?  You probably already guessed that smartphones, connected homes, and smartwatches are all “things”, right?  What you may or may not be able to articulate is why.  What makes them “smart”?   This goes back to my earlier comments about integration and standardization.
So what sort of things are available?  Frankly, at this point that list would be more of a book.  Instead I will list a few classes of items that you are likely to start with.  Do you have a smartphone like an Apple IPhone?  It is a “thing”.  Does anyone have a Smart TV?  Yup, they are “things”.  I bet a few of you even have lights that can be controlled by your phone.  All of these objects are “things”.  They can, and do, integrate with other objects to form a more useful network.

If that isn’t enough, simply visit to your local home improvement or electronics store.  Want to adjust the thermostat before you come home? Try a connected thermostat.  Want to know when someone rings your doorbell, even from work?  A smart doorbell might be for you.  Are you interested in having a security system that YOU can monitor from anywhere in the world?  Security systems are available at every price range with nearly every possible feature under the sun.  One of my personal favorites are the new irrigation systems; they are usually a direct replacement for the old “dumb” sprinkler controller we have all had for years.  There are light bulbs, nanny cams, TVs, and so much more.  I even heard of smart diapers, I will leave it to you to guess what they do?

What sort of business opportunities does the rise of the IoT provide?

Ok, so we have discussed what the Internet of Things is, and what the “Things” are but where are the business opportunities in all this?

This is a great question, possibly the most important one of all.  Before we address this, let’s take a quick trip down memory lane.   I am sure you remember that company a few years back that decided to start selling books out of a garage.  In case you don’t, these days they are known as  How about the website that was literally put together in a weekend to help a few friends keep up with each other’s lives?  Yes, they call themselves Facebook.

While not impossible, developing something along those lines and becoming a direct competitor for the Amazons or the Facebooks would be far more difficult today than it would have been in years past.  It can be done, but the market has been filled with new web based ecommerce and social networking solutions over the last 20 years.  People have innovated and others have built upon those innovations.  Many businesses are now simply creating websites to extend or replace their brick and mortar operations.  While not as revolutionary are the aforementioned organizations, they still get the job done.

I am here to tell all the entrepreneurs out there that today is a new day.  This (IoT) market is not loaded with competition.  All things are again reset, and mostly equal, once again.  If you missed out on the previous booms, this is your chance at redemption.
This “reset” has happened many times before with both e-commerce and social networking, however, neither of those (in my opinion) rival the opportunities offered by the emergence of the Internet of Things.

 Not since the rise of the web have we seen such a wide range of opportunities as those presented by the Internet of Things.  The world of IoT really is in its infancy allowing innovators of every kind to have a chance at a piece of the pie.  While I believe this is true, it may not be so obvious to others.  Like the beginnings of the web, many people could not really see the proverbial forest for the trees.  Many well respected industry insiders said that there was no money to make here, that it was nothing more than an online encyclopedia or way to kill some time.

Today we have another chance to get in on the ground floor.  Those who innovate could be handsomely rewarded.  Everyone else will benefit no doubt, through new conveniences, but if you want to take your business to the stratosphere like the Amazons, Facebooks and Apples of the world; now is the time.
The only question is: what should you make?  Only you can answer this.  If you need a bit of help a quick Google search for “IoT Use Cases” will return many good ideas.  I have a few ideas myself, but I’m not telling!

Change your Life?

So I think at this point I think the life altering effects of the Internet of Things are apparent.  If not, let’s do a quick recap a few of the core points:

  • The wide spread use of the IoT is made possible by cheap computing, storage, and networking
  • For Consumers objects with a limited scope of responsibilities such as a sensor, micro controller, or wearable are usually but not always the “Things”
  • Integration between these things is crucial, leading to an emergence of new functionality
  • The Internet of Things is the next logical step building upon advances from the World Wide Web, E-Commerce, Social Networking, Smart Devices,  and Cloud Computing
  • Machine to Machine communication and an event based architecture allow machines to be more autonomous
  • Standardization allows for “mashups” between products that don’t need to be designed to work together to integrate
  • Objects labeled as “Smart” or “Connected” are usually an indicator that they participate as a “Thing” in the IoT sense
  • Business Opportunities

All of these characteristics come together to make something new: a worldwide network of things, many are very simple, integrated, sometime autonomous, and in the end creating something greater than the individual objects alone.

Where Do We Go From Here?

Now that we have a basic understanding of what the Internet of Things is, we can start to explore some of its more interesting application.  Here are just a few topics we hope to cover in the coming months…

Getting Started with IoT Using Cloud Based Services including If This Then That (ITTT)

There are many free and paid cloud based services available to help get started with the Internet of Things.  One of the easiest to use (and free) is If This Then That (IFTT).  We will help you get your feet wet by walking through several different things that can be accomplished using this service requiring only a login and a few mouse clicks.  We will also explore a few other offerings in the market.

Home Automation using SmartThings

Within the consumer space the IoT is really taking hold “smartening” our lives more each day.   A company called SmartThings (recently acquired by Samsung) is one of the leaders in this arena.  We will take a look at the basics of setting up Home (or Office) automation using products from, or compatible within the SmartThings Eco System.

Microcontrollers and the Internet of Things

You may not really know what a micro-controller is, but it is highly likely you have heard of one or both Arduino and Raspberry Pi.  We will take a short tour examining recent applications of each.  We will also see just how easy it is to get started with just a little tech knowledge.

The Maker Movement & the Internet of Things

The Maker movement is an emerging culture that attracts independent inventors, designers, hackers and a wide range of other DIYers.  Over the last few years it has gathered so much steam that even the president of the United States had to take notice.  It has its own magazine, meetups, a Manifesto, a MakerCon event, and even annual Maker Fairs in cities around the country.  You may already be a Maker!

Interesting Use Cases relating to the Internet of Things  

Some people have a hard time finding real use cases for the Internet of Things.  This isn’t the first time that happened, both the World Wide Web and the “Cloud” faced similar challenges in their early years.  We will examine a few use cases that are already being addressed and look at how they have affected our lives.  We will also discuss a few that are a little less obvious.

Getting Kids involved with the Internet of Things

In today’s world many people feel that we are required to expose our children to the latest technologies.  The advantages this gives them is immeasurable.  We will look at some of the ways to get your kids involved, at whatever age.

Stay tuned for those and other exciting topics in the coming months...

Wednesday, November 5, 2014

Why I Like Webstorm better than Visual Studio (Sometimes)

Visual Studio is a fantastic IDE, for years I had the attitude that "if I couldn’t develop something using Visual Studio, then I didn’t care to do it". Yes I know that sounds ridiculous, but I liked it that much. Many years ago I worked with Eclipse, and was very unsatisfied. From then on Visual Studio was the only IDE for me, until now.  Recently, I began to shift my work from pure back-end services to include more front end work. I became involved in many new technologies such as HTML5, AngularJs, Bootstrap, LESS and more. At the same time a new (to me) IDE also came to my attention, WebStorm from JetBrains. I have been a long time user of Resharper, so agreed to give it a try.

Built from the ground up to meet the needs of modern web developers, it offers (but doesn’t require) the integrated experience I had come to expect as a Visual Studio user. As you would expect from a modern IDE it takes full advantage of open source plugins. I have found that many of today’s web-devs’ prefer to develop from their mac. Again, WebStorm has your back, it can be run on Windows or Mac. Try doing that with Visual Studio!

Visual Studio costs at least $1200 (unless you get a stripped down express version). Price wise, WebStorm wins hands down (it is only $99, $49 for personal use). Believe it or not, it costs less that getting Resharper! With the great pricing, it is easy to keep your team on the latest version. Even at this price point, there are tons on plugins, allowing for a very Visual Studio like experience. You can get the usual Intellisence, pre-compilation (even for Javascript), refactoring support, and much, much more.

Visual Studio has a very structured project file (.csproj).   Sometimes that is a blessing, for example when you want to find all references or to refactor a class/member to a new name.  At the same time the project file can be a bit of a burden.  If you want to add or remove files you have to let Visual Studio know, and there are the dreaded times when the project can become corrupt.  While Webstorm does have the concept of a project (.idea), it is far looser.  Simply add or remove files to a folder and Webstorm will see it and add it in.  If for some reason the .idea becomes corrupt, simple delete it, next time you open the folder, it will be recreated.  The .idea offers many similar features to the .csproj.  For example, it offers safe deletes, and global renaming (renaming all that reference something). 

In my opinion, Visual Studio is king when it comes to strongly typed languages such as C#.  Webstorm isn't really meant to be used with strongly typed languages.  As I highlighted above, its niche is  working with HTML, JavaScript, CSS, AngularJS, EmberJs, and other web technologies. 

So, am I saying that  I am done with Visual Studio? Not even close, I love using it to for development of .net apps projects such as MVC and WebApi.  Also, if the project is a hybrid of MVC and something like AngularJs I still choose Visual Studio because I like everything to be integrated. That said, more and more, I am trying to separate the server from the client, in cases where WebApi is the backend, I like to us Visual Studio for Api development, then write a pure HTML/CSS/JavaScript front-end using Webstorm.  I challenge  you, to give Webstorm a try on your next web project. You wont be disappointed.

For those still wanting more, PluralSight just released a course all about WebStorm...

Thursday, September 11, 2014

DeMotivators: The Hidden Costs

What are they and why does it matter to me? Demotivators (DM's) are things that are said or done usually by management. They can strip morale off a highly performing worker, as fast as a solvent removes paint from a chair. When these things happen, an exceptional dev can be reduced to a problem child in a matter of moments. Worse still, demotivators are usually not something that is needed at all. Many times they are spur of the moment comments or actions that really serve no business purpose.

More often than not your top producers are affected far more by a DM than the less effective ones. Why is this you ask? There are many different theories, but I believe it is because one thing that really sets the rock stars apart from the rest is in fact: motivation. Take that away and they become "just a guy."
Think of a farm that is has been producing great harvests; a lot was likely invested to get it that way. What would happen if you inadvertently introduced pests of one sort or another? Your crop would likely become distressed; some of the harvest might begin to wither. Still worse it won't stop there, those pests will begin to spread, and if left untreated you could lose the entire crop.

One PM I know told me that he grew tired of worrying about everyone's "happy meter."  Instead he took the attitude that he did what he did and they did what they did and neither the two shall meet. I think he missed the boat; following the happy meter aka managing moral may be a leaders most important responsibility. The morale of the troops is a critical component in battle, a demoralized unit, no matter how well trained is set up for a route. The same applies to sports. Why wouldn’t it also be true in business?

In the end that PM found himself with a team of mediocre devs in senior roles and wondered why everything they produced was buggy and unstable. That is not to say that even the best of us don’t have bugs, on the contrary, all development has bugs no matter who develops it. The difference is the time it takes to develop, maintainability, and the overall quality of the product.

During my time as a PM I worked extremely hard to avoid DM's because in the end, my performance was directly related to that of my team. It simply was not in my best interest to have my best devs, going home and working on their resume (worse yet doing it at their desk). And lets not kid ourselves, that is usually their response.

It is my opinion, that demotivators should be avoided at nearly all costs. The costs of DM's to businesses are just too high (and there rarely is any return). From missed deadlines, to loss of organizational knowledge, to high turnover (a key indicator), nothing good comes from it. I have known many leaders that ignored morale, in the end, most end up with a team of morts and new hires. Don’t let this happen to you...

Thursday, February 13, 2014

Tips on The Interview: What you may be missing...

So, you got the interview huh? What now? You are likely expecting me to tell you things like act natural, have a few questions ready, or something like that. Well, that has already been done, and frankly, we have all read those suggestions hundreds of times. Instead, I would like to discuss the half of the interview most of us aren’t even aware of, the part where we are interviewing them.
Sure, there is always a part where they ask us if we have any questions, and yes we always have one or two. These however, don’t even scratch the surface. Often times candidates ask these questions for no reason other than to show interest in the company, and really don’t even care about the response. This is a missed opportunity.
Instead of simply trying to impress a potential employer, so we can get the job, it is our responsibility to fully vet them just as they are trying to do to us. It is likely you will be working with these people for quite a while, and don’t you want to know just who they are beforehand? I like to look at it as if it were a first date. This is time to get to know each other and decide if we want to move on to the next level.
First, understand, like you they are trying to put their best foot forward. This means they aren’t going offer up the fact that the have had high turnover over the last year, that would be a red flag. Agile development is in, so they may tell you they are an “agile shop”, I can tell you I have known many of organizations that do think that simply because they have a meeting they call “stand up”.

What about their work? Is it up to your standards? They will likely ask to see examples of your code, you should do the same. I like to ask what project are you most proud of. I then ask to see it white boarded at a high level. Additionally, every company has some legacy app that no one wants to work on, I want to know as much as possible about that as well. It is highly likely you will spend a lot of time on that one, at least in the beginning.

References, most companies ask for references, and while it is tough to get something like that in return, you can check glass door and other internet sources for comments from previous employees. You may or may not have goggled them, do it. I had one potential employer that I found tons of chatter about, one of their products was a toolbar. The chatter was questioning if that product was a virus! It wasn’t of course, but I realized, I wouldn’t have been happy working for a company with such a bad reputation.
In summary, the responsibility lies with us as developers to make sure that a potential employer is a good fit. Too often we forget this then wonder how we got where we are today. The employer is checking you out six ways to Sunday, shouldn’t you do the same?

Blogging Again!

After some time away I have begun to blog again... I look forward to covering many new and exciting subjects...