<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Pooja Mistry</title>
    <description>The latest articles on DEV Community by Pooja Mistry (@poojamakes).</description>
    <link>https://dev.to/poojamakes</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F186204%2Fe70705fd-de05-4aac-839b-6ded21dbdb29.jpg</url>
      <title>DEV Community: Pooja Mistry</title>
      <link>https://dev.to/poojamakes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/poojamakes"/>
    <language>en</language>
    <item>
      <title>Visualizing a Globally Distributed Team Using Multiple APIs</title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Thu, 26 May 2022 16:48:01 +0000</pubDate>
      <link>https://dev.to/postman/visualizing-a-globally-distributed-team-using-multiple-apis-d38</link>
      <guid>https://dev.to/postman/visualizing-a-globally-distributed-team-using-multiple-apis-d38</guid>
      <description>&lt;p&gt;If the 2020 pandemic has taught us anything, remote-first work culture is the way of the future. As a new developer advocate at Postman, I’m excited to be working remotely for a globally distributed developer relations team supporting Postman’s community of more than &lt;a href="https://dev.to/jansche/celebrating-20-million-postman-users-167d-temp-slug-1527784"&gt;20 million users worldwide&lt;/a&gt;. With that said, I was inspired to build my first collection to highlight Postman’s global presence.&lt;/p&gt;

&lt;p&gt;On &lt;a href="https://www.postman.com/postman/workspace/30-days-of-postman-for-developers/documentation/1559645-0b4d01c7-25b5-4296-91e2-bad1baaf3c6d" rel="noopener noreferrer"&gt;Day 17&lt;/a&gt; of &lt;a href="https://www.postman.com/postman/workspace/30-days-of-postman-for-developers/overview" rel="noopener noreferrer"&gt;30 Days of Postman,&lt;/a&gt; I became intrigued with the &lt;a href="https://learning.postman.com/docs/sending-requests/visualizer/" rel="noopener noreferrer"&gt;Postman Visualizer&lt;/a&gt; feature. I knew it was going to be the heart of my project, so I set out to find a way to visualize my fantastic new Postman team members spanning the globe. In this blog post, I’ll show how I got started.&lt;/p&gt;

&lt;h2&gt;
  
  
  Working with an image in mind
&lt;/h2&gt;

&lt;p&gt;There are Postmanauts living in all corners of the world, with my team comprising seven members that work across various time zones. A map was going to be the best kind of visualization to showcase our global diversity. After exploring the &lt;a href="https://www.postman.com/explore" rel="noopener noreferrer"&gt;Postman API Network&lt;/a&gt;, I stumbled upon an &lt;a href="https://www.postman.com/marketplacetasik/workspace/marketplace-tasikmalaya-s-public-workspace/documentation/13110122-934b186e-0f2b-4c11-a435-6bc05894dbca" rel="noopener noreferrer"&gt;Earthquake Map Visualization&lt;/a&gt;, which used &lt;a href="https://d3js.org/" rel="noopener noreferrer"&gt;D3.js&lt;/a&gt; libraries to map data against longitude and latitude coordinates.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage3-1000x635.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage3-1000x635.png" alt="Map of earthquakes around the world"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Map of earthquakes around the world&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I realized that I could visualize just about anything on this map as long as I had access to some longitude and latitude data.&lt;/p&gt;

&lt;p&gt;Time to put this theory to the test. I built a sample POST request called &lt;code&gt;Random Users&lt;/code&gt; using the &lt;a href="https://www.postman.com/postman/workspace/published-postman-templates/documentation/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65?ctx=documentation" rel="noopener noreferrer"&gt;Postman Echo API&lt;/a&gt;. The idea behind this request was to echo back some sample dummy data for ten users with random names, longitudes, and latitudes using Postman’s &lt;a href="https://www.npmjs.com/package/@faker-js/faker" rel="noopener noreferrer"&gt;faker library&lt;/a&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let users = [];

for (var i=0; i&amp;lt;10; i++){
    let tempUsers = {
        name: pm.variables.replaceIn("{{$randomFullName}}"),
        latitude: pm.variables.replaceIn("{{$randomLatitude}}"),
        longitude: pm.variables.replaceIn("{{$randomLongitude}}")

    }
    users.push(tempUsers);
}
pm.collectionVariables.set('req_body', JSON.stringify(users));

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;In this pre-request script, I used &lt;a href="https://learning.postman.com/docs/writing-scripts/script-references/variables-list/" rel="noopener noreferrer"&gt;dynamic variables&lt;/a&gt; to create objects for ten users with random names, latitudes, and longitudes. These objects are then pushed into an array and set into the request body using a collection variable and &lt;a href="https://dev.to/postman/when-and-how-to-use-json-serialization-in-postman-4bfi"&gt;JSON Serialization&lt;/a&gt;. Once this request is sent, I can get random users:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage4-1000x673.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage4-1000x673.png" alt="Response that includes random users from Postman Echo Post Request"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Response that includes random users from Postman Echo Post Request&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now it’s time for the visualization. In the &lt;strong&gt;Test&lt;/strong&gt; tab, I used the template from the &lt;a href="https://www.postman.com/marketplacetasik/workspace/marketplace-tasikmalaya-s-public-workspace/request/13110122-dc7f1ab3-155c-48a3-8710-0201ac83e063" rel="noopener noreferrer"&gt;Earthquake example&lt;/a&gt; and modified a couple of interesting points:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var response = pm.response.json().data;
let parsedData = [];

//data parsing
for (let users of response){
    let tempEntry = {};
    tempEntry.name = users.name;
    tempEntry.lat = users.latitude;
    tempEntry.long = users.longitude;
    tempEntry.circleSize = 6;
    tempEntry.color = "#F09D51";
    parsedData.push(tempEntry);
}
// visualize 
pm.visualizer.set(template, {
    data: parsedData,
    title: "Map of Random Users"
} ); 

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The Echo API’s response data is being parsed for each of the users, name, latitude, longitude, and circle size and color for each data point. The &lt;code&gt;pm.visualizer.set()&lt;/code&gt; method is then used to visualize the parsed data, and the map’s title is returned from echo API. Here is what we get:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage6-1000x561.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage6-1000x561.png" alt="Visualization of Random Users"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Visualization of Random Users&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Voilà&lt;/em&gt;, the theory worked! This proved that with some longitude and latitude coordinates, I could use this visualizer to map random users. This was going to be my template to visualize, but now it was time to work with some real user data.&lt;/p&gt;
&lt;h2&gt;
  
  
  Choosing the APIs
&lt;/h2&gt;

&lt;p&gt;Getting data for real users can be tricky. I needed to find longitude and latitude data for my entire team, so I thought to use their location data from their Twitter profiles as a starting point.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://developer.twitter.com/en/docs" rel="noopener noreferrer"&gt;Twitter API&lt;/a&gt; is a really powerful API. To get a user’s data from a username, I specifically used the &lt;a href="https://www.postman.com/twitter/workspace/twitter-s-public-workspace/request/9956214-288337e6-91e5-4297-bde2-cae96a549732" rel="noopener noreferrer"&gt;Twitter API user by username&lt;/a&gt; endpoint to retrieve location data for an individual username and the &lt;a href="https://www.postman.com/twitter/workspace/twitter-s-public-workspace/request/9956214-f116b1dc-0f6a-4b0b-8433-8b344654e67e" rel="noopener noreferrer"&gt;Twitter API User by Usernames&lt;/a&gt; to retrieve location data from multiple usernames. In Postman, the query params for user.fields  is used to get all sorts of data from Twitter, such as:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Created_at,description,entities,id,location,name,pinned_tweet_id,profile_image_url,protected,url,username,verified,withheld

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This request is forked from the &lt;a href="https://www.postman.com/twitter/workspace/twitter-s-public-workspace/collection/9956214-784efcda-ed4c-4491-a4c0-a26470a67400?ctx=documentation" rel="noopener noreferrer"&gt;Twitter API v2 Postman Collection&lt;/a&gt;, which allows anyone to access the wide plethora of Twitter endpoints with the right authorization from &lt;a href="https://developer.twitter.com/en/portal/dashboard" rel="noopener noreferrer"&gt;Twitter’s Developer Dashboard&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;In my case, I used my Twitter handle, &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt;, to get my location data, which is Washington, D.C.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage7-1000x502.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage7-1000x502.png" alt="Twitter API V2 User by Username request"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Twitter API V2 User by Username request&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Once I could get a high-level location for each of my team members using their profiles, I needed a geocoding API that could give me their longitude and latitudes based on their location.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://positionstack.com/" rel="noopener noreferrer"&gt;PositionStack API&lt;/a&gt;  was a perfect fit since it provided an accurate forward and reverse geocoding covering more than 2 billion places and addresses worldwide. To use this API, you will need to obtain an API key from PositionStack by clicking on &lt;a href="https://desktop.postman.com/?desktopVersion=9.16.0&amp;amp;userId=924366&amp;amp;teamId=1341338" rel="noopener noreferrer"&gt;Get Free API Key&lt;/a&gt; and selecting the free option for personal use.&lt;/p&gt;

&lt;p&gt;In this scenario, I used the &lt;a href="https://positionstack.com/documentation" rel="noopener noreferrer"&gt;Forward Geocoding&lt;/a&gt; endpoint to make a forward geocoding request, using the API’s &lt;code&gt;forward&lt;/code&gt; endpoint and specifying the &lt;code&gt;query&lt;/code&gt; parameter with the location from Twitter.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage9-1000x153.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage9-1000x153.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;API results:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage1-1000x513.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage1-1000x513.png" alt="Example of PositonStack Forward Geocoding endpoint"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Example of PositonStack Forward Geocoding endpoint&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Now that I had the access to location using the Twitter API and was able to  convert that location into longitude and latitude data using PositionStack API, I was well on my way to creating my map visualization.&lt;/p&gt;

&lt;p&gt;I decided to get a little creative and also capture the weather data for each team member by using the &lt;a href="https://home.openweathermap.org/users/sign_up" rel="noopener noreferrer"&gt;Open Weather API&lt;/a&gt; using the &lt;a href="https://openweathermap.org/current" rel="noopener noreferrer"&gt;Current Weather Data&lt;/a&gt; endpoint, which allows you to get current weather data for any location on Earth, including over 200,000 cities, by using geographical coordinates (lat, lon).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage8-1000x209.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage8-1000x209.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At this point I have all the pieces of the puzzle:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User’s Location data from &lt;a href="https://www.postman.com/twitter/workspace/twitter-s-public-workspace/folder/9956214-7358bba6-04d0-4edf-adda-309a900e0569?ctx=documentation" rel="noopener noreferrer"&gt;Twitter User Look Up APIs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Longitude and latitude data from &lt;a href="https://positionstack.com/documentation" rel="noopener noreferrer"&gt;PositionStack API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Weather data from &lt;a href="https://openweathermap.org/current" rel="noopener noreferrer"&gt;Open Weather API&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Map visualization with &lt;a href="https://www.postman.com/postman/workspace/published-postman-templates/documentation/631643-f695cab7-6878-eb55-7943-ad88e1ccfd65?ctx=documentation" rel="noopener noreferrer"&gt;Postman Echo&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now it’s time to build out  a single workflow (or maybe many) to put all of these pieces together.&lt;/p&gt;
&lt;h2&gt;
  
  
  Building workflows
&lt;/h2&gt;

&lt;p&gt;One thing I learned while working on this project was that there are so many different ways to build request workflows with Postman. In my case, I found three specific ways that I will be diving deeper into in my upcoming blog post. However, the common thread behind these workflows is the ability to create, set, and parse through data objects across each request using &lt;a href="https://dev.to/postman/when-and-how-to-use-json-serialization-in-postman-4bfi"&gt;serialization&lt;/a&gt;. My colleague &lt;a href="https://blog.postman.com/author/ian-douglas/" rel="noopener noreferrer"&gt;Ian Douglas&lt;/a&gt; wrote a wonderful &lt;a href="https://dev.to/postman/when-and-how-to-use-json-serialization-in-postman-4bfi"&gt;blog post&lt;/a&gt; on this topic which talks about the idea of “serializing” data to store and convert complex data types when writing and reading from memory.&lt;/p&gt;

&lt;p&gt;For this case, I am storing this data into object environment variables. &lt;a href="https://learning.postman.com/docs/sending-requests/variables/" rel="noopener noreferrer"&gt;Variables&lt;/a&gt; in general are necessary when working with multiple APIs and requests. In this scenario, I used an environment variable to set all of the Twitter usernames that I will be using in the Twitter API to get the location data and name for each user. I was then able to create an object with that data using &lt;code&gt;pm.environment.set()&lt;/code&gt; and set that serialized data into a string, using  &lt;code&gt;JSON.stringify()&lt;/code&gt;, into another environment variable to be used in a query parameter for the PositionStack API to get each user’s longitude and latitude.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let response = pm.response.json();
// building users object 
let obj= { 
     name : response.data.name,
     location:response.data.location,
     latitude: null,
     longitude: null
}
pm.environment.set("user-object", JSON.stringify(obj));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Initially, this data is set as null, but as the data passes through another API and is deserialized and parsed using the &lt;code&gt;JSON.parse()&lt;/code&gt;, more and more data can be added to each request.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;var dataOut = pm.response.json().data[0];
let lat = dataOut.latitude;
let long = dataOut.longitude;

//add long and lat from object
var userObj = JSON.parse(pm.environment.get("user-object"));
userObj.latitude = lat
userObj.longitude = long

// set lat and long to main object
pm.environment.set("user-object", JSON.stringify(userObj));
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We are getting the longitude and latitude data from the API’s response. Then the initial environment variable is parsed and the data is added to the object and finally set again to using &lt;code&gt;pm.environment.set()&lt;/code&gt; to be used in another request.&lt;/p&gt;

&lt;p&gt;Using these methods as a model for each scenario gives us the overall workflow:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Get user’s location from Twitter API.&lt;/li&gt;
&lt;li&gt;Convert Location into longitude and latitude.&lt;/li&gt;
&lt;li&gt;Use longitude and latitude to get weather data for each user based on their location.&lt;/li&gt;
&lt;li&gt;Visualize all the data in the map.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Here’s a visual overview of everything in this workflow. The final POST request uses the  Postman Echo API which replaces the random data with real data for each user from the Twitter, PositionStack, and Open Weather APIs:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage2-1000x314.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage2-1000x314.png" alt="API workflow"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;API workflow&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Create your own team visualizations
&lt;/h2&gt;

&lt;p&gt;Overall, this collection was created to showcase the magic of Postman’s versatility. Just knowing the basics of working with variables, objects, serialization, and visualizations can take you a long way.&lt;/p&gt;

&lt;p&gt;Keep an eye out for my upcoming blog post about the  three ways to build Postman workflows, in which I’ll use this same example to dive deeper into working with individual Postman requests, &lt;a href="https://learning.postman.com/docs/writing-scripts/script-references/postman-sandbox-api-reference/#sending-requests-from-scripts" rel="noopener noreferrer"&gt;sending requests from scripts&lt;/a&gt;, and &lt;a href="https://learning.postman.com/docs/running-collections/building-workflows/" rel="noopener noreferrer"&gt;building request workflows&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you are interested in playing around with this collection and visualizing your own teammates across the globe, be sure to &lt;a href="https://www.postman.com/postman/workspace/published-postman-templates/documentation/20021534-65df9ce8-b487-4618-8784-3caaf64e10c1" rel="noopener noreferrer"&gt;fork my collection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage5-1000x615.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.postman.com%2Fwp-content%2Fuploads%2F2022%2F05%2Fimage5-1000x615.png" alt="The seven Postman developer relations teammates that are mapped are: @iandouglas736, @poojamakes, @DevRelSean, @arlemi, @jansche, @PetuniaGray, @DevRelKev"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;The seven Postman developer relations teammates that are mapped are: &lt;a href="https://twitter.com/iandouglas736" rel="noopener noreferrer"&gt;@iandouglas736&lt;/a&gt;, &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt;, &lt;a href="https://twitter.com/DevRelSean" rel="noopener noreferrer"&gt;@DevRelSean&lt;/a&gt;, &lt;a href="https://twitter.com/arlemi" rel="noopener noreferrer"&gt;@arlemi&lt;/a&gt;, &lt;a href="https://twitter.com/jansche" rel="noopener noreferrer"&gt;@jansche&lt;/a&gt;, &lt;a href="https://twitter.com/PetuniaGray" rel="noopener noreferrer"&gt;@PetuniaGray&lt;/a&gt;, &lt;a href="https://twitter.com/DevRelKev" rel="noopener noreferrer"&gt;@DevRelKev&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Give us all a follow or or use this collection to find other Twitter users in your network to visualize.&lt;/p&gt;

&lt;p&gt;To get started with this collection:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;a href="https://www.postman.com/postman/workspace/published-postman-templates/documentation/20021534-65df9ce8-b487-4618-8784-3caaf64e10c1" rel="noopener noreferrer"&gt;Fork this collection&lt;/a&gt; into your own workspace.&lt;/li&gt;
&lt;li&gt;Get &lt;a href="https://desktop.postman.com/?desktopVersion=9.16.0&amp;amp;userId=924366&amp;amp;teamId=1341338" rel="noopener noreferrer"&gt;Twitter bearer token&lt;/a&gt; and add &lt;code&gt;bearer_token&lt;/code&gt; to current value in collection variable.&lt;/li&gt;
&lt;li&gt;Get &lt;a href="https://desktop.postman.com/?desktopVersion=9.16.0&amp;amp;userId=924366&amp;amp;teamId=1341338" rel="noopener noreferrer"&gt;PositionStack API key&lt;/a&gt; and add &lt;code&gt;api-access-key&lt;/code&gt; to current value in the collection variable.&lt;/li&gt;
&lt;li&gt;Get &lt;a href="https://desktop.postman.com/?desktopVersion=9.16.0&amp;amp;userId=924366&amp;amp;teamId=1341338" rel="noopener noreferrer"&gt;Open Weather API key&lt;/a&gt; and add &lt;code&gt;weather_api_key&lt;/code&gt; to current value in the collection variable.&lt;/li&gt;
&lt;li&gt;Use collection runner to run through &lt;strong&gt;Individual Postman Requests&lt;/strong&gt; and capture all objects as environment variables for each user.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Check out visualization in &lt;code&gt;Postmanauts - Visualize&lt;/code&gt; request in all folders.&lt;/p&gt;

&lt;p&gt;The post &lt;a href="https://blog.postman.com/visualizing-a-globally-distributed-team-using-multiple-apis/" rel="noopener noreferrer"&gt;Visualizing a Globally Distributed Team Using Multiple APIs&lt;/a&gt; appeared first on &lt;a href="https://blog.postman.com" rel="noopener noreferrer"&gt;Postman Blog&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>api</category>
      <category>tutorial</category>
      <category>javascript</category>
      <category>postman</category>
    </item>
    <item>
      <title>Four Questions to Consider when Starting your API Testing Journey</title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Mon, 10 Jan 2022 03:48:58 +0000</pubDate>
      <link>https://dev.to/postman/four-things-to-consider-when-starting-your-api-testing-journey-3873</link>
      <guid>https://dev.to/postman/four-things-to-consider-when-starting-your-api-testing-journey-3873</guid>
      <description>&lt;p&gt;In today’s API economy, it has become more critical than ever for &lt;a href="https://blog.postman.com/how-do-you-become-api-first-company/"&gt;API-first companies&lt;/a&gt; to spend time strategizing on how to deliver the best products in the marketplace. &lt;/p&gt;

&lt;p&gt;APIs are the connective tissue between applications, servers, and data. Companies now treat them more as a marketable product rather than just a technical interface. With that said, it can be a daunting task for both developers and testers alike to create a plan that ensures the highest quality. But have no fear! I like to think of this process as a journey. With that perspective in mind, here are four questions that would be useful to consider when testing your APIs. &lt;/p&gt;

&lt;h2&gt;
  
  
  Am I using the right tool ?
&lt;/h2&gt;

&lt;p&gt;Before starting any journey, one of the most important aspects to consider is what tools you will need to make your trip a success? Perhaps you will need a car, possibly some compact luggage; however, when it comes to API testing, you will need a tool that allows you to send API requests and view the correct response effectively. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.postman.com/"&gt;Postman&lt;/a&gt; is the ideal tool for the job. It is a collaborative API development platform that simplifies creating, using, and testing APIs with an intuitive user interface. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_vMRAaWo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.postman.com/assets/response-screenshot.svg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_vMRAaWo--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://www.postman.com/assets/response-screenshot.svg" alt="Send Requests with Postman" width="880" height="557"&gt;&lt;/a&gt;&lt;a href="https://developer.ibm.com/callforcode/"&gt;Send Requests with Postman&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A few of the many advantages of the tool include : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ease of Use&lt;/strong&gt; - Postman users can begin their API journey quickly and effectively using Postman’s comprehensive platform and broad support for all possible HTTP methods and queries such as REST, SOAP, and GraphQL.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Robust testing capabilities -&lt;/strong&gt; Postman supports multiple testing environments, test checkpoints, automated scripting, and built-in support for using variables for security. It also has support for keeping track of API responses which is critical for testers when it comes down to debugging, comparing versions, and managing inconsistencies. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Management and Collaboration&lt;/strong&gt; - Postman Workspace allows users to manage versions, authentication protocols, cookies, and certificates. It is also dedicated to the real-time collaboration between teams with built-in version control, ensuring developers and testers can stay on the same page when testing version releases. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you use the right tool, you can consider the following three questions. &lt;/p&gt;

&lt;h2&gt;
  
  
  How do I start and what is my road map ?
&lt;/h2&gt;

&lt;p&gt;When a new API is ready to test, the first test that you should consider is a smoke test. A smoke test is a small quick test that ensures that the basic functionality of the API is working. &lt;/p&gt;

&lt;p&gt;This test includes :  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Checking to see if API responds to first call &lt;/li&gt;
&lt;li&gt;Testing API with small amounts of data to see if it responds with a payload in the correct schema &lt;/li&gt;
&lt;li&gt;Testing API with proper authentication and seeing if it passes/fails to the valid authorization&lt;/li&gt;
&lt;li&gt;Testing API with any other components that it’s supposed to interact with. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A smoke test is used to smoke out any apparent errors quickly spotted and resolved. &lt;/p&gt;

&lt;p&gt;Once your smoke tests pass, it is time for you to create the correct road map. This road map can be defined by ensuring that you can hit all possible functionalities successfully. Usually, you can map out this strategy by considering HTTP methods and CRUD operations. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--yv4kdpDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9797E3C2FAEC1A1DD62E8DE45EB8E0F4D4587C339CA9E3A2A539B22FF1E1F8BF_1641775831899_Screen%2BShot%2B2022-01-09%2Bat%2B7.49.04%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--yv4kdpDZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9797E3C2FAEC1A1DD62E8DE45EB8E0F4D4587C339CA9E3A2A539B22FF1E1F8BF_1641775831899_Screen%2BShot%2B2022-01-09%2Bat%2B7.49.04%2BPM.png" alt="" width="395" height="177"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Some of the tests that can be included in your road map : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Functionality Tests -&lt;/strong&gt; test of specific functions within the codebase&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Validation Tests -&lt;/strong&gt; tests to verify aspects of API its behavior, and efficiency&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sanity Tests -&lt;/strong&gt; tests to verify if response makes correct sense&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integration Tests -&lt;/strong&gt; tests to verify API can integrate with other components &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Load Tests -&lt;/strong&gt; tests to validate the performance under specific load requirements&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Runtime Tests -&lt;/strong&gt; tests related to monitoring, execution errors, resource leaks, or error detection&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security Tests -&lt;/strong&gt; tests to verify authorization and validation of encryption methodologies to enable security from external threats&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you have strategized which types of tests you will include in your road map, you can also consider making testing easier through automation. Automation can allow you to do &lt;strong&gt;regression testing&lt;/strong&gt;, allowing you to run your entire test suite after a patch, upgrade, or bug fix. Postman is also an excellent tool for all things API automation; check out this blog: &lt;a href="https://blog.postman.com/api-testing-tips-from-a-postman-professional/"&gt;API Testing Tips from a Postman Professional&lt;/a&gt; to learn more. &lt;/p&gt;

&lt;h2&gt;
  
  
  What is the Happy Path and the Not -So-Happy Path ?
&lt;/h2&gt;

&lt;p&gt;We may often think that if an API does what it is supposed to do, then it works perfectly. This is only the Happy Path piece of the puzzle when it comes to testing. The other piece is negative testing which is equally essential for ensuring quality. &lt;/p&gt;

&lt;p&gt;By performing negative testing, you can see whether or not their API can deal with receiving incorrect or invalid data gracefully, such as with an error message instead of a hard crash or a complete stop. &lt;/p&gt;

&lt;p&gt;This blog: &lt;a href="https://medium.com/better-practices/negative-testing-for-more-resilient-apis-af904a74d32b"&gt;Negative testing for more resilient APIs&lt;/a&gt; provides notable examples for negative testing, which I recommend you check out! Ideally, you would want to test for all API success and failure responses. Check out this &lt;a href="https://restfulapi.net/http-status-codes/"&gt;comprehensive list&lt;/a&gt; to learn more. &lt;/p&gt;

&lt;p&gt;As you go about your testing journey, you may wonder how you can validate your positive and negative responses. Postman has functionality for creating test scripts, which genuinely helps testers level up their validation game. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KZ2iBmYN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_E7C73A6773E64FB6C65D7B23B899E77F5990E8DF5084B6F85586A3C3A6588635_1641786424308_Screen%2BShot%2B2022-01-09%2Bat%2B10.46.46%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KZ2iBmYN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_E7C73A6773E64FB6C65D7B23B899E77F5990E8DF5084B6F85586A3C3A6588635_1641786424308_Screen%2BShot%2B2022-01-09%2Bat%2B10.46.46%2BPM.png" alt="" width="880" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Do these tests closely mirror the real world ?
&lt;/h2&gt;

&lt;p&gt;The final factor to consider is testing in environments that simulate exact conditions the API will encounter in production or when it is released. Doing so will ensure that the test results accurately reflect the API’s ability to correctly function and perform when subjected to its intended working environment. &lt;/p&gt;

&lt;p&gt;However, there may come a time when specific components or other APIs may be missing or unavailable. Simulating a real-world environment may rely on &lt;a href="https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/setting-up-mock/"&gt;mocking components&lt;/a&gt; in this scenario. Mocking components is helpful because you can replace missing parts and customize features to deliver the ideal responses needed to complete the testing procedure.&lt;/p&gt;

&lt;p&gt;Learn more about &lt;a href="https://blog.postman.com/team-collaboration-with-postman-mock-servers/"&gt;mock servers here&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Although API testing can be a daunting process, I hope that after reading this blog, these four questions help you get a head start on your API testing journey. If you are interested in learning more about Postman, check out the &lt;a href="https://learning.postman.com/docs/getting-started/introduction/"&gt;learning center&lt;/a&gt;! In the meantime, know that every big journey begins with small steps - API testing included. &lt;/p&gt;

</description>
      <category>testing</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Reflecting on Challenges, Changes and Growth in 2020</title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Thu, 14 Jan 2021 21:31:13 +0000</pubDate>
      <link>https://dev.to/poojamakes/reflecting-on-challenges-changes-and-growth-in-2020-5423</link>
      <guid>https://dev.to/poojamakes/reflecting-on-challenges-changes-and-growth-in-2020-5423</guid>
      <description>&lt;p&gt;2020 has been a year of immense challenges, changes, and growth. One of the biggest challenges and changes that we overcame as a developer advocacy team was pivoting from in-person events to 100 percent digital! &lt;/p&gt;

&lt;p&gt;Although making this pivot felt apprehensive at first, we were surprised by the many different growth opportunities. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Our audience and our reach was now worldwide, whereas before, our geo-locations bounded us &lt;/li&gt;
&lt;li&gt;There were countless opportunities for collaboration with different teams and subject matter experts&lt;/li&gt;
&lt;li&gt;We were able to create more content that can turn into a series &lt;/li&gt;
&lt;li&gt;Most importantly, our content is documented and recorded for our audience to reference&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of our advocacy last year happened through our &lt;a href="https://www.crowdcast.io/ibmdeveloper" rel="noopener noreferrer"&gt;Crowdcast channel&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610575592645_Screen%2BShot%2B2021-01-13%2Bat%2B5.06.26%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610575592645_Screen%2BShot%2B2021-01-13%2Bat%2B5.06.26%2BPM.png" alt="Follow Us!"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Anyone who follows us has access to hundreds of webinars and series on topics ranging from AI/ML, Data Science, Cloud Computing, Serverless, Web development, Java, Quantum and many more hosted and taught by IBM developer advocates from around the world. &lt;/p&gt;

&lt;p&gt;As an IBM Developer advocate, content producer, and educator, here are some of …. &lt;/p&gt;

&lt;h1&gt;
  
  
  My 2020 Digital Event Highlights :
&lt;/h1&gt;

&lt;h2&gt;
  
  
  Women in Data Science Digital Conference
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610591421521_Screen%2BShot%2B2021-01-13%2Bat%2B9.05.09%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610591421521_Screen%2BShot%2B2021-01-13%2Bat%2B9.05.09%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In March, I hosted the first-ever digital Women in Data Science Conference with six incredible speakers. &lt;br&gt;
Topics included : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What do I do with this? : Making Data Science Actionable &lt;/li&gt;
&lt;li&gt;AI technology + answering human-ai interaction research &lt;/li&gt;
&lt;li&gt;Changing the Face of Medicine: How Data is Improving Medical Education&lt;/li&gt;
&lt;li&gt;Visualizing shared musical experiences&lt;/li&gt;
&lt;li&gt;Data and Risk Management Impacts &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.crowdcast.io/e/women-in-data-science" rel="noopener noreferrer"&gt;Watch Replay Here&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Call for Code - Covid 19 Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610591371980_Screen%2BShot%2B2021-01-13%2Bat%2B9.29.18%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610591371980_Screen%2BShot%2B2021-01-13%2Bat%2B9.29.18%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In April, we launched the Call for Code Covid-19 Challenge! This challenge was designed to help developers worldwide fight a global pandemic with the use of technology. Watch the &lt;a href="https://www.crowdcast.io/e/how-to-quickly-build" rel="noopener noreferrer"&gt;replay&lt;/a&gt; or read this &lt;a href="https://dev.to/ibmdeveloper/building-solutions-that-fight-back-2coj"&gt;blog&lt;/a&gt; to learn more and fork our &lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;starter kit&lt;/a&gt; to start with the code! &lt;/p&gt;

&lt;h2&gt;
  
  
  AI/ML Master Class Series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610658668397_Screen%2BShot%2B2021-01-14%2Bat%2B4.10.51%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610658668397_Screen%2BShot%2B2021-01-14%2Bat%2B4.10.51%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In May, I hosted a series about building, training, testing, and deploying AI/ML models. Check out this &lt;a href="https://dev.to/poojamakes/building-training-testing-and-deploying-ml-models-in-may-1dn1"&gt;blog&lt;/a&gt; to learn more about this series and find the links to replays and resources. &lt;/p&gt;

&lt;p&gt;My colleague Jenna also re-vamped this series in December and introduced further insights! Check out these replays here : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.crowdcast.io/e/watson-superclass-one" rel="noopener noreferrer"&gt;IBM Watson Superclass: Build &amp;amp; Deploy Models w Visual Recognition &amp;amp; Natural Language Classifier&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crowdcast.io/e/watson-superclass-two" rel="noopener noreferrer"&gt;IBM Watson Superclass: Build &amp;amp; Deploy Custom Models w/ AutoAI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crowdcast.io/e/watson-superclass-three" rel="noopener noreferrer"&gt;IBM Watson Super-class: Build &amp;amp; Deploy Models w/ Jupyter Notebooks&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Node-RED Master Class Series
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610658632235_Screen%2BShot%2B2021-01-14%2Bat%2B4.09.55%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610658632235_Screen%2BShot%2B2021-01-14%2Bat%2B4.09.55%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In June, we launched the Node-Red series, which focused on building applications using low code programming methods. Check out this &lt;a href="https://dev.to/poojamakes/node-red-from-the-basics-to-beyond-in-june-4cn3"&gt;blog&lt;/a&gt; &lt;a href="https://dev.to/poojamakes/building-training-testing-and-deploying-ml-models-in-may-1dn1"&gt;&lt;/a&gt;to learn more about this series and find the links to replays and resources. &lt;/p&gt;

&lt;h2&gt;
  
  
  Exploring Quantum Computing with Qiskit
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610639441375_Screen%2BShot%2B2021-01-14%2Bat%2B10.50.21%2BAM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610639441375_Screen%2BShot%2B2021-01-14%2Bat%2B10.50.21%2BAM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In July, I was able to host Doug McClure, a Research Staff Member and Manager of Quantum System Deployment at IBM Research in Yorktown Heights, to introduce basic ideas in quantum computing, survey state of the art in building real quantum computers, and provide a hands-on introduction to the Qiskit programming language for building and running quantum algorithms.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.crowdcast.io/e/exploring-quantum" rel="noopener noreferrer"&gt;Watch Replay Here&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Building Applications with Watson - A Developers Guide to the Watson SDK
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610639915262_Screen%2BShot%2B2021-01-14%2Bat%2B10.58.03%2BAM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610639915262_Screen%2BShot%2B2021-01-14%2Bat%2B10.58.03%2BAM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In August, I created a workshop on getting started with the Watson SDK. There are over ten different unique services on the IBM Cloud that are free for developers to use with the lite account. Services such as assistant, speech to text, text to speech, discovery, visual recognition, tone analyzer, natural language processing, and language translator, to name a few, provide unique insights for developers to use in their applications. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.crowdcast.io/e/watsonsdk" rel="noopener noreferrer"&gt;Watch this replay to learn more&lt;/a&gt;. &lt;br&gt;
&lt;a href="https://github.com/pmmistry/WatsonSDK_Workshop" rel="noopener noreferrer"&gt;Check out this git repo to get started with the code&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  All thing Open - Embrace Challenge
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610643821078_Screen%2BShot%2B2020-10-19%2Bat%2B4.45.26%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610643821078_Screen%2BShot%2B2020-10-19%2Bat%2B4.45.26%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Throughout the summer, IBM launched the Emb(race) &lt;a href="https://developer.ibm.com/callforcode/racial-justice/" rel="noopener noreferrer"&gt;Call for Code for Racial Justice Challenge&lt;/a&gt; to combat systemic racism. Focusing on Police &amp;amp; Judicial Reform and Accountability, Diverse Representation, and Policy &amp;amp; Legislation Reform, we are formed open source projects to help combat discrimination and promote racial justice. We invited people across the globe to channel their frustrations about systemic racism tangibly and authentically by getting involved with these projects and making an impact in communities. &lt;/p&gt;

&lt;p&gt;Check out our GitHub and submit pull requests and issues work with our opensource project around &lt;strong&gt;Police &amp;amp; Judicial Reform, Diverse Representation, Policy &amp;amp; Legislation Reform:&lt;/strong&gt; &lt;a href="https://github.com/topics/embrace-call-for-code" rel="noopener noreferrer"&gt;https://github.com/topics/embrace-call-for-code&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=aO-bmg1z_98" rel="noopener noreferrer"&gt;Watch our session replay at the All things Open Conference to learn more&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tech Talks with Bee Travels
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610652359374_Screen%2BShot%2B2021-01-14%2Bat%2B2.24.44%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610652359374_Screen%2BShot%2B2021-01-14%2Bat%2B2.24.44%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In October through November, I hosted a 5 part series called Tech Talks with Bee Travels with my colleagues &lt;a href="https://www.linkedin.com/in/max-shapiro-8a594711b/" rel="noopener noreferrer"&gt;Max&lt;/a&gt;, &lt;a href="https://twitter.com/moficodes" rel="noopener noreferrer"&gt;Mofi&lt;/a&gt;, and &lt;a href="https://twitter.com/bourdakos1" rel="noopener noreferrer"&gt;Nick&lt;/a&gt;. Bee Travels is a polyglot demo microservice application that demonstrates key capabilities of Kubernetes, OpenShift, Istio, Knative, and many other cloud-native technologies. This series aims to touch on topics such as &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.crowdcast.io/e/beetravels_part1" rel="noopener noreferrer"&gt;Designing Microservices&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crowdcast.io/e/beetravels_part2" rel="noopener noreferrer"&gt;Deploying Microservices&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crowdcast.io/e/beetravels_part3" rel="noopener noreferrer"&gt;Debugging Microservices&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.crowdcast.io/e/beetravels_part4" rel="noopener noreferrer"&gt;Developing Microservices in Node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.crowdcast.io/e/beetravels_part5" rel="noopener noreferrer"&gt;Building Microservices: Virtual Lab&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://bee-travels.github.io/docs/" rel="noopener noreferrer"&gt;Check out the docs, workshop, and tech talks to this project here.&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Data &amp;amp; AI Conference  - Building Smarter Conversational AI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610655160633_Screen%2BShot%2B2021-01-14%2Bat%2B3.12.31%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610655160633_Screen%2BShot%2B2021-01-14%2Bat%2B3.12.31%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In November, I spoke at the Data and AI Conference about building better conversational AI. This talk was about building conversational AI in chatbots with Watson Assistant and how Natural Language Processing plays a role in having meaningful conversations. I also discussed some tips and tricks into making your Assistant work smarter for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.ibm.com/conferences/digital-developer-conference-data-ai/track-2-hands-on-labs/session-8-lab-smarter-conversation/" rel="noopener noreferrer"&gt;Watch replay here&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  IBM &amp;amp; Infosys Present: Modernize with Containers: Migrate Legacy Java Applications
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610655425149_Screen%2BShot%2B2021-01-14%2Bat%2B3.16.58%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_39F0AD6FA011535DF1C766FA3F0F75C86C9E196734727DED5253692DDB64F180_1610655425149_Screen%2BShot%2B2021-01-14%2Bat%2B3.16.58%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In December, I wrapped up the year with an Infosys partner event where we talked about Application Modernization and had a hands on lab where we modernized a legacy java application with the help of containers. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.crowdcast.io/e/modernize-apps" rel="noopener noreferrer"&gt;Check out this replay to learn more.&lt;/a&gt; &lt;br&gt;
&lt;a href="https://gist.github.com/stevemar/f239b11a74f0f3f793907be656639817" rel="noopener noreferrer"&gt;Check out this GIST for all the resources&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Although 2020 was challenging in so many ways, I am grateful that technology has allowed me to work on so many different ideas and collaborate with so many amazing people world wide! &lt;/p&gt;

&lt;p&gt;I hope you find some of my highlights and resources interesting as you go through your technical journey. I plan to keep creating and sharing content and topics with you throughout 2021! &lt;/p&gt;

&lt;p&gt;Aside from the content I have produced this year, we have hundreds of different webinars on numerous topics; all hosted on our Crowdcast channel made by IBM developer advocates from around the world!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.crowdcast.io/ibmdeveloper" rel="noopener noreferrer"&gt;So be sure to follow our channel to stay up to date and learn more!&lt;/a&gt; &lt;/p&gt;

</description>
      <category>2020</category>
      <category>showdev</category>
      <category>devjournal</category>
      <category>yearinreview</category>
    </item>
    <item>
      <title>Node-RED from the basics to beyond in June </title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Mon, 29 Jun 2020 22:32:21 +0000</pubDate>
      <link>https://dev.to/poojamakes/node-red-from-the-basics-to-beyond-in-june-4cn3</link>
      <guid>https://dev.to/poojamakes/node-red-from-the-basics-to-beyond-in-june-4cn3</guid>
      <description>&lt;p&gt;In the month of June my colleague John Walicki &lt;a href="https://twitter.com/johnwalicki"&gt;(@johnwalicki)&lt;/a&gt; and I decided to do a series on &lt;a href="https://nodered.org/"&gt;Node-RED&lt;/a&gt;. This series showed users how to work with Node-RED on &lt;a href="https://cloud.ibm.com/registration"&gt;IBM Cloud&lt;/a&gt; to create event-driven applications .  In part one of this series John and I go over &lt;a href="https://www.youtube.com/playlist?list=PLyNBB9VCLmo1hyO-4fIZ08gqFcXBkHy-6"&gt;Node-RED essentials&lt;/a&gt; and we build a text analyzer application using Watson APIs . In part two we go over building UI dashboards with Node-RED and finally in part three we take all the concepts from part 1 and 2 to build an interactive end to end application.   &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you missed our series check out these resources and the replay to each event :&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1 : Node-RED Essentials
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--49FUKcOZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593466995014_Screen%2BShot%2B2020-06-29%2Bat%2B5.11.11%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--49FUKcOZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593466995014_Screen%2BShot%2B2020-06-29%2Bat%2B5.11.11%2BPM.png" alt="" width="880" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt; &lt;a href="https://www.crowdcast.io/e/node-red-series"&gt;https://www.crowdcast.io/e/node-red-series&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for event :&lt;/strong&gt; &lt;a href="https://slides.com/poojamistry/node-red-series1"&gt;https://slides.com/poojamistry/node-red-series1&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;a href="https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_1.md"&gt;https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_1.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 2 : Node-RED Dashboard and UI Techniques
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vE7bsSkB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593467911789_Screen%2BShot%2B2020-06-29%2Bat%2B5.51.03%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vE7bsSkB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593467911789_Screen%2BShot%2B2020-06-29%2Bat%2B5.51.03%2BPM.png" alt="" width="880" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt; &lt;a href="https://www.crowdcast.io/e/node-red-series-2"&gt;https://www.crowdcast.io/e/node-red-series-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for event :&lt;/strong&gt; &lt;a href="https://slides.com/poojamistry/node-red-part-2"&gt;https://slides.com/poojamistry/node-red-part-2&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;a href="https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_2.md"&gt;https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_2.md&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 3 : Node-RED End to End
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jVhW3oiD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593468623686_Screen%2BShot%2B2020-06-29%2Bat%2B5.22.52%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jVhW3oiD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593468623686_Screen%2BShot%2B2020-06-29%2Bat%2B5.22.52%2BPM.png" alt="" width="880" height="484"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--F7JDqoKK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593468638269_Screen%2BShot%2B2020-06-29%2Bat%2B5.25.16%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--F7JDqoKK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://paper-attachments.dropbox.com/s_9105DEDC0CFCA37E4DE32D2DCD263988E2A39584CD4EB607C4A5577C83CD5C0C_1593468638269_Screen%2BShot%2B2020-06-29%2Bat%2B5.25.16%2BPM.png" alt="" width="880" height="477"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt; &lt;a href="https://www.crowdcast.io/e/node-red-series-3"&gt;https://www.crowdcast.io/e/node-red-series-3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for event :&lt;/strong&gt; &lt;a href="https://slides.com/poojamistry/node-red-series-part-3"&gt;https://slides.com/poojamistry/node-red-series-part-3&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;a href="https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_3.md"&gt;https://github.com/pmmistry/Node-RED-Series/blob/master/Labs/lab_3.md&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I hope this blog helps you as you begin your Node-RED Journey ! &lt;a href="https://cloud.ibm.com/registration?target=%2Fcatalog"&gt;Register for IBM Cloud&lt;/a&gt; to get started with Node-RED on IBM Cloud! Make sure you check out &lt;a href="https://developer.ibm.com/"&gt;IBM Developer&lt;/a&gt; for more resources, tutorials, blogs, code patterns and content in the Node-RED Space! &lt;/p&gt;

&lt;p&gt;Give me a follow if you like this post, or follow me on Twitter &lt;a href="https://twitter.com/poojamakes"&gt;@poojamakes&lt;/a&gt; to see what other webinar series I will be teaching next!  🙂 &lt;/p&gt;

</description>
      <category>opensource</category>
      <category>node</category>
      <category>javascript</category>
      <category>nodered</category>
    </item>
    <item>
      <title>Building, Training, Testing and Deploying ML Models in May </title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Tue, 02 Jun 2020 23:37:46 +0000</pubDate>
      <link>https://dev.to/poojamakes/building-training-testing-and-deploying-ml-models-in-may-1dn1</link>
      <guid>https://dev.to/poojamakes/building-training-testing-and-deploying-ml-models-in-may-1dn1</guid>
      <description>&lt;p&gt;In the month of May my colleague Jenna Ritten (&lt;a class="mentioned-user" href="https://dev.to/jritten"&gt;@jritten&lt;/a&gt;) and I decided to do a series on building,  training, testing and deploying AI/ML models! This series showed users how to use Watson Studio which is an interactive, collaborative, cloud-based environment where data scientists can use multiple tools to activate their insights. &lt;/p&gt;

&lt;p&gt;The goal of this series was to show the various tools that can be used within Watson Studio such as Visual  Recognition, Natural Language Classifier , Auto AI and  Juypter Notebooks. With this series we wanted to empower new and experienced data scientists with the knowledge and ability to train and deploy models in an effective and collaborative way.  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you missed our series check out these resources and the replay to each event :&lt;/strong&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Part 1 : Building and Deploying Models w/ Visual Recognition and Natural Language Classifier
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591139483491_Screen%2BShot%2B2020-06-02%2Bat%2B7.10.40%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591139483491_Screen%2BShot%2B2020-06-02%2Bat%2B7.10.40%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt;&lt;br&gt;
&lt;a href="https://developer.ibm.com/events/ai-ml-masterclass-part-1-building-and-deploying-models-w-visual-recognition-and-natural-language-classifier/" rel="noopener noreferrer"&gt;https://developer.ibm.com/events/ai-ml-masterclass-part-1-building-and-deploying-models-w-visual-recognition-and-natural-language-classifier/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for event :&lt;/strong&gt; &lt;a href="https://slides.com/poojamistry/custommodels#/" rel="noopener noreferrer"&gt;https://slides.com/poojamistry/custommodels#/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://watson-workshops.gitbook.io/visual-recognition/" rel="noopener noreferrer"&gt;ibm.biz/visrecworkshop&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/IBM/nlc-email-phishing" rel="noopener noreferrer"&gt;ibm.biz/nlcworkshop&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Part 2 : Building and Deploying models with AutoAI
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591139792627_Screen%2BShot%2B2020-06-02%2Bat%2B7.16.01%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591139792627_Screen%2BShot%2B2020-06-02%2Bat%2B7.16.01%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt; &lt;a href="https://developer.ibm.com/events/ai-ml-masterclass-part-2-building-and-deploying-models-with-autoai/" rel="noopener noreferrer"&gt;https://developer.ibm.com/events/ai-ml-masterclass-part-2-building-and-deploying-models-with-autoai/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for the event :&lt;/strong&gt; &lt;a href="http://ibm.biz/wsmasterclassautoai_slides" rel="noopener noreferrer"&gt;http://ibm.biz/wsmasterclassautoai_slides&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;a href="https://github.com/IBM-Developer-Austin/autoai" rel="noopener noreferrer"&gt;https://github.com/IBM-Developer-Austin/autoai&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Part 3 : Building and Deploying models with Jupyter Notebooks
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591140286882_Screen%2BShot%2B2020-06-02%2Bat%2B7.24.35%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_893F271144B755F76E33AD2C2BC3F0B868A76F46D15DEB5DF5D9EB5939442212_1591140286882_Screen%2BShot%2B2020-06-02%2Bat%2B7.24.35%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Check out the full replay of event here :&lt;/strong&gt;  &lt;a href="https://developer.ibm.com/events/ai-ml-masterclass-part-3-building-and-deploying-models-with-jupyter-notebooks/" rel="noopener noreferrer"&gt;https://developer.ibm.com/events/ai-ml-masterclass-part-3-building-and-deploying-models-with-jupyter-notebooks/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Slides for the event :&lt;/strong&gt; &lt;a href="https://slides.com/poojamistry/jupyternotebooks#/" rel="noopener noreferrer"&gt;https://slides.com/poojamistry/jupyternotebooks#/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Workshop :&lt;/strong&gt; &lt;a href="https://github.com/pmmistry/intro-to-jupyter-notebooks" rel="noopener noreferrer"&gt;ibm.biz/jupyterworkshop&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://cloud.ibm.com/registration?target=%2Fcatalog" rel="noopener noreferrer"&gt;Register for IBM Cloud&lt;/a&gt; to get started with Watson Studio! Make sure you check out &lt;a href="https://developer.ibm.com/" rel="noopener noreferrer"&gt;IBM Developer&lt;/a&gt; for more resources, tutorials, blogs, code patterns and content in the AI/ML Space! &lt;/p&gt;

&lt;p&gt;I hope this blog helps you as you begin your AI/ML journey ! Give me a follow if you like this post, or follow me on Twitter &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt; to see what other webinar series I will be teaching next!🙂 &lt;/p&gt;

</description>
      <category>machinelearning</category>
      <category>datascience</category>
      <category>python</category>
      <category>jupyter</category>
    </item>
    <item>
      <title>Build a dashboard without a single line of code</title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Wed, 13 May 2020 17:24:24 +0000</pubDate>
      <link>https://dev.to/poojamakes/build-a-dashboard-without-a-single-line-of-code-59me</link>
      <guid>https://dev.to/poojamakes/build-a-dashboard-without-a-single-line-of-code-59me</guid>
      <description>&lt;p&gt;With the astronomical amounts of data we have passing through the web and IoT devices at any given second, it is critical now more than ever, that we have ways to visualize it. If you google how to do so, you will probably see more than 67 million results, however, from my perspective one of the easiest and intuitive ways to visualize this kind of data is with Node-RED dashboards. &lt;/p&gt;

&lt;p&gt;Node-Red is a browser-based programming tool that allows you to connect code blocks that accomplish tasks. It uses nodes and flows to easily write code that can connect to APIs, hardware, IoT devices, or online services. A node is a predefined code block and flow is a connection of nodes, usually an input, processing, and output node. Node-RED can be run locally on your computer, on a device such as Raspberry Pi, or even in the &lt;a href="https://cloud.ibm.com/catalog?search=node-red" rel="noopener noreferrer"&gt;cloud&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_8D73F82EC658A0AE5F5F2ED3AB851551689181EC766F92C3EEE068EBEB05B97B_1589395551579_What_is_Node-RED.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_8D73F82EC658A0AE5F5F2ED3AB851551689181EC766F92C3EEE068EBEB05B97B_1589395551579_What_is_Node-RED.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In my  &lt;a href="https://dev.to/poojamakes/why-you-should-be-using-node-red-right-now-1n1l"&gt;blog post&lt;/a&gt; I’ve outlined the many different reasons why I think Node-RED is a great tool, however, in this blog post I want to highlight just one. The true beauty of Node-RED lies in its ease of use. Node-RED allows users from any programming background to build something worthwhile. It democratizes programming and the ability to create and manipulate data in more ways than any other program would.  It uses flow-based programming to visualize the data movement instead of having to write a lot of code, therefore being incredibly popular when it comes to prototyping as well as controlling data flow from IoT devices. With that being said, there are also very easy ways to create aesthetically visual and comprehensive user interfaces without writing a single line of HTML, CSS, or JS. This is where the Node-RED dashboards come into play. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_8D73F82EC658A0AE5F5F2ED3AB851551689181EC766F92C3EEE068EBEB05B97B_1589395695946_a52fcffc03814aab7666e0d3a8e79ce27b0912d2.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_8D73F82EC658A0AE5F5F2ED3AB851551689181EC766F92C3EEE068EBEB05B97B_1589395695946_a52fcffc03814aab7666e0d3a8e79ce27b0912d2.jpeg"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Before we dive deep into how we create these dashboards, let's talk a little bit more about why. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A few reasons why it would be beneficial to create a dashboard that displays data from either web applications or IoT devices could be and not limited to:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Processing inbound data coming into your web application or IoT device automatically.  Inbound data may include timestamps, messages, location, weather as well as any other influences that could influence decisions. &lt;/li&gt;
&lt;li&gt;Monitoring as well as controlling limits of interest.&lt;/li&gt;
&lt;li&gt;Receiving alerts on desired information such as failures or performance. &lt;/li&gt;
&lt;li&gt;Sharing and analyzing visually consolidate data with your peers.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A few things to think about when designing these dashboards could be and not limited to:&lt;/strong&gt; &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What type of components should the dashboard display? ( Should there be graphs, sliders, gauges, forms ) . &lt;/li&gt;
&lt;li&gt;Where will the received information go and what will process it? &lt;/li&gt;
&lt;li&gt;What protocols should I employ? ( should I add any alerts ? ) &lt;/li&gt;
&lt;li&gt;Why should I even consider making a dashboard ( refer back to the upper section on the why 🙂 ) &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After considering both the why and the what of creating a dashboard, Node-RED makes it fairly simple to consider how. &lt;/p&gt;

&lt;p&gt;Let's take a look at this example:  &lt;strong&gt;The CPU Dashboard&lt;/strong&gt; &lt;br&gt;
The CPU dashboard monitors and creates alerts for CPU usage. When the CPU usage is greater than 50% it will create an alert monitoring the user which core the alert came from. ( Note this is a simulation ) &lt;/p&gt;

&lt;p&gt;&lt;a href="https://nodered-dashboards.gitbook.io/node-red-dashboards/workshop/cpu-dashboards-example" rel="noopener noreferrer"&gt;&lt;strong&gt;Full workshop available here&lt;/strong&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_A810B2F71596B8A5471A916560B63D1C45AADC2A6CE3DFAF54438CBFB6C838D2_1566868426493_2019-08-26_21-10-53%2B1.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_A810B2F71596B8A5471A916560B63D1C45AADC2A6CE3DFAF54438CBFB6C838D2_1566868426493_2019-08-26_21-10-53%2B1.gif" alt="Full Workshop :  https://nodered-dashboards.gitbook.io/node-red-dashboards/"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example we are displaying the output of a quad core processor and its percentage usage. This is a simulation to show how the data is being recorded in real time and sending alerts to the user. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Here is what the Node-RED flow of this dashboard looks like :&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_A810B2F71596B8A5471A916560B63D1C45AADC2A6CE3DFAF54438CBFB6C838D2_1566868741309_Screen%2BShot%2B2019-08-26%2Bat%2B9.18.42%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_A810B2F71596B8A5471A916560B63D1C45AADC2A6CE3DFAF54438CBFB6C838D2_1566868741309_Screen%2BShot%2B2019-08-26%2Bat%2B9.18.42%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This flow starts off with a dark blue input node that passes on timestamps as the input property. This node is then connected to a light blue UI switch node which can be toggled on and off. When on the switch node can pass on time stamp data, and when off no time stamp data is passed on which results in nothing. Assuming that the switch is on, or in other words if switch is true , we need to connect the light blue UI switch node to the yellow switch funtion node to then  grab the simulated data that is stored in the CPU usage node. &lt;/p&gt;

&lt;p&gt;If switch is on then get data from CPU usage node (dark blue with chip like image). This node is gathering all the simulation data and sending separate messages for each core.  When you look at the dashboard you see a line chart under the CPU utilization section which graphs the collection of the CPU data with each line representing a separate core across a time stamp of when the switch is turned on. &lt;/p&gt;

&lt;p&gt;This is done at the flow level by connecting the UI node for chart (teal node with chart image ) and setting its properties as line graph with the CPU usage node. The green node called msg.payload takes the output of the CPU usage node and prints it in the node-RED debug panel which acts like the console.log. &lt;/p&gt;

&lt;p&gt;The CPU usage node is then also connected to two switch nodes &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;When the value of CPU is greater than 50 it sends an alert . The template node properties (orange node ) connected to alert node (teal) are as so :&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Alert: CPU {{topic}} is {{payload}}%&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;Break output value from main CPU usage node to 4 separate gauges (teal) to visualize the data coming in at each core&lt;/p&gt;&lt;/li&gt;

&lt;/ol&gt;

&lt;p&gt;By this point you can get the idea that the data is pushed and manipulated along each node and its output is being visualized by each dashboard UI node . Imagine instead of a CPU usage node as the main data point you can have other nodes providing you an influx of data such as an IoT device or even tweets coming in from social media. You can use the same methodology to visualize data no matter what input. &lt;/p&gt;

&lt;p&gt;Creating this type of program can get very complicated when dealing with front end and server-side code.  I hope after following this flow,  you feel that Node-RED provides an easier way to create and visualize data that in many other cases could require more time, effort and knowledge to do. Node-RED is a great tool for everyone with all backgrounds and I hope that this example inspires you to go out there and create on you own! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Note: This particular example uses no code, however, if you do want to make robust dashboards you might want to include some function nodes to manipulate data using javascript. The purpose of this article is to show that applications can be created with no code / low code using Node-RED&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Check out my &lt;a href="https://nodered-dashboards.gitbook.io/node-red-dashboards/" rel="noopener noreferrer"&gt;&lt;strong&gt;Node-RED dashboards Workshop&lt;/strong&gt;&lt;/a&gt; to get step by step instructions on how to create this flow as well as 10 other examples! &lt;/p&gt;

&lt;p&gt;To get started make sure you register for the &lt;a href="https://cloud.ibm.com/catalog/starters/node-red-starter" rel="noopener noreferrer"&gt;IBM Cloud&lt;/a&gt; and create a Node-RED starter kit! This will have all you need to get up and running with Node-RED dashboards today! &lt;/p&gt;

&lt;p&gt;I hope this blog helps you as you begin your next prototyping journey! Give me a follow if you like this post, or follow me on Twitter &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt;  to see what classes I am teaching on Node-RED! 🙂 🏙️ &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>opensource</category>
      <category>ibmcloud</category>
    </item>
    <item>
      <title>Building solutions that fight back</title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Mon, 13 Apr 2020 22:16:37 +0000</pubDate>
      <link>https://dev.to/ibmdeveloper/building-solutions-that-fight-back-2coj</link>
      <guid>https://dev.to/ibmdeveloper/building-solutions-that-fight-back-2coj</guid>
      <description>&lt;p&gt;A few weeks ago, a colleague of mine asked me to clear out my calendar for the week to work with him on a team project. At the time, I agreed without really realizing how impactful this project was going to be. Little did I know, this project would lead to building out an entire starter kit for the &lt;a href="https://callforcode.org/" rel="noopener noreferrer"&gt;Call for Code&lt;/a&gt; &lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/" rel="noopener noreferrer"&gt;COVID-19 challenge&lt;/a&gt;, which is designed to help developers worldwide fight a global pandemic with the use of technology! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810439073_Screen%2BShot%2B2020-04-13%2Bat%2B4.39.27%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810439073_Screen%2BShot%2B2020-04-13%2Bat%2B4.39.27%2BPM.png" alt="Take on the Challenge Today"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://developer.ibm.com/callforcode/" rel="noopener noreferrer"&gt;Take on the Challenge Today&lt;/a&gt;



&lt;p&gt;I joined the 8 am Zoom call that Thursday morning to ideate with the team on what the starter kit was going to be. Since the Call for Code &lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/" rel="noopener noreferrer"&gt;COVID-19 Challenge&lt;/a&gt; was going to kick off the following day (March 20th), we were told that we had only one week to publish the starter kit and that we should all work together to build a solution around &lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/crisis-communication/" rel="noopener noreferrer"&gt;Crisis Communication&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810541857_Screen%2BShot%2B2020-04-13%2Bat%2B4.41.44%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810541857_Screen%2BShot%2B2020-04-13%2Bat%2B4.41.44%2BPM.png" alt="Crisis Communication Starter Kit  Get the Code Here"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/crisis-communication/" rel="noopener noreferrer"&gt;Crisis Communication Starter Kit&lt;/a&gt;&lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;Get the Code&lt;/a&gt;





&lt;p&gt;At this point, I would say that the entire team was still getting used to the lifestyle change of working from our respective homes due to the pandemic. However, we were a group of determined individuals, and with the help of our project manager - John Walicki, to keep us on track, we got to work 9 am sharp the following morning. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_88C4F4AADF6F6EB9D5CD8D1187AE584B63F6DDE5689D28A87F4A2288558393DC_1586814086148_Selection_217.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_88C4F4AADF6F6EB9D5CD8D1187AE584B63F6DDE5689D28A87F4A2288558393DC_1586814086148_Selection_217.png"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;a href="https://twitter.com/johnwalicki" rel="noopener noreferrer"&gt;John Walicki&lt;/a&gt; - rock star Project manager&lt;a href="https://twitter.com/lidderupk" rel="noopener noreferrer"&gt;Upkar Lidder&lt;/a&gt; - excellent engineer and Node.js integration expert&lt;a href="https://twitter.com/moficodes" rel="noopener noreferrer"&gt;Mofi Rahman&lt;/a&gt; - amazing engineer and webhook integration expert&lt;a href="https://developer.ibm.com/profiles/dkbyron/" rel="noopener noreferrer"&gt;Donna Byron&lt;/a&gt; - brilliant COVID-19 and CDC FAQ expert&lt;a href="https://twitter.com/ibmprice" rel="noopener noreferrer"&gt;Matt Price&lt;/a&gt; - incredible Watson Assistant expert &lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;Jill Amaya &amp;amp; Emily Mitchell&lt;/a&gt; - show-stopping editors and publishers &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;and Myself&lt;/a&gt; - awesome engineer &amp;amp; Slack integration expert















&lt;p&gt;The idea behind our starter kit was to provide a solution for communication and messaging during a time of crisis. In this pandemic, communications systems are often the first to be overwhelmed with people trying to find necessary information about testing, symptoms, community response, and other resources. We thought that the best way to tackle this issue was to build out a chatbot using &lt;a href="https://www.ibm.com/cloud/watson-assistant/" rel="noopener noreferrer"&gt;Watson Assistant&lt;/a&gt;, &lt;a href="https://cloud.ibm.com/functions/" rel="noopener noreferrer"&gt;IBM Cloud Functions&lt;/a&gt;, and &lt;a href="https://www.ibm.com/watson/services/discovery-news/" rel="noopener noreferrer"&gt;Watson Discovery News&lt;/a&gt; to demonstrate how we can integrate this solution in various ways. These integrations include Node.js application, Slack integration, and a speech to text application using Node-RED. The goal was to inspire developers worldwide to take on this challenge and use our solution as a blueprint to &lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;get started&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/WzEj_m0hwF0"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Our solution ultimately came down to 3 main elements : &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The Chatbot &lt;/li&gt;
&lt;li&gt;The Webhook&lt;/li&gt;
&lt;li&gt;The Integrations &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The conversational element of the chatbot was built using Watson Assistant, which made it very easy to build out the question and answer piece of the puzzle. We used a trusted source from the &lt;a href="https://www.cdc.gov/coronavirus/2019-ncov/faq.html" rel="noopener noreferrer"&gt;CDC FAQ&lt;/a&gt; page to populate the intents and entities of our bot, and we made sure to document all of our steps to inspire others to build an even more robust Q&amp;amp;A. &lt;/p&gt;

&lt;p&gt;The webhook element of the chatbot provided much more robust functionality and sophistication. It turned our static Q&amp;amp;A bot into a dynamic application! We integrated Watson Discovery News as a news data source to get the latest news articles on COVID-19, and we also integrated the &lt;a href="https://covid19api.com/" rel="noopener noreferrer"&gt;COVID-19 API&lt;/a&gt; to get more information on how many people have been affected. We did this through the use of serverless IBM Cloud Functions, which helped us integrate these two different data sources seamlessly. &lt;/p&gt;

&lt;p&gt;Once we were happy with the chatbot Q&amp;amp;A and the data source outputs through the webhook, we finally had to think about the final element, which was the various ways we can integrate. Overall we demonstrated three ways to integrate our &lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;COVID Crisis Communications Bot&lt;/a&gt;: &lt;/p&gt;

&lt;h3&gt;
  
  
  1&lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020/blob/master/starter-kit/slack/README.md" rel="noopener noreferrer"&gt;. Slack&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810744943_Slack.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810744943_Slack.gif"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  2&lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020/blob/master/starter-kit/covid-simple/README.md" rel="noopener noreferrer"&gt;. Node.js Application&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586811872910_Screen%2BShot%2B2020-04-13%2Bat%2B5.03.42%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586811872910_Screen%2BShot%2B2020-04-13%2Bat%2B5.03.42%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  3&lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020/blob/master/starter-kit/node-red/README.md" rel="noopener noreferrer"&gt;. Speech to Text App with Node-RED&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810840024_Node-RED-COVIDChatBot-Dashboard.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810840024_Node-RED-COVIDChatBot-Dashboard.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are perhaps endless ways to integrate our bot. However, as a team, we felt that these three ways demonstrate the power of &lt;a href="https://www.ibm.com/account/reg/us-en/signup?formid=urx-42793&amp;amp;eventid=cfc-2020&amp;amp;cm_mmca2=10008917&amp;amp;cm_mmc=OSocial_Blog-_-Audience+Developer_Developer+Conversation-_-WW_WW-_-cfc-2020-cfcorg-cloudreg_ov75914&amp;amp;cm_mmca1=000039JL&amp;amp;lang=en_US&amp;amp;target=https%3A%2F%2Fdeveloper.ibm.com%2Fdwwi%2Fjsp%2Fp%2Fpostregister.jsp%3Feventid%3Dcfc-2020%26cm_mmca2%3D10008917%26cm_mmc%3DOSocial_Blog-_-Audience%2BDeveloper_Developer%2BConversation-_-WW_WW-_-cfc-2020-cfcorg-cloudreg_ov75914%26cm_mmca1%3D000039JL%26lang%3Den_US" rel="noopener noreferrer"&gt;IBM Cloud&lt;/a&gt; and can provide a solid starting point to help developers take on the Call for Code COVID-19 challenge. &lt;/p&gt;

&lt;p&gt;In the end, we published this starter kit with the hopes of inspiring others! Our starter kit was one of 3 starter kits that were published as resources for the Call for Code COVID-19 challenge. The other starter kits: &lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/remote-education/" rel="noopener noreferrer"&gt;Remote Education&lt;/a&gt; and &lt;a href="https://developer.ibm.com/callforcode/getstarted/covid-19/community-cooperation/" rel="noopener noreferrer"&gt;Community Cooperation&lt;/a&gt;, also provide innovative solutions to get started with. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810295770_Screen%2BShot%2B2020-04-13%2Bat%2B3.25.37%2BPM.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpaper-attachments.dropbox.com%2Fs_2F9D5F0D262DAC96065532FDFA65DB4483DB61F8D9C41AAB01A039C52D8E8E2F_1586810295770_Screen%2BShot%2B2020-04-13%2Bat%2B3.25.37%2BPM.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.ibm.com/callforcode/" rel="noopener noreferrer"&gt;Take on the Call for Code Covid-19 challenge today&lt;/a&gt;! &lt;br&gt;
Check out our &lt;a href="https://github.com/Call-for-Code/Solution-Starter-Kit-Communication-2020" rel="noopener noreferrer"&gt;starter kit here&lt;/a&gt;. Feel free to fork and submit pull requests!&lt;br&gt;&lt;br&gt;
Also if you want to learn more from us we will be doing a &lt;a href="https://www.crowdcast.io/e/how-to-quickly-build" rel="noopener noreferrer"&gt;webinar&lt;/a&gt; on &lt;strong&gt;April 16th and April 20th&lt;/strong&gt;!  &lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>communication</category>
      <category>webinar</category>
      <category>development</category>
    </item>
    <item>
      <title>Detecting Objects with a Tello Drone </title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Wed, 25 Sep 2019 17:15:25 +0000</pubDate>
      <link>https://dev.to/poojamakes/detecting-objects-with-a-tello-drone-38np</link>
      <guid>https://dev.to/poojamakes/detecting-objects-with-a-tello-drone-38np</guid>
      <description>&lt;p&gt;Have you ever wanted to detect objects using live video streaming from a drone? If so, with this tutorial you now can! &lt;/p&gt;

&lt;p&gt;&lt;iframe class="tweet-embed" id="tweet-1174800354560630790-693" src="https://platform.twitter.com/embed/Tweet.html?id=1174800354560630790"&gt;
&lt;/iframe&gt;

  // Detect dark theme
  var iframe = document.getElementById('tweet-1174800354560630790-693');
  if (document.body.className.includes('dark-theme')) {
    iframe.src = "https://platform.twitter.com/embed/Tweet.html?id=1174800354560630790&amp;amp;theme=dark"
  }



&lt;/p&gt;

&lt;h1&gt;
  
  
  &lt;strong&gt;Let's Get Started&lt;/strong&gt;
&lt;/h1&gt;

&lt;p&gt;In this tutorial, we will be using &lt;a href="https://nodered.org/about/" rel="noopener noreferrer"&gt;Node-RED&lt;/a&gt;. Designed and built by IBM, &lt;strong&gt;Node-RED&lt;/strong&gt; is a free open source logic engine that allows programmers of any level to interconnect IoT, cloud-based systems, web services, databases, API’s and more!&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1:&lt;/strong&gt; Get started by installing Node-RED locally
&lt;/h3&gt;

&lt;p&gt;You can check out &lt;a href="https://nodered.org/docs/getting-started/local" rel="noopener noreferrer"&gt;this tutorial&lt;/a&gt; on how to install Node-RED on your local computer , or follow the commands below :&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;sudo npm install -g --unsafe-perm node-red&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;This should install Node-RED, once installed run this command :&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;node-red&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;This should point you to a Node-RED URL &lt;code&gt;http://127.0.0.1:1880/&lt;/code&gt; that you can put in your browser to see the Node-RED editor &lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: In later steps, we will be adjusting the settings.js file that comes when you install Node-RED&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn5u9sjpb164qh9mvjhj1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fn5u9sjpb164qh9mvjhj1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Node-RED editor in your browser&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2:&lt;/strong&gt; Install &lt;a href="https://ffmpeg.org/" rel="noopener noreferrer"&gt;FFMpeg&lt;/a&gt; on your local computer
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.hongkiat.com/blog/ffmpeg-guide/" rel="noopener noreferrer"&gt;FFMpeg&lt;/a&gt;&lt;/strong&gt; is a very powerful command-line tool that is used for performing various conversion operations on audio and video files. This tool will be the bread and butter for video streaming! It is free to use and is available for Windows, Linux and Mac operating systems&lt;/p&gt;

&lt;p&gt;If you have a Mac, the best way to install it is by using homebrew.&lt;/p&gt;

&lt;p&gt;Run: &lt;code&gt;brew install ffmpeg&lt;/code&gt; to install FFmpeg locally to your computer. &lt;/p&gt;

&lt;p&gt;This will be critical to see streams that are flowing in from your local computer! &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3:&lt;/strong&gt; Install the &lt;a href="https://github.com/bourdakos1/node-red-contrib-ffmpeg" rel="noopener noreferrer"&gt;FFMpeg Node&lt;/a&gt; in Node-RED
&lt;/h3&gt;

&lt;p&gt;There are two ways you can install this node &lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Do &lt;code&gt;npm install node-red-contrib-ffmpeg&lt;/code&gt; in the same directory that node-RED (from step 1) was installed &lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Open your node-RED browser and find &lt;code&gt;node-red-contrib-ffmpeg&lt;/code&gt; in manage pallet &lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fibu5vo6o2qecbbmk0ie6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fibu5vo6o2qecbbmk0ie6.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Open hamburger menu on right hand side &amp;gt; manage palette&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3l5otykekic0zx17v7t1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F3l5otykekic0zx17v7t1.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Click install and you should see the ffmpeg node in your palette&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4:&lt;/strong&gt; Train a Model
&lt;/h3&gt;

&lt;p&gt;Follow &lt;a href="https://github.com/cloud-annotations/training/" rel="noopener noreferrer"&gt;this tutorial&lt;/a&gt; to train an object detection model . &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpuooxnym5h89okwdj2wy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpuooxnym5h89okwdj2wy.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you finish this tutorial you should end up with a &lt;code&gt;model_web&lt;/code&gt; folder. &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 5:&lt;/strong&gt; Copy &lt;code&gt;model_web&lt;/code&gt; into Node-RED and adjust settings
&lt;/h3&gt;

&lt;p&gt;Once you have a &lt;code&gt;model_web&lt;/code&gt; directory with your trained object model you will need to copy that into the directory that you installed Node-RED &lt;/p&gt;

&lt;p&gt;We will then adjust the settings.js file in your node-RED director &lt;/p&gt;

&lt;p&gt;Open &lt;code&gt;settings.js&lt;/code&gt; and search for and uncomment out the following&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;httpAdminRoot: '/editor',&lt;br&gt;
    httpStatic: '&amp;lt;path to model web directory &amp;gt;',&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;I set the endpoint of &lt;code&gt;httpAdminRoot&lt;/code&gt; to editor, so now when you run &lt;code&gt;node-red&lt;/code&gt; command to see your node-RED editor you will now go to this url &lt;code&gt;http://127.0.0.1:1880/editor&lt;/code&gt;  &lt;/p&gt;

&lt;p&gt;&lt;code&gt;httpStatic&lt;/code&gt; will include the location of your model_web folder  &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 6:&lt;/strong&gt; Configure your &lt;a href="https://www.ryzerobotics.com/tello" rel="noopener noreferrer"&gt;Tello Drone&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Before you can use your Tello Drone you MUST activate it in the official Tello Drone app. Once your drone is activated, you can connect to it's WiFi Network TELLO-XXXXXX and send it commands via UDP &lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 7:&lt;/strong&gt; Import Flow into Node-RED
&lt;/h3&gt;

&lt;p&gt;Start Node-RED locally and Import the following flow : &lt;/p&gt;


&lt;div class="ltag_gist-liquid-tag"&gt;
  
&lt;/div&gt;


&lt;p&gt;To import this flow , copy the json in the GIST above to your clipboard. &lt;/p&gt;

&lt;p&gt;On your Node-RED editor go to the hamburger menu on top right-hand side &amp;gt; Import &amp;gt; Clipboard &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4estveen8mfbc6jxbbpi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4estveen8mfbc6jxbbpi.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Paste the json that you copied from your clipboard and click Import &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsg3a8fdsyjkv4s6v4f2s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fsg3a8fdsyjkv4s6v4f2s.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You should see the following flow on your editor :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu1je8nhbio2t4219g8we.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fu1je8nhbio2t4219g8we.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 8:&lt;/strong&gt; Adjust Nodes and Stream from Tello!
&lt;/h3&gt;

&lt;p&gt;Double click on the FFmpeg node and make sure it is configured for Tello Drone. Also by default, the URL will be set to &lt;code&gt;/stream&lt;/code&gt; . &lt;em&gt;Note, this can be changed to whatever url endpoint you want&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzr84q1z8gl96ki0f2eu9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzr84q1z8gl96ki0f2eu9.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;In this example our stream will be accessible at ws://:/stream&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Using the stream&lt;/strong&gt; &lt;br&gt;
To render the video stream in the browser, we use a library called &lt;a href="https://github.com/phoboslab/jsmpeg" rel="noopener noreferrer"&gt;JSMpeg&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;*If you changed the stream url endpoint to something else , make sure you configure this in the template node on line 58. In the default we have it set as /stream *&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;code&gt;const url = `ws://${window.location.hostname}:${window.location.port}/&amp;lt;url_endpoint&amp;gt;&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ftffe3jfpe1khumc00x5i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Ftffe3jfpe1khumc00x5i.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Turn Tello Wifi On&lt;/strong&gt; &lt;br&gt;
Make sure your Tello drone is charged and you have turned it on. You should be able to connect to your Tello's wifi. &lt;/p&gt;

&lt;p&gt;Once connected click Command and then Stream on &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiyg4muh1b1w4yet5s0bv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fiyg4muh1b1w4yet5s0bv.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Go to &lt;code&gt;http://127.0.0.1:1880/dashboard&lt;/code&gt; and you should see video streaming from your tello! If you have trained an object detection model, you should also see your tello detect objects! In my case I trained a model to distinguish between thumbs up and thumbs down &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb2tvoogxldigd4hr2km7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fb2tvoogxldigd4hr2km7.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;If you want to stop stream make sure to click on the stopstream inject button in the node-RED editor&lt;/em&gt; &lt;/p&gt;

&lt;h3&gt;
  
  
  The End
&lt;/h3&gt;

&lt;p&gt;That's all folks :). Thank you so much for reading! &lt;/p&gt;

&lt;p&gt;Check out &lt;a href="https://github.com/bourdakos1/node-red-contrib-ffmpeg" rel="noopener noreferrer"&gt;this repo&lt;/a&gt; if you're interested in video streaming without the object detection! &lt;/p&gt;

&lt;p&gt;Feel free to reach out to me with any questions in the comments below, or connect with me on twitter &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you found this tutorial fun and helpful, it would mean a lot to me if you gave it some &amp;lt;3 and shared it to help others! Thank you again! &lt;/p&gt;

</description>
      <category>ibmcloud</category>
      <category>node</category>
      <category>machinelearning</category>
      <category>npm</category>
    </item>
    <item>
      <title>Why you should be using Node-RED right now! </title>
      <dc:creator>Pooja Mistry</dc:creator>
      <pubDate>Tue, 02 Jul 2019 02:31:53 +0000</pubDate>
      <link>https://dev.to/poojamakes/why-you-should-be-using-node-red-right-now-1n1l</link>
      <guid>https://dev.to/poojamakes/why-you-should-be-using-node-red-right-now-1n1l</guid>
      <description>&lt;p&gt;This month I have spent most of my time exploring, learning and teaching Node- RED, and I have come to the conclusion that this awesome technology is one that you should be using right now! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkb2qi0ge5lhcgup1ykgv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fkb2qi0ge5lhcgup1ykgv.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let me explain. Have you ever wanted to rapidly prototype something, whether that be a building an IoT device, a web service, or a larger proof of concept for your enterprise clients? Have you ever found yourself in an endless google search on how to get started or trying to figure out where your project will run? Well, with Node-RED you can start building, prototyping, and sharing within minutes.&lt;/p&gt;

&lt;p&gt;Designed and built by IBM, &lt;a href="https://nodered.org/about/" rel="noopener noreferrer"&gt;Node-RED&lt;/a&gt; is a free open source logic engine that allows programmers of any level to interconnect IoT, cloud-based systems, webservices, databases, API’s and more!  Here are 3 reasons why it is so awesome to use! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. Node-RED’s power lies in its ease of use.&lt;/strong&gt; &lt;/p&gt;

&lt;p&gt;Using Node-RED is as simple as wiring graphical &lt;em&gt;nodes&lt;/em&gt; together and deploying to see the desired out comes. It uses a visual web interface, where blocks –called &lt;em&gt;nodes&lt;/em&gt; – can receive and send messages to other nodes. This makes the whole integration process easier by abstracting a lot of repetitive and boilerplate code needed to make these simple things. &lt;/p&gt;

&lt;p&gt;Anyone with logic or programming background can easily start working with Node-RED. There are countless nodes in the node pallet that can help you build something worthwhile.  These nodes allow you to inject your own data or data from other sources (i.e. social media, IoT devices, APIs and databases). You can also use function nodes to write your own logic as well as build your own web services user interface. &lt;/p&gt;

&lt;p&gt;Here’s an example with a simple Hello World:&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faz3j9kvspdo2klq63zov.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Faz3j9kvspdo2klq63zov.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example, an inject node is used to send a message object manually to a function node, in this case “Hello World” and the function node replaces the msg.payload “World” with “Everyone, I hope you enjoy Node Red” . Then, it passes the message forward to a debug node, which prints it on the debug tab.&lt;/p&gt;

&lt;p&gt;This simple flow can be incredibly powerful because when you are able to build out a hello world application, you can easily build something much more intricate without having to learn how to use several APIs and libraries.   All it takes is being able to drag, drop, wire, and deploy and you’re ready to go! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.Node-RED allows developers to prototype, test, build and rebuild within minutes&lt;/strong&gt; &lt;br&gt;
The countless examples and nodes available on Node-RED make it easy for developers to test out their ideas in minutes. &lt;/p&gt;

&lt;p&gt;Let’s say you want to build an application that tells you whether a tweet is positive or is negative. &lt;/p&gt;

&lt;p&gt;You can easily hook up a twitter input node and output tweets into your debug panel like so: &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe2v8j3ssb1t8pjlw4gcy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fe2v8j3ssb1t8pjlw4gcy.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, once you have the input of tweets you want to hook up sentiment analysis , since this will give you the sentiment of the tweet and whether it represented positively or negatively. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4p7gyqr9dmajvl9t96mf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F4p7gyqr9dmajvl9t96mf.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example we have hooked up inject nodes to test the sentiment analysis service with static messages to represent influx of tweets. We can easily add tests to our flows to ensure that our services are working the way we want them to. &lt;/p&gt;

&lt;p&gt;Now let’s say that we are happy with the way this flow is working however it would be awesome to represent the data in a dashboard / UI. There are nodes for this! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpx16u1kwk9a0mk5a5krt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fpx16u1kwk9a0mk5a5krt.png"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6vtyp6s6inot0h2zh8ml.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2F6vtyp6s6inot0h2zh8ml.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this example we went from having an idea of getting tweets as inputs to building out a UI dashboard that shows the sentiment score or positive or negative tweets. Compared to the time and energy it would take to write your own tweet input, a sentiment algorithm, and a robust user interface, we can easily hook up the necessary nodes and get a working prototype in significantly less time.&lt;/p&gt;

&lt;p&gt;Of course, this flow will not be the end-all-be-all, but it will show you how these services work together.  If you decide to go with a prototype for more production-level work, your flow in Node-RED will provide you with a dependable road map. In many cases Node-RED also has you covered from prototype to production when building a single new function, a collection of functionalities, or an entire application from browser to database.  &lt;/p&gt;

&lt;p&gt;The ability to tweak, adjust, build and rebuild on the fly is Node-RED’s greatest feature.  Get ready to start impressing those around you with robust prototypes that can be turned into production quality applications in less time than you think! &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.Node-RED is incredibly flexible and is built on dependable technology&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Node-RED is built on top of one of the most dependable and ubiquitous technology stacks out there – JavaScript.  This makes it highly flexible and easy to work with on web browser, server side, IoT projects and more.  &lt;/p&gt;

&lt;p&gt;Since you will be working in this space , there is incredible support from &lt;a href="https://www.npmjs.com/package/node-red" rel="noopener noreferrer"&gt;npm&lt;/a&gt; for Node-RED and there are over &lt;a href="https://flows.nodered.org/?num_pages=1" rel="noopener noreferrer"&gt;3000 ready made nodes&lt;/a&gt; to get you started building whatever you want.&lt;/p&gt;

&lt;p&gt;And if you don’t find a component that fits your needs from the thousands that are freely available, &lt;a href="https://nodered.org/docs/creating-nodes/" rel="noopener noreferrer"&gt;you can write your own&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can run Node-RED as an &lt;a href="https://cloud.ibm.com/catalog/starters/node-red-starter" rel="noopener noreferrer"&gt;IBM cloud service&lt;/a&gt; and easily have a connection to cloudant data base and IBM Watson services or you can install &lt;a href="https://nodered.org/docs/getting-started/local" rel="noopener noreferrer"&gt;Node-RED locally&lt;/a&gt;. You can also install &lt;a href="https://nodered.org/docs/getting-started/local" rel="noopener noreferrer"&gt;Node-RED in docker&lt;/a&gt;.  It is highly flexible and easy to run and get started with, so the sky is the limit. &lt;/p&gt;

&lt;p&gt;There you have it! Node-RED is incredibly powerful and useful for anyone who wants to take their ideas from concept to creation! It’s easy to use, its ideal for prototyping, and it is incredibly dependable.  So, what are you waiting for, start building with Node-Red now! &lt;/p&gt;

&lt;p&gt;I hope this blog helps you as you begin your next prototyping journey! Check out my &lt;a href="https://node-red.gitbook.io/workshop/" rel="noopener noreferrer"&gt;Twitter Analysis workshop&lt;/a&gt; to get hands on how to on building twitter analyzers with Node-RED. &lt;/p&gt;

&lt;p&gt;Give me a follow if you like this post or follow me on Twitter &lt;a href="https://twitter.com/poojamakes" rel="noopener noreferrer"&gt;@poojamakes&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>node</category>
      <category>opensource</category>
      <category>ibmcloud</category>
    </item>
  </channel>
</rss>
