<?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: Tauseef</title>
    <description>The latest articles on DEV Community by Tauseef (@tauseefmalik).</description>
    <link>https://dev.to/tauseefmalik</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%2F818694%2F89646797-6dac-4af6-98fb-20ba1b124dbf.png</url>
      <title>DEV Community: Tauseef</title>
      <link>https://dev.to/tauseefmalik</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tauseefmalik"/>
    <language>en</language>
    <item>
      <title>De-cluttering your screenshot images in the gallery with AI</title>
      <dc:creator>Tauseef</dc:creator>
      <pubDate>Thu, 24 Feb 2022 18:27:50 +0000</pubDate>
      <link>https://dev.to/tauseefmalik/de-cluttering-your-screenshot-images-in-the-gallery-with-ai-49d5</link>
      <guid>https://dev.to/tauseefmalik/de-cluttering-your-screenshot-images-in-the-gallery-with-ai-49d5</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;Ever taken a screenshot of an important transaction to share with your friend? Or maybe to capture an important map, articles, invoice, medical report, funny meme, or a conversation. Be it anything, eventually, after a while, we tend to forget to remove these images from our phones and as they gather dust and clutter our gallery, they also become dangerous weapons when in the wrong hands.&lt;/p&gt;

&lt;p&gt;At times, these can contain personal information which when in the wrong hands can cause us inconvenience or big problems- Think virtual credit card information&lt;/p&gt;

&lt;p&gt;So here's quick solution to de-clutter your gallery -&lt;/p&gt;

&lt;p&gt;Custom Vision in Azure&lt;/p&gt;

&lt;p&gt;This Azure service allows users to push bunch of images as sample data for image classification or object detection.&lt;/p&gt;

&lt;p&gt;DIY Guidelines -&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create your own project on the custom vision portal and upload sample data that summarizes your gallery. (choose project type as classification)&lt;/li&gt;
&lt;li&gt;Label/tag the images into major categories that you observe consuming most space in your screenshots album/gallery folder.&lt;/li&gt;
&lt;li&gt;Add negatives label to handle images that don't categorize into any of the major categories&lt;/li&gt;
&lt;li&gt;Train the sample data with classification model as a single tag per sample and publish that iteration to generate a prediction endpoint&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I have classified the images into &lt;em&gt;Personally identifiable information(PII), Maps, and stock market&lt;/em&gt;. The sample data is small for representation in this example. However, with time and each prediction, we expect the data to grow and the AI predictor to be more and more precise.&lt;/p&gt;

&lt;p&gt;Now, we have an AI model, and all we need is this service to be exposed to be used in Android/iOS apps or simple console applications. Even better to integrate this service in an existing gallery app to categories PII data.&lt;/p&gt;

&lt;p&gt;The image is identified based on sample data which includes invoices, payment transactions, contact details etc.&lt;br&gt;
The sample application can be improvised to run on entire directory of images to categorise and tag the images at one go.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;AI Aces&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Code on GitHub
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/TauseefMalik/screenshot-classifier"&gt;github&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  In-Action
&lt;/h3&gt;

&lt;p&gt;Training iteration result - &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--tj6vIR4l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qz02xmwhnki7x63p7o7c.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--tj6vIR4l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qz02xmwhnki7x63p7o7c.PNG" alt="Image description" width="587" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Unsampled test image -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--K8mlpfsM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dfh98uo92cqi77ixfjaa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--K8mlpfsM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dfh98uo92cqi77ixfjaa.jpg" alt="Image description" width="777" height="1600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Prediction -&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KmpmsMzU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14yvp306eisrekhcrar5.PNG" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KmpmsMzU--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/14yvp306eisrekhcrar5.PNG" alt="Image description" width="375" height="132"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azuretrialhack</category>
      <category>azure</category>
      <category>ai</category>
      <category>customvision</category>
    </item>
    <item>
      <title>Azure Functions logging with log levels</title>
      <dc:creator>Tauseef</dc:creator>
      <pubDate>Mon, 21 Feb 2022 17:25:45 +0000</pubDate>
      <link>https://dev.to/tauseefmalik/azure-functions-logging-with-log-levels-4kea</link>
      <guid>https://dev.to/tauseefmalik/azure-functions-logging-with-log-levels-4kea</guid>
      <description>&lt;h3&gt;
  
  
  Overview of My Submission
&lt;/h3&gt;

&lt;p&gt;Logging with log-levels and to different sink targets in Azure Functions&lt;/p&gt;

&lt;h3&gt;
  
  
  Problem
&lt;/h3&gt;

&lt;p&gt;In most Server-less boilerplate template, generally a log context is provided which logs to default log service of the respective Cloud provider i.e. Azure Application metric.&lt;/p&gt;

&lt;p&gt;However, they do not provide the ability to log messages with different log levels which is really necessary for large distributed micro-service based systems where-in you need to drill down to a particular warning or debug message.&lt;br&gt;
Without a log-level, it becomes tedious to filter out the types of message that really interests us.&lt;/p&gt;

&lt;h3&gt;
  
  
  Use Serilog in your Azure Functions
&lt;/h3&gt;

&lt;p&gt;There are lot of readily available libraries which provide a means to perform structured event logging with context and push event message in custom formatted template. We will explore one such open-source library called Serilog.&lt;/p&gt;

&lt;p&gt;Serilog provides a mechanism to perform structured logging and way to switch between different log-levels. It also supports a bunch of different target sinks.&lt;/p&gt;

&lt;p&gt;Checkout the sample code in the github link. Once up and running trigger your function app with a query paramater and see Serilog in action.&lt;/p&gt;

&lt;p&gt;Check the App Insights Logs to view the logs in real-time. Notice how the logs are colored based on the log severity i.e. warning, info or error etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  Submission Category:
&lt;/h3&gt;

&lt;p&gt;Computing Captains&lt;/p&gt;

&lt;h3&gt;
  
  
  Link to Code on GitHub
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/TauseefMalik/Az-function-logger" rel="noopener noreferrer"&gt;github&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  In-Action
&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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frip65ouf3cicp8yy7xwe.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%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frip65ouf3cicp8yy7xwe.PNG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>azuretrialhack</category>
      <category>azurefunctions</category>
      <category>logger</category>
    </item>
  </channel>
</rss>
