An Internet Button

Wow! Its been way to long since I sat down to share something. I’ve meant to dozens of times. But just never knew exactly what I wanted to share. I’m hoping I’ll get to some of those ideas, like a deeper discussion of my Power BI automation API project, or perhaps discuss my new Intelligent Orchestrator blog. But since I’m really out of practice, I thought I might try something a bit simpler.

I’ve been playing with an internet button. 🙂

Particle’s Internet Button

So what we have here 120Mhz ARM Cortex processor paired with a Wi-Fi module (aka Particle’s “Photon” board). this board is then mounted on a circuit board that contains a ring of 11 RGB (red, green, blue) LEDs, a 3-axis accelerometer, and 4 push buttons that let you use this like a controller style D-pad. The result is a pre-packaged circuit board with lights and sensors that doesn’t require any wiring or breadboards.

This appears to be the product of a partnershipt between Particle and Adafruit. With the former having responsibility for the “brain”, and the later for breadboard and likely manufacture of the button as a whole. I shopped around and if you bought all the components contained in this kit yourself (minus the custom plastic housing)  you’d be spending about $40-45. Considering that for few bucks more you get the entire thing assembled for you, testing, in a nice metal “can” case, I think its a worthwhile spend.

If you’ve programmed an Arduino, you’ll be right at home with the Photon. It uses a Wiring so you’ll be able to apply existing skills.

But why?

So the question you may be asking yourself about this… why? Well, like most of my projects, it started with a customer ask. They had noticed Amazon’s IOT Button and wanted to know if there was something similar for Azure (Amazon’s button is aimed at AWS of course). As I went poking I found the Particle button.

Now admittedly, it was more than twice the price of Amazon’s. But again, we’re getting 4 times as many buttons, plus the accelerometer, and the LED ring. So from a prototyping standpoint, there’s alot more to work with.

With this in mind, I figured I’d needed a sample project to work on. So I set about to create a “busy light” for Skype. I work from home most of the time and my family has noted it would be great if they could know I was on a call or not without having to come and ask me. With the LEDs, this seemed like an easy project. And after a little poking around, I found a colleague, Jon Gallant had already done some work in this area.

So with a will, and an idea about the way, I ordered my button and got ready to get to work.

How I set it up…

After about a week, my button arrived. I followed the initial setup instructions and set about loading a sample program in to make sure it was set up and working. This is one of the reasons I like working with the Particle stuff. Once the device is set up, all you need to do is keep it plugged in and connected to the internet via Wi-Fi. You can do all your device management and programming via Particle’s web based IDE.

This simple IED also includes access to a marketplace of programs and samples you can easily load onto your Photon. I selected the “blink an LED” sample program and clicked “Flash” to send it to my Photon. Sure enough, in a few seconds the LED in the center of the Photon started doing a rainbow affect.

Now to my “busy light” code working….

I started by creating a simple loop routine that could create a spinning ring of colors. Green for “available”, Yellow for “away”, and Red for “busy”. This took a bit of playing because I’m not someone who normally writes code for devices. But after a few hours, I managed to work out a solution that got the job done, and admittedly wasn’t so bright that it would give my wife a migraine.

With the light code in place, I had to have a way to get the status of Skype on my computer to the device. Unfortunately, there’s no modern “Office Add-in” model for Skype for Business. At least yet. And if you’ve seen the news, the plan is to merge Skype and Teams into a unified communications platform. That’s alot of work, so it may take awhile before there’s an add-in model we can leverage. Fortunately, Jon had already built a project using the now deprecated Skype for Business SDK. While it may be officially deprecated, it still works. So I immediately went and snagged his Beakn project.

Since the SDK has been deprecated, finding the bit to build Jon’s code is difficult. Fortunately, he’s published several releases (linked above) so you can snag one and install it. One VERY important thing you need to do after installation…. Go to the install location and update the beakn.exe.config so that Protocol app setting is “SparkCore”. If you don’t do this, you may waste way to many hours trying to figure why things won’t work. Personal experience talking… You can find this file at: %programfiles(x86)%\beakn\beakn v0.4.3 With this change made, you just run the Beakn client and configure it to point at your device.

The Beakn client is looking to send events to an API function named “setStatus”. One of the really neat aspects to Particle’s boards is that they connect (by default) to their device management back end. This allows you to register functions on the device that can be accessed via this API. And the API is managed entirely by Particle. So my code would register a “setStatus” function that changes the color.

The code for the Photon isn’t that big, but I’ll save you an ugly copy and paste. I’ve shared the code via Particle’s IDE environment. You can find it at: (this does require registration).

With the code flashed to my device, and the Beakn client running… I now have interruption free calls.


So there you have it. While its not a $50 commercially made Busy light. It does get the job done. And when not being used as a status indicator, it will have numerous other uses it can be put too.

Until next time… keep connecting the things. 🙂


An Anniversary, and a restart

This month my 3rd anniversary at Microsoft (start date was October 15th, 2012). Three years working for a company I believe in, focused on a topic I’m passionate about (cloud), and working with many great partners and fellow geeks along the way. Its been a great experience and one I hope till continue for some time to come. I’ve been able to explore new opportunities and stretch myself a bit. This has sometimes proven successful, sometimes not. But as with all things, I learned a lot.

One thing that has suffered, is this blog. Its been almost 8 months since my last post. Part of this been due to “the demands of the service” and part has been a lack of me feeling I really had anything to share. I was learning, but it was mostly focused on skills I hadn’t previously picked up (JavaScript, AngularJS, DocDB, etc…). In these, I wasn’t sure I really had much to contribute. So I focused on the partners/projects in front of me and let the “evangelism” side of my job slide a bit. I haven’t even been doing much speaking.

This month, I intend to start changing this. To get back to my desire to help others and “spread the word”. All this while I help the partners I’m assigned to and my colleagues. Back on July 1st, I moved to the Commercial ISV team. This means that I have a portfolio of partners I’m focused on (4 large software vendors that are focused on providing solutions that in some way serve local, state, or federal government). I’m also focused on Windows 10 UWP, Office 365, and of course Microsoft Azure. What you can expect to see from me over the course of the next few months are topics like the Azure Resource Monitor, Windows 10 UWP with Cortana and Azure Services integration (really keen to play with the new Azure AD B2C stuff), Windows containers, and Media streaming. IOT may also come up, but despite it being such a key industry focus, isn’t high on my list. If things to really well, I may even have some Hololens stuff to share by next summer. crossingfingers

That’s really all I have to say for the moment. But look for more soon (already working on a posts around DocDB and Azure SQL DB performance analysis w/ Power BI). Meanwhile, look for me on the twitters and let me know if there’s something you’re interested in hearing more about. Otherwise, I’ll be up-skilling and prepping to pass the Azure Architecture exam.

Until next time!




New Role: focus on the Enterprise

For the last 18+ months, I’ve been fortunate enough to be part of a great team of professionals that have focused on helping ISVs (Independent Software Vendors), successfully adopt the Azure platform. I’ve enjoyed being a part of this team more then I can express, but the time has come for me to return to the Enterprise focused market where I’ve spent the majority of my 20+ year career.

Affective July 1st, I am transitioning to a new team within my current organization (TED), that will focus Enterprise Architecture. I remain focused on the Azure platform, but will be bringing what I’ve learned from working with ISVs as well as my past experiences with Enterprise customers to try and help grow the platform even further. This new team, led by Barry Briggs will also allow me to join forces with great minds such as Josh Holmes and my old friend David Makogon.

I’m extremely excited about this move. While a significant number of the fortunate 500 company’s out there already have Azure, I’m convinced there is still an incredible amount of untapped potential. And I look forward to working with this new team to help unlock new stories, and exciting new solutions.

Thinking about Effective Communication

Some time back, I drove to visit my parents; 6 hours alone in the car with only my thoughts. Admittedly, this trip wasn’t recreational so I was pretty introspective and the only distraction I had was random radio stations. At one point during the trip, I happened across a National Public Radio broadcast that focused on communication, “Spoken and Unspoken: TED Radio Hour”.

As I listened to the show, it struck me how communication is key to nearly everything we do. It could be communicating concepts to customers, sharing ideas with colleagues, sharing status with managers and account team associates. But at the crux of it all is how we express information and how it is received.

This program clued me in that texting is transforming our spoken communication. That if you’re talking with folks who have a different first language, some concepts (subjunctive?) simply won’t translate. That history can change what words mean. And lastly the importance of body language not just to my audience, but perhaps to the way we look at ourselves.

What we need to remember is how the way we communicate impacts the impression of the audience. If I smile at person, it means I’m happy. If I smile at a dog, I’m aggressively baring my teeth! By understanding the audience I’m addressing, I can take the appropriate action to really help get my message across. This can extend to understanding how the English language, is both globally unifying and segregating at the same time. By understanding the way communication is perceived by the audience (do I shake hands, or bow), I can make sure I’m communicating the correct message.

Growing up in a rural community in the central United States, the most exotic thing I was exposed to was tacos. So I really only knew the way Americans approached communication. As my career advanced, I started leading teams and eventually found myself in the position of having several team members from India. For a Midwestern farm boy, this was a culture shock. But fortunately I was given a tip… Always start a conversation with a personal greeting or question, never jump straight to business. This ran counter to the way I was always taught to “get to the point”, but I quickly found that my team members from India responded much more favorably when I opened discussions this way. And if you’ve IM’d with me, or even looked closely at my writing, you see this simple advice taken to heart.

The next time you prepare to address an audience, write an email, record a podcast, or author an article, always think about your audience. Know who they are, and try your best to communicate in a manner they will be most receptive too. But most importantly, realize as much comes from what you say, as what you do.

The entire show is broken up into 5 different recordings, each of which is only 5-10 minutes in length. I encourage you to give them a listen and as you do, think about what they mean to you. Try to incorporate some aspect of them into yourself so that you can be a more effective communicator.

PS – Many thanks to Jeremiah Talkar for helping me proof/edit this editorial.

Joining Microsoft

Seven years ago, I set out to take charge of my career. I’d spent the last 13 years working as an FTE for various employers both large and small. And realized that for the last 5-6 years, I’d basically been coasting along with the currents. If I wanted to go anywhere, I needed to take control and find a direction.

With that decision, I set out to pursue a position with a consulting firm. It figured it would provide me with challenges that would help me grow.  Fortunately, just as I made this decision, my brother had a coworker leave to go to work for a local firm. I shared my info and within a few days got a call. Even more fortunately, they had an immediate need for someone with my exact skills (knowing both the mainframe and .NET worlds). Things moved very rapidly and in less than a month, I joined Sogeti USA as a Senior Consultant.

I haven’t regretted that decision for a moment. Working at Sogeti has been a great experience. It has had its up and downs like any job. But taken on the whole, I’ve really liked it here. I have a management team that I feel honestly cares about me and my career growth. I work with some great people both locally and globally. And most of all, they provided me with the opportunity to seek out new ventures for myself and the company. In my seven years here, I’ve gone from being a local code-slinging, heads down delivery resource to a national thought leader with the organization, helping steer its future.

So it was a very difficult decision for me to leave this behind. Colleagues I’ve come to consider friends and even family.

Now over the last 3 years, I’ve been focused on this “cloud thing”. I went really deep on a technology I feel would help carry my career for the next 5-10yrs and in doing so I achieved some items I never really set out for. I gained the attention and made friends with some REALLY smart people at Microsoft. I’m talking the kinds of people that just when you think you know what you’re talking about show you that you don’t know jack. I also became a Microsoft MVP for Windows Azure. And nobody was as surprised about this as I was.

Over these years, I’ve also learned of opportunities to work even closer with Windows Azure. But the opportunities never felt right, especially with two kids I would really like to see graduate from the same school system they’ve been in since kindergarten. That was until back in June of this year when a position was posted on the Windows Azure ISV Incubation team. I thought long and hard on this, even talked to former Microsoft employees and family. And after weeks of reflection I applied and was ultimately offer the position.

So starting Monday I’m going to join Microsoft as a Technical Evangelist in the US central region. I’m both excited and nervous about this change. Sogeti is a great company to work with and I wouldn’t hesitate to go back for a moment. But I feel that at this time I’ll truly be able to pursue my passion around cloud and maybe in some small way help steer the platform into the bright future I see ahead of it. Not a short term one of “wins” and industry hype. But one that is helping organizations of all sizes build the next generation of applications and solutions.

I’ll still be based in Minneapolis, and still active online and at local/regional events. I do have to set aside my MVP status (which I’d just received for the 3rd time). But honestly, that pales by comparison to stepping away from my role at Sogeti. And I’ll never forget that Sogeti has been the place that most helped me grow and get to where I’m at. So this next new step in my life wouldn’t have been possible without them.

So today, as I look at my surroundings, is a day for mixed emotions. I have hope and excitement about the future. But sadness at the ending, well.. the changing of a great partnership.

TechEd North American 2012–Day 3

So I got to have a full day of sessions today, complete with a little bit of wandering around the expo floor. As if that weren’t enough, I learned a few things, confirmed some others, and also managed to meet a few folks and help them along the way.

Building Web Sites with Windows Azure

So my first stop after a quick breakfast was to a workshop being run by Brady Gaster and Cory Fowler, friends and members of Microsoft’s Windows Azure DPE (Developer Platform Evangelism). They were jointly running a workshop to help folks create their first windows azure web sites and get them up and running. Brady had a really cool car decal of the Visual Studio 2012 logo for whoever completed the lab first so folks were trying hard. Since I was the ringer in the audience, I just hung back and worked on some email.

Eventually there were enough problems and questions going on that I was drafted to help out and jumped at the chance. I helped one gal past a bug in the preview of the new HTML based management portal, and helped someone else just find their way around (it was their first time learning Windows Azure).

At the end, I had someone stop me to talk about their shop and any opportunities. Fortunately, I was so late to my next session (sorry Karandeep, I know I promised to come) that it was filled up so I had plenty of time to sit and talk. Again, my favorite part of Tech Ed (next to the tackle hug I received from Cory). Smile

As if that weren’t enough, we realized part way through the workshop that the LCD monitors in the workshop lab were actually TOUCH SENSITIVE. I so want one know. I may have to stop by tomorrow and get the model numbers.

Deep Dive into Windows Azure Virtual Machines (from a cloud vendor and enterprise perspective)

My next session was with Vijay Rajagopalan of the MSFT Product team. In this session he did some really detailed walkthroughs of the new Windows Azure Virtual Machine features and more importantly brought up a couple vendors, Scalextreme and RightScale to show us how their products can be used in conjunction with this new feature to really speed up the deployment of new solutions as well as reduce the management burden of a more infrastructure and less passed based solution.

I think my favorite part was seeing that they had automated failover of a SQL Server Virtual Machine. They didn’t take it to a fully automated state where the failure was detected and a backup copy spun up. But it was still very impressive to see that with just the push of a button, a new VM was brought into an active state. They said that with a bit of additional work, you can even automate the provisioning of SQL Server virtual machines and joining them to a cluster to help scale out traffic. Pretty cool stuff I can’t wait to show folks when I get home.

Modern Application Design : Cloud Patterns for Application Architects

My final session was by Ulrich Homann of Microsoft Consulting Services. This session touched on some great topics. I hope folks in the audience were paying attention. I knew many of the tidbits that Uri was talking too, but loved his delivery. I need to put my own version of these items up soon. Smile Once this session recording is posted, I’m going to come back here and make sure I link it so you can all check it out.

Final Notes for Day 2

I ended the day with a visit to the Microsoft Private and Public cloud theater where I watched a vendor presentation and snagged a cool TechEd/Cloud t-Shirt. A great end-cap for the day.

But there was something else I wanted to close out today with. Last night, long after I had posted my day 1 and 2 thoughts, I was invited to dinner with members of the Microsoft cloud team. Aside from the fact that they are all very warm and fun people, I continue to be amazed by how much their thirst for stories about how we use their products. What we tend to forget is that these are developers just like us. And outside of the rare instances where they get to go out and mingle at events, they actually don’t often get to interact with the folks that use their products. And when they get time with someone that is, they can’t seem to get enough about how the tools they built are used.

The story here is that we tend to think that conferences are all about getting swag and getting tips/tricks that make us better professionals. What we need to remember is that these events are as important to Microsoft because it allows them to learn first hand how their products are being used and what challenges their customers still face. So when you stop by a vendor booth, don’t just grab a pen/t-shirt/thumbdrive and duck out before they can scan your badge. Stop and let them know what you think of their products. Help them make it better.

Well, that’s all I have time for today. I have a couple evals to complete yet and then its off to dinner with Mark Brown and a bunch of the Windows Azure Insiders and MVPs.

Until next time!

PS – I’m in a rush, so I apologize for a larger than normal number of typos in this post.

TechEd North America–First Impressions

Just got out of the second day keynote for TechEd North America in sunny and almost unbearably muggy (at least for this Minnesotan) Orlando, Fl.  Its my first trip to TechEd and honestly the experience has been awesome. I’ve only attended a couple sessions so far, mainly because I’ve been either networking with folks I know, a few new folks, or best yet helping staff the Windows Azure booths for Microsoft.

The Keynotes

There are only two keynotes for this event, day 1 and day 2. The Monday keynote was all about cloud. Public and private. I’d seen all the public cloud stuff last week online during the Meet Azure live event. But the private cloud gave me much to chew on.

First thing I need to do is give credit to the System Center and Server 2012 teams. About a year ago, I posted a blog post about missed opportunities. Essentially, I didn’t believe that Microsoft’s “private cloud” was really that. It was just another example of cloud washing. Well I was WRONG. Microsoft’s private cloud has the features that are IMHO critical: resource pooling, redundancy/failover, automated resource management, and most importantly self service. While it doesn’t have the seemly deployment model that is present in Windows Azure (yet), it does give us the ability to easily provision and deploy virtual machines. Add to it some of the “infrastructure glue” things that aren’t really my expertise and you have a solution that’s really competitive with VMWare. It will take some time to change minds enough to get people to leave existing investments, but Microsoft has definitely gotten serious about competing with them.

Day two was all about Windows 8. I learned a couple UI tricks which addressed some issues I had with the platform (the mail app still needs SMTP/POP support) as well as got a better idea of what the WOA (Windows on ARM) experience will be like. Yes, you WILL be able to manage and trust ARM devices from your enterprise, yes you will be able to have internal/private app stores, yes you will still have a desktop mode. Not any real clarification though on building apps for ARM beyond what’s already been published regarding WinRT. But that will hopefully come in time. Still, the future it bright and I think consumers are going to really like Windows8. Unfortunately, beyond providing support for BYOD (bring your own device), I can’t see anything compelling enough to force the enterprise to migrate, especially if they already migrated to Windows 7.

Staffing the Booth

I spent about 4.5hrs yesterday staffing the “Migrating Applications” Windows Azure booth. The last time I manned a convention booth like this was at E3 when they launched the XBox. It was much easier than that experience. Partially because TechEd is about 90% less of a zoo, and partially because I know the product. Or at least I knew it well enough yesterday to help answer folks questions about migration of applications.

I met some great folks, many of which I shared some experiences with. There were a couple folks from the University of Iowa (my brother is an alum there and I grew up less than an hour from the campus). They worked in the civil engineering area and had some great questions about data and Homeland Security requirements. They were the only real stumper I had during the shift and were still great to talk to and very understanding that I couldn’t directly answer the question. But they appreciated the compliance knowledge I did have.

What really surprised me was how much interest there was in moving apps. The message the Windows Azure is ready for prime time is really coming through. One person even looked at me and said “Windows Azure is everywhere, I can’t ignore it”.

I’m back at the booth this afternoon for my final 4.5hr shift. Between the keynote and writing this blog post, I won’t really make any sessions today but It’s a small price to pay for the great opportunity to network with the folks at Microsoft and potential cloud adopters. I’ve never been asked for and handed out so many business cards.


I’ve only squeeze in two sessions for far. One was Scott Gu on Windows Azure (pretty much what we saw last week), and the other was a System Center MVP from Belgium on creating a private cloud in 75 minutes. There’s no way I could do it that fast, but I could follow along enough to see how complete the picture was for Microsoft’s Private cloud. 

Both sessions were great, but I’m looking forward to more. Tomorrow and Thursday will definitely be stacked with great info so I’m going to reexamine my planned sessions. There’s not much new for Windows Azure for me here, but there is definitely a lot to learn about Microsoft’s Private Cloud and the potential for Windows 8.

Until next time!

PS – I’m authoring this blog post from my Windows 8 slate.