developer maker musician

Wednesday, August 17, 2016

How to Directly Connect to Azure IoT Hub's Underlying Event Hub

Here’s how to directly connect to the Event Hub that backs an IoT Hub.

Here’s the connection string template, copy this, then copy each highlighted part from each step below.

Endpoint=<Event Hub-compatible endpoint>;SharedAccessKeyName=iothubowner;SharedAccessKey=<iothubowner primary key>


1. Event Hub Compatible Endpoint

In the Azure Portal, go to your IoT Hub, Settings, Operations monitoring:

image

2. SharedAccessKeyName

Set to iothubowner or whatever user you want to use


3. SharedAccessKey

In the Azure Portal, go to IoT Hub, Settings, Shared access policies, select user and copy Primary Key

image

Wednesday, August 10, 2016

HIRING: Senior PM Evangelist - Internet of Things (IoT) - Microsoft, Redmond, WA

I joined the Developer Experience team not too long ago and am focused on helping partners develop IoT products on the Azure IoT stack. I just found out that a sister team is looking for a Senior PM Evangelist to help develop the official IoT related programs we run.  Full details below. 

If interested, send me your resume here: http://bit.ly/emailjon – it’s not a bad idea to include a blurb about yourself and why this role is a fit.


Jon

--------


Senior Program Manager Evangelist

As a company, Microsoft is looking to realize 3 bold ambitions: to create more personal computing, to reinvent productivity and business processes with better collaboration and new workflows, and to build an intelligent cloud that can accommodate rich data. Internet of Things (IoT) is a key enabler of these ambitions and a significant growth opportunity for Microsoft.

The Platform Evangelism and Planning (PEP) team within the Developer Experience and Evangelism (DX) Team responsible for defining DX strategic plans from programs and offers through to metrics and field execution to advance the Independent Software Vendor (ISV) and Evangelism agenda for Microsoft technologies. The PEP team works in a cross-functional manner, partnering with Microsoft product teams to define priorities and outcomes, then working with outbound ISV and Evangelism teams to land programs that drive adoption.
We are looking for an experienced Business Program Manager / Planner interested in being on the leading edge of IoT planning across the MS Platform. Due to the importance and dynamic nature of the work, the ideal candidate must have a strong sense of entrepreneurship and market/technical thought leadership, paired with a proven track record across all phases: from program design to implementation to sustained monitoring of performance.

This PEP Program Manager will work with teams across Microsoft to formulate impactful ISV and Evangelism plans, programs, offers and metrics that advance our technical marketing and engineering agendas aligned to roadmap or disclosure moments. In addition, Platform Business Program Managers provide critical customer feedback that will improve MSFT offerings. Success in this position requires working well in a team environment and building strong partnerships across different organizations. This role is an excellent opportunity for someone who wants to work on a high visibility project that will drive impact and help them grow professionally as a domain expert in an increasingly cloud and mobile connected world.

Role Qualifications:

  • Strong understanding of mobile and cloud computing technologies, business drivers, and emerging trends
  • Ability to present insights in concise and effective manner to a variety of stakeholders.
  • Proven track record working across large corporate and field organizations to build consensus with at least 7 years of experience doing so
  • Results driven; strong analytical skills with exceptional verbal and written communication
  • 7+ years of experience leading product or program cycles from initial design through deployment and monitoring
  • Strong background in working with ISV Startups or high profile application development projects
  • Passion and drive about productivity and great mobile and cloud experience
  • 7 years of related experience in program planning, business development or technical evangelism in related industries
  • Exceptional decision making, organizational and negotiation skills with attention to detail
  • Excellent project planning and management skills with ability to juggle multiple projects at once
  • Solid written and verbal communications skills with range from end-user and developers through to senior executives
  • MBAs preferred but not required.

In the role you will be responsible for:

  • Setting the strategic direction and overall program/project definitions across ISV and Evangelism
  • Defining strategic App Acquisition, Go To Market (GTM - incl. “sell with” opportunity) and Early Adopter Evangelism programs that compel developers and ISV to bet on Microsoft; then enable them to accelerate their success in IoT scenarios.
  • Target setting and prioritization (focus on "why" and "what") for the different sub-projects
  • Representing the voice of the customer, partner and developer in the process
  • Definition of the requirements and policies for the programs
  • Providing quality marketing analysis and insight within a crisp set of priorities and story line that DX, Engineering and Marketing can get behind
  • Synthesizing data and market insight Decision-making on program related issues related to the purpose/definition
  • Building trusted relationships across range of Microsoft teams to advance shared agenda and priorities
  • Proven Escalation management capabilities


Estimated 15% travel required domestic and Internationally.

DXREQ

Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, sex, sexual orientation, gender identity or expression, religion, national origin or ancestry, age, disability, marital status, pregnancy, protected veteran status, protected genetic information, political affiliation, or any other characteristics protected by local laws, regulations, or ordinances.

Friday, August 5, 2016

How to Run the Azure IoT Field Gateway on a Raspberry Pi 3

The Azure IoT Field Gateway SDK is a set of libraries that allow you to build a device that acts as a proxy between an individual IoT device and Azure IoT Hub.

Individual IoT devices will connect to the Gateway via some transport layer (BLE, NFC, etc) and the Gateway will forward the device data to IoT Hub. The Gateway will usually aggregate many messages into a single message or convert it to a data protocol (MQTT, AMQP, etc) that IoT Hub understands.

Here’s how to get it the Field Gateway running on a Raspberry Pi 3.

Download Raspbian

I’m using Raspbian Jessie full desktop image.

Get a MicroSD Card and MicroSD USB Card Reader

I have a Kingston 32GB Class 10 MicroSD card and a Transcend USB 3.0 Card Reader

Install Win32DiskImager

This will be used to write Raspbian to the MicroSD card

https://sourceforge.net/projects/win32diskimager/

Copy Raspbian to MicroSD card

Open Win32DiskImager. Find the yyyy-mm-dd-raspbian-jessie.img file. Select your USB drive. Click Write. This took about 5 minutes on my machine.

image

Get Raspberry Pi Ready

Plug in HDMI monitor, keyboard, mouse and Ethernet cable (you can also use Wifi instead)

Configure Remote Access to Pi

TightVNC allows you to remote desktop into the Raspberry Pi from your Windows desktop.  This step is optional. You could also just use the monitor, mouse and keyboard that is connected to the Pi, but that gets old quick.  There are other options here, but I’ve found TightVNC to be the most reliable when you just need to connect to the Pi from the same wireless network.  If the Pi is on a difference network, then use Weaved.

All your remote options are located here: https://www.raspberrypi.org/documentation/remote-access/. Feel free to use one that best suits your needs.  SSH with Putty is a good option if you don’t need to access the desktop.


Go to Azure IoT Field Gateway SDK GitHub Page

If you are using TightVNC, on the Pi, open the web browser and go to http://bit.ly/azuregatewaypi – that will redirect you to this page on your Pi, so you can easily copy and paste the following commands.


If you are using SSH, then just execute the commands below in your SSH window.


Install Packages

sudo apt-get update

sudo apt-get install curl build-essential libcurl4-openssl-dev git cmake libssl-dev uuid-dev valgrind libglib2.0-dev

Clone the Azure IoT Field Gateway Repo

You can clone into any directly you want. I usually put everything in a /code folder.

git clone --recursive https://github.com/Azure/azure-iot-gateway-sdk.git

Checkout the Develop Branch

This is the branch that contains a fix that allows the Gateway to be built on the Pi

git checkout develop


Init Submodules

I like to execute this command after I checkout a branch to be sure I have the latest submodule bits that correspond to my current branch.

git submodule update --init --recursive


Run Build.sh

Change to the /tools directory and excute ./build.sh

cd tools
./build.sh


This will take a while. Come back in 30 mins or so.

Test Failures

You will likely see these test failures, which are known issues reported here on GitHub.  The e2e tests fail because we didn’t setup the IoT Hub connection.  That’ll be the topic of a different blog post.

The following tests FAILED:
          27 - constbuffer_unittests (Failed)
          34 - httpapiex_unittests (Failed)
          41 - sastoken_unittests (Failed)
          63 - mqtt_client_unittests (Failed)
          77 - iothubclient_http_e2etests (Failed)
          79 - iothubclient_mqtt_e2etests (Failed)
          81 - iothubclient_amqp_e2etests (Failed)
         109 - gw_e2etests (Failed)
Errors while running CTest

Copy JSON Settings File to Build Folder

From the root of the repo run this command to copy the sample JSON settings file to the build output folder.

cp ./samples/hello_world/src/hello_world_lin.json ./build/samples/hello_world/hello_world_lin.json

Run Hello_World_Sample

Change to the /build folder

Run the following command to start the sample.

./samples/hello_world/hello_world_sample ./samples/hello_world/hello_world_lin.json


You should now see this output.

image


This sample writes an entry to the /build/log.txt file. If you open that file you will see the entries. From the /build folder just enter “vi log.txt” to view the file.

image


You now have the Azure IoT Gateway Running on a Raspberry Pi 3!

Error When Stopped

You might see this error when you stop the gateway – it appears that you can ignore it because it is still writing data to the log file.  I have reported the issue on GitHub.

Error: Time:Fri Aug  5 19:41:42 2016 File:/home/pi/code/azure-iot-gateway-sdk/deps/azure-c-shared-utility/src/consolelogger.c Func:consolelogger_log Line:31 byte array is not a gateway message serialization


References


Jon

Solution to: Microsoft Lync 2013 not found. Go here to download and install: http://go.microsoft.com/fwlink/?LinkID=248583


If you get the following error when trying to install the Lync 2013 SDK….


Microsoft Lync 2013 not found. Go here to download and install: http://go.microsoft.com/fwlink/?LinkID=2485832016-08-05 (2)

Do not go to that fwlink.


You need to unzip the lyncsdk.exe and manually install the MSI. I used 7-zip, but you can use whatever zip tool you prefer.


image

I’m on a x64 machine so I used that one and it installed.


Jon






Tuesday, August 2, 2016

Linux on Windows for Everyone! - How to Enable the Windows Subsystem for Linux (Beta) on Windows 10 Anniversary Update


The most anticipated Windows 10 Anniversary Update developer feature is now available for everyone…not just Windows Insiders.

Step 0: Install Windows 10 Anniversary Update via Windows Update

Go to Windows Update, get updates. It should automatically install.

Step 1: Enabled Developer Mode

Hit the Windows key and type “developer”. Click on “For developer settings”

image

Select the “Developer mode” radio button.

image


Step 2: Turn on Windows Subsystem for Linux (Beta)

Hit the Windows key, type “Windows features” and select “Turn Windows features on or off”

image

Select “Windows Subsystem for Linux (Beta)” click OK.  Let it install and restart.

image

Step 3: Install Ubuntu on Windows

Hit the Windows key, type “bash” and select “bash”

image

Type “y” and enter.

image

Wait for Ubuntu to be installed.

image

Run Linux commands on Windows!


image


Your Linux files will be located here: C:\Users\{username}\AppData\Local\lxss\


Jon