teleren/devto huggingface dataset:
Clothing Style Detection & Recommendation System: Object Detection Model
Tags: machinelearning, objectdetection, transferlearning, yolo
Published: 2020-06-18 19:34:43

[Introduction](https://dev.to/thecodingdino/clothing-style-detection-recommendation-system-introduction-1cj4), [Dataset Construction](https://dev.to/thecodingdino/clothing-style-detection-recommendation-system-dataset-construction-3e6p) for the detection system can be found in previous posts.

###Introduction to You Only Look Once (YOLO)
YOLO is an object detection model consisting of a single convolutional network. It uses the complete image to make bounding box and object class predictions unlike other detectors which select regions in the image to predict the presence of objects in it.
The high-level detection procedure of YOLO can be seen below.

![Detection Process of YOLO](https://dev-to-uploads.s3.amazonaws.com/i/9n53janen2zus5wumkwq.png)

Due to its architecture, YOLO can quickly detect objects with decent accuracy. YOLOv3 is the third iteration of the original YOLO model, where the creator updated its architecture to enhance accuracy levels. As compared to other object detection models such as Faster R-CNN and SSD, we found YOLO best suited for our purposes and selected it as the detection model in our system.

The original source code for all YOLO versions, written in C, is
available in the [DarkNet Repository](https://github.com/
pjreddie/darknet,). As building the detection
model requires multiple custom model elements for training and prediction, we referred to [Experiencor's Github](https://github.com/experiencor/keras-yolo3) for scripts to enable us to train the model with our dataset. 

###Implementation
For performing transfer learning, we obtained weights of a YOLOv3 model initially trained on the COCO Dataset, from the [official YOLO webpage](https://pjreddie.com/darknet/yolo/). COCO Dataset contains more than 1.5 million object instances distributed across 80 classes. The obtained weights are a result of extensive training and benefit us by increasing accuracy of our model and reducing training time.

Eighty percent of the dataset was used for training a model built using the obtained pre-trained weights. The training continued until the loss values did not improve by a minimum threshold after a set number of epochs. This was done to ensure the model does not overfit on the data.

###Further Work
The style and bounding box predictions made by the trained
model will be provided as input to a recommendation system.
On the basis of the bounding box, the recommendation system will
identify the required section of the image, where the clothing item is present, and recommend similar items from the dataset. The high-level implementation design can be seen below.

![Overview of complete detection & recommendation system](https://dev-to-uploads.s3.amazonaws.com/i/ggbdo3yd2qffrn00po1o.png)

For further information on what transfer learning is, please refer here: https://blogs.nvidia.com/blog/2019/02/07/what-is-transfer-learning/
AzureFunBytes - Episode 3 - Azure Cloud Shell with @StevenMurawski
Tags: twitch, beginners, azure, tutorial
Published: 2020-06-18 19:14:35

AzureFunBytes - Episode 3 - Azure Cloud Shell with @StevenMurawski

{% youtube mtEzOAfXHCk %}

Today we discuss the Azure Cloud Shell and try to solve three problems:

1. How can I reduce my local workstation requirements for managing my Azure account?
2. How can I review, modify and extend resources with Azure CLI and Powershell.
3. I no longer need the resources I’ve created, how do I destroy them?

AzureFunBytes! - Byte-sized content with a live Twitch show! Learn about
Azure fundamentals with me!

Live stream is available on Twitch at 2pm EDT weekly. You can also find the recordings there as well.

https://twitch.tv/azurefunbytes
https://twitter.com/azurefunbytes

Join me, ask questions and learn about Azure Cloud Shell!

Overview of the Azure Cloud Shell - https://cda.ms/1mq
Microsoft Learn: Azure Fundamentals - https://cda.ms/1jV
Microsoft Azure: $200 Free Credit - https://cda.ms/1mp
AWS Lightsail for Beginners - 19 Video Tutorials
Tags: aws, lightsail, hosting, wordpress
Published: 2020-06-18 19:08:56

Lightsail is a great platform for setting up quick WordPress sites and other web applications. To help walkthrough the various features of Lightsail, extend the platform and instances in a way that it can be used efficiently, I've created a set of YouTube videos that are aimed at helping beginners and developers that use apps like WordPress. Here are list of videos that hope you will find useful.

1. Using Lightsail to setup back WordPress instance:
{% youtube MyAbwgU0pew %}

2. Setup Lightsail instance with ServerPilot cloud management to host multiple apps on one instance:
{% youtube dUoX9ErIxY4 %}

3. Setup SSH Client and Free SSL Certs for your website
{% youtube l_VpA3cmXRg %}

4. Setup PHPMyAdmin for your Database management, Setup VS Code, Setup FTP
{% youtube kwo0HO6RUmk %}

5. Setup monitoring uptime for your website
{% youtube PF0TQkAUoK0 %}

6. Protect and Speed up your WordPress sites
{% youtube IXe6eRKDXgU %}

7. How to create a Lightsail instance from a Snapshot
{% youtube 54Z-Zt44ZAY %}

8. Setup Lightsail instance with RunCloud cloud-based host management. This is an alternative to ServerPilot and offers better Free tier.
{% youtube 2DU_2Cna91M %}

9. Setup VaultPress with WordPress. Vaultpress is a backup and security solution for your WordPress website. From a backup point of view, it can take snapshots of your site and content and allow you to restore those directly to your website. Security wise, it can protect from malware, hacking attempts and other vulnerabilities.
{% youtube wNGeomT1eAg %}

10. Setup a Load Balanced WordPress site using Lightsail - Part 1
{% youtube cejuyzqKSLs %}

11. Setup a Load Balanced WordPress site using Lightsail - Part 2
{% youtube ZKeGLLbfcVg %}

12. Setup a Load Balanced WordPress site using Lightsail - Part 3
{% youtube K0NQ7BalvLk %}

13. Setup Lightsail instance with Plesk Host Management:
{% youtube _iF52AwvKvE %}

14. Setup a Custom Domain based email:
{% youtube bJY4CN7ZoVY %}

15. Use AWS Amplify to quickly host a static website:
{% youtube CRwCqUxGHE8 %}

16. How to update a multi instance Load Balanced WordPress website. If you followed my videos on setting up a Load Balanced site then this video extends as a Part 4 to update WordPress files or Plugin updates.
{% youtube rRuREDFm2tA %}

17. How to secure your Lightsail instance with IP based Port restriction:
{% youtube 4XJmVY58XlA %}

18. How to automate Lightsail Snapshot creation as a backup method:
{% youtube tFezV8tfkyc %}

19. How to setup a Lightsail instance and CapRover Host Management tool. This is a fourth option I show using a host management tool for your needs. This is a free open source solution and is great alternative to RunCloud, Plesk and others.
{% youtube cNT9xAILrCs %}

I have some other vidoes focused on tips and tricks in WordPress as well as other hosting platforms like Azure. You can find them here.
[Mukesh's Techspace](https://www.youtube.com/channel/UC7Hvr5-9tt9Cz1bUJGFHZ3w)

Hope you find this useful, please share with others.
A list of Open-Source Programs to help everyone!!!
Tags: discuss, opensource, gratitude
Published: 2020-06-18 18:52:58

Hey Developer !

You look everywhere to find a good open source project to contribute to ,but fails every time as you didnt found a good project or no incentive was there so you decided not to contribute to open source 

But here I have created a list that I'm sure will definitely help you sooner or later ♥


{% github https://github.com/deepanshu1422/List-Of-Open-Source-Internships-Programs %}
A real use-case for using a recursion
Tags: python, tutorial
Published: 2020-06-18 18:50:24

I've never ever used a recursion, and I never thought I will. So far, loops were enough.

## The Challenge
1. Given a dict/list (object), let's call it `dashboard`
1. Search for dicts in `dashboard` which posses a given key, `"expr"` in my case
1. Each time you find a dict with this key, add the value behind this key to a list and keep on searching through the `dashboard`
1. The `dashboard` contains an unknown number of dicts and lists, which are nested, and you don't really know the structure of this `dashboard`, it's totally unknown before execution time

The data I was working on - Grafana Node-Exporter Dashboard - https://grafana.com/api/dashboards/1860/revisions/19/download (JSON file)

## Solution
1. I used `json` to import the file, and saved the file's data in a variable called `dashboard`
1. I found out that I need to write down tons of loops, which didn't make sense, so I thought a recursion might be the solution for this one .. And it was!
1. I called the function `get_expressions` but you can call it whatever you want

Here's the code
```python
import json

with open("node-exporter-full_rev19.json", "r") as file:
    dashboard = json.load(file)


def get_expressions(obj, search_key, my_list=[]):
    if isinstance(obj, list) and len(obj):
        for item in obj:
            get_expressions(item, search_key, my_list)
    elif isinstance(obj, dict):
        if search_key in obj and obj[search_key]:
            return my_list.append(obj[search_key])
        else:
            for key, value in obj.items():
                if (isinstance(value, list) or isinstance(value, dict)):
                    get_expressions(value, search_key, my_list)
    return my_list


result = get_expressions(dashboard, "expr")
pretty_result = json.dumps(result, indent=2, sort_keys=True)
print(pretty_result)
```

```json
Output
[
...
"node_memory_Shmem_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
"node_memory_ShmemHugePages_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
"node_memory_SUnreclaim_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
"node_memory_SReclaimable_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
"node_memory_VmallocChunk_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
"node_memory_VmallocTotal_bytes{instance=~\"$node:$port\",job=~\"$job\"}",
...
]
```

## Explanation
1. The function gets an object (dict/list/int/anything), and checks if it's a non-empty list, and then for each item in this list it executes the same function (recursion)
1. Once the call on `obj` is the dict type (elif), we check if `search_key` is in the dict, if it is, hooray, append to `my_list` (starts as an empty list) and return my_list (stop condition)
1. (else in elif) if `search_key` is not in the dict, we need to go through ALL the keys in the dict (just like we did in the list), if a value in the dict is type of list or dict, execute the function again (recursion)
1. Eventually return `my_list` which starts as an empty list by default, and finishes with the list of the values that we searched for (stop condition)

I hope this was clear enough ... :)
3 Lockdown Lessons Learned
Tags: workfromhome, typescript, javascript
Published: 2020-06-18 18:46:54

Lockdown has been many things, but to me it has been an ample opportunity to learn. Due to the nature of the job software engineers have, we have to learn new things constantly - new frameworks, APIs, best practices and so on. Sometimes, however, the most important things that anyone can learn are about themselves. So without further ado,  these are the 3 things that I learned during lockdown:

1. Peace and Quiet: 

I love the buzz of the office. Getting to interact with some of my favourite people on a work-daily basis is pretty great. Feeling other people's enthusiasm fuels my enthusiasm, in a sort of self-fulfilling circle of enthusiasm. However, what spending my work day physically at home has made me learn is that sometimes I like the peace and quiet, and that actually I do my best thinking 🤔 💭 in a calm environment. 

2. The Tools You Use: 

This lesson is short and sweet. A poor workman blames his tools 🛠, but a superb workman makes better tools. Developing side projects to help improve my productivity has been really beneficial and much easier now that I can use the time that I would have spent commuting.

3. Help Yourself: 

Not as in everything is free, but more as in sometimes you learn the most by not asking for help. I was very reluctant to ask for help a while ago, but thanks to the friendly relationships between colleagues I have found it easy to ask - which is great. Now that people aren't just a shout across a room away, and I have to think about contacting people, I am becoming more deliberate about when I ask and offer help. Due to this, I have learned the importance of just sticking with it for a little bit longer than usual can often lead to the solution to that pesky bug 🐜! A tip here is to hold off asking for help for an extra five minutes after you first think of asking for help.

But enough about me. What have you learned during lockdown? Let me know in the comments below ⬇️

Talk soon 

- B 👋
Getting started with Regex
Tags: regex, beginners, tutorial
Published: 2020-06-18 18:41:09

#What is Regex?
Regex or Regular Expression is a sequence of characters defining a search pattern. Mostly we use Regex to find and or replace text. Most of the programming languages (for example JavaScript or Python) has support for it, making it an important part of the programmers' life.
##Regex must be really hard!!! Just look at it…
For the first sight, regular expressions might look a bit confusing but after understanding the basics it is fairly easy to understand and master.
##Let’s look into regular expressions!
For this article, I will be using the tool called “grep” (globally search for a regular expression and print matching lines) which is a command-line utility for searching plain-text data for lines that match a given regular expression. Grep comes built-in on Unix based systems. If you are using Windows, you can download it from here: http://gnuwin32.sourceforge.net/packages/grep.htm. After getting grep we can start learning the most important things. I have created a file called “test.txt” which contains the following:
```
Hello World
Test test
is this working?
i think so...
random test
what else should I add?
tttttttttttest
```
####My first Regex
With regex you can just search for a text:
``` grep "test" test.txt ```
this will return:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/c10oa5gev53somsupgup.png)
You can see that it matched everything case-sensitively.

###What are the most important things a beginner should learn?

####Any character: "."
You can match any character with writing a "."
``` grep ".est" test.txt ```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/yx3hjttdoy8eh62dbejz.png)

####Match any number of previous "*":
You can use it to match any number of the previous (including 0) with "*"
``` grep "t*est" test.txt ```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/zm2ivw2j54u0qcyhcicj.png)

####End of the line: "$":
You can match the end of the line with "$"
``` grep "t$" test.txt ```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/35wg7g66nbmtxwecwgsa.png)

####Something is optional: "?":
You can make something optional by using "?"
``` grep "t\?test" test.txt ```
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/th9363y9lbzqm9vnml5b.png)

####Other helpful things:
#####Escape character: "\"
#####Beginning of the line: "^"
#####Any lowercase letter: [a-z]
#####Any uppercase letter: [A-Z]
#####Any letter: [A-Za-z]

###One final challenge:
After reading everything I would like to challenge your knowledge with a simple exercise. Write a pattern that matches HTML tags. Have fun.

###Now I understand these, how can I learn more about Regex?
Congratulations, you have started your journey of mastering Regex.There are a few sites which can help you learn more about Regex and create more complicated patterns.
My favourite site is: https://regexr.com/

#####If you want more write a comment and follow me, thanks!
tsParticles needs your help
Tags: javascript, typescript, showdev, contributorswanted
Published: 2020-06-18 18:29:00

# Want to contribute to an OpenSource Project?

Here's a good first issue on tsParticles about creating a particle mouse trail.

A sample of the effect I want to create with tsParticles

{% codepen https://codepen.io/matteobruni/pen/abdpbBY %}

The issue link is here: https://github.com/matteobruni/tsparticles/issues/401

## Issue Text

> I created a sample on CodePen with a mouse trail. It has parameters like `qty` (spawn quantity), `delay` (spawn delay) that will be configured in `interactivity.modes` section. Other parameters like `speed` will be replaced from existing values of particles.
> 
> The event/mode will be `trail` with `quantity`, `delay`, `particles`. The first two properties have `number` type, `particles` will be the same object as `particles` in root options object for overrides.
>
> https://codepen.io/matteobruni/pen/abdpbBY
Generators in PHP
Published: 2020-06-18 18:28:37

PHP 5.5 came up with an interesting function to the PHP ecosystem and that was Generators. So while using generators in PHP, we’ll see what are generators and what are different ways of using it.

The structure of generators are similar to the normal functions itself. But in generators instead of return statement, we use yield. Weird, right?. Basically this how generators need to be defined.

So, generators basically loops through an data and avoids large amount of memory for that Array. Yes, generators works with an Array and while creating new array out of the loops it avoids utilizing large amount of memory.

https://programmingdive.com/using-generators-in-php/
Update — Grant For The Web Winners to be announced Thursday, June 25
Tags: gftwhackathon, webmonetization, opensource, meta
Published: 2020-06-18 18:17:14

---
title: Update — Grant For The Web Winners to be announced Thursday, June 25
published: true
description: The winner announcement date has changed for the Grant For The Web x DEV Hackathon! 
tags: gftwhackathon, webmonetization, opensource, meta
//cover_image: https://direct_url_to_image.jpg
---

Just a quick update that the DEV and Grant For The Web teams have collectively decided to postpone our [Grant For The Web x DEV Community Hackathon](https://dev.to/devteam/announcing-the-grant-for-the-web-hackathon-on-dev-3kd1) winner announcement to _next_ Thursday, June 25th. 

We received so many amazing Web Monetization projects across three categories (Foundational Technology, Creative Catalyst, and Exciting Experiments) and want to give adequate care and time when reviewing each of them. 

### As a reminder, the prizes are as follows:

**_3 Grand Prize Winners (one in each category):_**

* $2,000 USD gift card or equivalent 💸
* $300 USD credit to the DEV Shop 🎁
DEV “Grant For The Web Hackathon” winner badge 🏆

**_Runner-up Prizes (10 total):_**

* $400 USD gift card or equivalent 💸
* $150 USD credit to the DEV Shop 🎁
* DEV “Grant For The Web Hackathon” runner-up badge 👏

**_Participants (with valid projects):_**

* $50 USD credit to the DEV Shop 🎁
* DEV “Grant For The Web Hackathon” participation badge 💪

### **Thanks for your patience and keep your eyes peeled for our winner announcement next week!**
Templates and Logic - Building SaaS #45
Tags: python, django, saas, templates
Published: 2020-06-18 18:06:17

{% youtube iQhAelHVF-E %}

In this episode, we added content to a template and talked about the N+1 query bug.  I also worked tricky logic involving date handling.

The first change was to update a course page to include a new icon for any course task that should be graded.  After adding this, we hit an N+1 query bug, which is a performance bug that happens when code queries a database in a loop.  We talked about why this happens and how to fix it.

After finishing that issue, we switched gears and worked on a tricky logic bug.  I need a daily view to fetch data and factor in the relative time shift between the selected day and today.  We wrote an involved test to simulate the right conditions and then fixed the code to handle the date shift properly.

This article first appeared on [mattlayman.com](https://www.mattlayman.com/building-saas/templates-logic/).
Challenge: Find The Secret Message
Tags: challenge, discuss
Published: 2020-06-18 18:05:09

#Hello challenger
 ![](https://discordemoji.com/assets/emoji/2506_Challenger.png)
The task is simple, yet it will require true strength to complete this challenge. You must write code that accepts two strings. Both contain a set of words that are the same. You must return the words *without* duplicates. 

###GO!, and return victorious.
I'm going Live on Instagram & YouTube
Tags: watercooler, webdev, codenewbie, motivation
Published: 2020-06-18 17:58:04

Hey there,
  I've decided to do Instagram or YouTube Lives every week. It would be awesome to see y'all join these Lives.

We can discuss about Programming, web development, internships and student life.
We can also have Q&A sessions and Live coding.

Also, drop down your questions and topics on which you want me to talk about. :) You can also join to promote yourself, and talk about any programming topic you want.

**So it is a Two Way sharing of Knowlegde**

Instagram: https://instagram.com/developer_tharun
YouTube: https://youtube.com/c/developerTharun

Thank you for your support.
:)
Why should you have an Github account? 💻🤔
Tags: github, career, codenewbie, firstyearincode
Published: 2020-06-18 17:54:25

If you love technology and is an enthusiast about code, then most probably you have heard about [Github](https://github.com/). 📟

We all our a part of social media like Instagram 📷, Twitter 🐤 and Linkedin 📃. Well, have you even thought about what is the social media for millions of software developers around the world? 🤔 yes! you guessed it right! it's GITHUB. 💻

Github is a place where you can **post your code** like you post on any other social media platform!😍. This means you will be able to access your code files of your platform online irrespective of whether you have your laptop or not!🎉

Not only that, you can also:

-- create unlimited repositories(posts)
-- contribute to other repositories(add code)
-- make pull requests/create issues(suggest edits)
-- use Github pages to host your projects
and many other exciting things!

If you are not on Github or is not active, go right away to [Github](https://github.com/) and create an account and start engaging on your profile.💡

Having a well maintained Github profile not only shows that you are an organised person, but also helps you have a great **digital footprint** which inturn can help you find a better job. You can also collaborate with people from around the world and work on any domain that interests you!🤩

So what are you waiting for? The next project you work on, make sure to update all your files on Github.💯

Keep coding! Keep contributing! 💖