Tuesday, October 25, 2016

The Wolf Bytes is Back

Been a crazy couple of years to include some phenomenal projects I've delivered, leading a team to the Best Overall App at AT&T Dev summit and my wife being on the door step of death to making a full recovery from Multiple Myeloma.

All that aside now that my life is getting back to normal and came back up for air...I realized it's time to "re-invent" myself.  Are your in a groove, or a rut as well?  For the past 10 years my business focused on mobile development, developing for Windows Mobile, iPhone Native, Android Native and now most of my work is in Xamarin.  I've had many successes shipping software on all these mobile platforms and likely could continue doing so indefinitely.

My early background and true-love is really embedded systems programming and this new thing called IoT.  I have what I think is a vision for an IoT based product and as part of this I needed a web app and services.  Prior to my mobile development, I did a good amount of web dev to include Classic ASP, ASP.NET, MVC, WCF, ETC.... I started building a simple ASP.NET MVC 5 app, and decided hey...if I'm gonna learn this stuff, I might as well target ASP.NET core and MVC 6.0.

All I can say is....

The game has completely changed!

This was really an eye opening experience for me, in my opinion the change between ASP.NET and ASP.NET core is as big as the change from Classic ASP to ASP.NET.  Let me clarify...the coding/dev part is not that terribly different, you still have .NET classes, Razor templates (although I'm really falling in love with Tag Helpers instead of Html Helpers) and most of the knowledge you have from ASP.NET libraries still applies.

Side Note - I really wish the name spaces changed a bit more from Microsoft.AspNet.Something to Microsoft.AspNetCore.Something.  A considerable number of classes are identical between the two classes and I've lost more than a couple hours where I added the name space Microsoft.AspNet.Something where I should have added the AspNetCore namespace.
The major change is how the apps are built, in the past, you added "stuff" to your project and based on the extension type (in most cases) the build action was defined and the project targets turned all your source code and assets into "stuff" that ran your app.  In the brave new world...not so much, you are responsible for configuring all the tools with a real favor for tools and utilities written in Node.  You have tools named things like Gulp, Bower, Grunt and a few others.  Whether this is right or wrong is pretty much immaterial, the ship has sailed and it's time to jump on board...or get left behind. 

I think the biggest thing that hit me was how much of change this was.  There are templates to get you started that setup your project frameworks, I've also spent many, many hours at the ASP.NET Core site, they really did a good job of discussing the new tooling and frameworks.  If you haven't started down this road yet, it's time.

On one hand I think way too many developers just relied on the "crutch" that VS.NET provided, not in a bad way, but it let you focus on your code or in the app domain.  So the requirement to understand what's going on is not that bad of a thing.  On the other hand...to be productive you need to not only know your dev skills but also need to at least have a good grasp of the build tools and process, we'll see how dynamic these tools are.  It's not all that beneficial, even if it's the greatest tooling, to have it change every six months...or just as you become proficient. 

Image result for two by four to the head

Wake Up Call!

This little detour into Web App Dev from my IoT product development hit me like a two-by-four to the head and made me ask "am I really in a groove?  or is it a rut?".  It made me realize that yes, I had become a specialist, but as an architect I also need to have more than high-level understanding of pretty much most of the common dev technology.  This change made moving to the .NET Core and how much of a change it really was made me realize it's time to "re-invent" and "re-focus".

I think at this point, my mobile app delivery skills are really at the "Sharpening the Saw" level of 7 Habits, and it's time to start back over at step on a much bigger stage.

I'm getting really excited about this and look forward to making a number of announcements in the coming months.

Until next time!


Monday, September 1, 2014

Galileo NetworkSerial – Port 27015

Creating a network client on the Windows Version of Galileo is what I would call trivial!

There is however a catch, in the initial SDK that was released the only port you can use is hardcoded at 27015.  If you look towards the top of the GitHub file you’ll see the DEFAULT_PORT.  Maybe I missed it but I couldn’t see anywhere to override this.  Once you understand that, reading and writing from sockets is as simple as this:


Simply create this program, then on your PC open up telnet and connect to port 27015.

Hopefully in a future version of IoT you’ll be able to use different ports.


Sunday, August 31, 2014

.NET Hacker Room at Code Impact

If you haven’t done so yet, you should register for Code Impact up in Jacksonville on September 13th.

I’ll be hosting a new tradition in FL Code Camps a .NET Hacker Room.  A .NET Hacker Room is a unique experience that will allow you to see and play with some of the latest hardware technology.  

This room will offer things like
- Internet of Things
- 3D Printers
- Quad Copters
- Windows Galileo
- Robots
- Netduino's
- Oculas Rift (V2)
- More!

Also throughout the day, come in for 10-15 minute lightening talks on the above topics.

See you there!


Tuesday, August 19, 2014

Inaugural Tampa Internet of Things Society Meeting

As of August 19, 2014, the Tampa Bay .NET Microframeworks Group will start a new Chapter as the Tampa Internet of Things Society meeting.  What’s with the name?  Just seemed appropriate…

Here are the slides from the inaugural meeting.



Running Windows on Galileo – Off The Shelf

As of yesterday 8/19/2014, you can take a standard Galileo and run Windows on it.  This is a $50 piece of off the shelf hardware you can purchase off of Amazon and get started with the Internet of Your Things.Intel GALILEO Single ATX DDR2 1066 Microcontroller Motherboard GALILEO1.Y

What you will need:

  1. Galileo – From Amazon for $50 as of the time of this writing, of course available with Prime
  2. USB Network Adapter – From Amazon $11
  3. 16GB Micro SD Card – From Amazon $11

You’ll also need something to write the files to your MicroSD card, you probably have something like this.  Also the MicroSD card comes wiht a full size SD Card Adapter.

Most of the steps you need to get up and running can be found on the MS IoT update page.

Here are some things I ran into while setting up my environment.

Upgrading your Galileo to 1.02 Firmware

When you get your device, it will more likely be a 0.7X version to run with the new Windows Environment, you’ll need to upgraded it to 1.02

First off you’ll need to update your Galileo, you’ll need to install the Arduino 1.5.3 environment from the Intel site, so copy this to your hard drive, there isn’t an install, but you’ll just need to copy your files over to somewhere on your hard drive.

To update your Galileo you’ll need to apply power to it and plug the USB cable into the port labeled USB Client, this is the one next to the jack that looks like it’s for headphones (it’s not, but that’s a different story).  Start Device Manager and keep it open.  Then you need to wait, it could take 2-3 minutes, so be patient.  Look for a device named similar to Gadget Serial V2.4, or an additional Serial Port, again, don’t get worried if this take a little while.  If you have a new serial port, you are good-to-go.  If you don’t then you’ll need to install the drivers for the new device.  To install the drivers for your new device to let it work as a serial port.  Right mouse click on that device, select Update Driver Software


Then navigate to the folder that is installed in and install the driver.

Once you do so, you should see a new port, it should be the one with Abstract Control Model:

Once you have that, then you can start the arduino IDE:

Make sure the port that is identified above is selected under Serial Port

Then click on Help ->Update Firmware, this takes 5 minutes.  Make sure you Galileo is plugged in to the wall and you do not disturb the device while it’s updating or your could Brick your device.

Burning the SD Card

This is relatively straight forward, and you just need to let the process run on my machine it took about 1 hour to burn the file onto the SD Card

Getting your PC Ready

There is a really good guide here that gets you going, however you’ll need to install the standard Telnet client on your machine from Add/Remote Windows Components.  Then you need to install the MSFT IoT SDK from here (for VS.NET 2013 Ultimate, for other editions please see the prior link).

Getting your Galileo Online

Great Step-by-Step instructions here.

Compiling Your Apps

Before you go off and create your next big thing with the Galileo it’s probably a good idea to make sure that you can compile a simple example.  After you installed the SDK, you’ll see a new option with File->New->Project


Once you do that you’ll see a very simple program that will toggle one of the I/O pins and write something that will be sent to the Debug Output window.

An important note here – To Deploy applications from VS.NET to your Galileo you may need to Open Outgoing Port 4018 on your PC’s Firewall.

That’s it!  Now you should be able to run the samples and build some awesome stuff!


Friday, July 25, 2014

Tampa IoT Society – and the start of a new era

This morning before I started my client work, I took a few minutes to configure my highly customized Intel Galileo board and was able to successfully run Windows on a Very Small device.  I’ve order some really cool parts from SparkFun that I hope to integrate with the board over the weekend. 


Also – today I am announcing that I am formally rebranding the Tampa .NET Microframeworks Group as the Tampa IoT Society. Our next meeting August 19st  will be dedicated to going through how to get started and what you can do.  I’ll also be sharing and discussing our vision of what we will be looking at for the next 12 months.


Friday, June 20, 2014

DataBinding 101 – AppCamp Materials

On June 20, 2014, I will be presenting on DataBinding for your applications at 2014 AppCamp Tampa.

And here are the completed demo files