teleren/devto huggingface dataset:
Open Source Software
Published: 2021-09-30 15:23:37

Open source software are often better than closed sourced software. For example, anyone would be able to pick up open source code that maliciously violate user's privacy. 

# Brave Browser
Brave Browser is an open source Chromium browser that emphasizes on its security. It mainly blocks trackers, upgrades connection to https, and blocks fingerprinting from third party advertisers. The other prominent feature it has is allowing users to earn cryptocurrency tokens called BAT for viewing brave ads. Essentially, Brave company is giving the users a portion of their ad revenue from trusted third party advertisers. 

Brave source code is publicly available on GitHub and contributors can submit pull requests. 

https://github.com/brave/brave-browser/pull/16558/files
This is the most recently accepted pull request for brave browser. 4 people needed to approve the change in package.json. This pull request started in June 22, but it is still ongoing as more people are needed to approve the change.

#YgoPro
YgoPro is an open source Yu-gi-oh Simulator.

https://github.com/Fluorohydride/ygopro/pull/2361

This is their pull request tracker, and here's the latest change that is approved.

https://github.com/Fluorohydride/ygopro/pull/2361/files

Unlike Brave browser, the community for this project is much smaller. There is only 1 person needed to approve this change before merging the temporary branch with master branch.
Beep Boop 8: Visualize, Analyze, and Collab on Data (No Code Required!)
Tags: beginners, codenewbie, programming, tutorial
Published: 2021-09-30 15:13:00

--- 
title: Beep Boop 8: Visualize, Analyze, and Collab on Data (No Code Required!)
description: In the final episode of the series, we visualize and analyze an awesome dataset with the help of Power BI. 
tags: beginners, codenewbie, programming, tutorial
series: "Beep Boop"
published: true
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7utk8y7ilghpotw2u6ke.png
---

Thanks to everyone who joined us live for the 8th and final (for now!) episode of [Beep Boop with the Microsoft Reactor](aka.ms/BeepBooptube)! We started off with a fabulous and comprehensive [introduction to Power BI](aka.ms/beepbooplinks8), and then put our new knowledge to the test by visualizing and analyzing some open source data! 👩‍💻👩🏽‍💻


If you missed the fun live, don't worry- you can watch the replay [here on YouTube](aka.ms/beepboop8), and in the embedded video below! You can watch all eight episodes in the series [on demand on YouTube](aka.ms/beepbooptube) and catch up on all of the blog posts [here on Dev.to](aka.ms/beepboopreplay)!



{% youtube 5vBhgZGE_OU %}



**On this episode we cover:**

- [6:59](https://youtu.be/5vBhgZGE_OU?t=419) What is Beep Boop, and why should you [go back and watch all the episodes](aka.ms/beepbooptube)? 💕☺️

- [14:25](https://youtu.be/5vBhgZGE_OU?t=865) Chloe introduces the module we’ll be working on today, an [introduction to Power BI](aka.ms/beepbooplinks8)! 📈🔋

- [18:58](https://youtu.be/5vBhgZGE_OU?t=1138) [What is Power BI?](https://aka.ms/beepboop8links2) We walk through the different parts of the tool, and the core concepts we're dealing with, like datasets 🔢, reports 📄, and dashboards 📉. 

- [31:31](https://youtu.be/5vBhgZGE_OU?t=1891) Let's talk [data modeling and visualizations](https://aka.ms/beepboop8links3) - from donut charts 🍩 to line charts 📈, Power BI has got it all!

- [45:17](https://youtu.be/5vBhgZGE_OU?t=2717) We’re playing basketball… again! We watch a [short video](https://aka.ms/beepboop8links4) about how the Miami Heat use Power BI to optimize their business. 🏀

- [50:25](https://youtu.be/5vBhgZGE_OU?t=3025) Chloe shows off all of the visualizations she's created of the best dataset ever - [squirrel census data from Central Park in New York](https://aka.ms/bbsquirrels)! 🐿

- [1:02:10](https://youtu.be/5vBhgZGE_OU?t=3730) We hear from our BBs about their favorite things about Beep Boop, and we share some final moments with Frank (for now 😢) 🐶🦴


*That's all the Beep Boop we have for now! You can always replay [all of the episodes on demand](aka.ms/beepbooptube), [revisit the blog posts](aka.ms/beepboopreplay), and say hi to [Ornella](https://twitter.com/ornelladotcom) and [Chloe](https://twitter.com/ChloeCondon) on Twitter! We'd love to hear what you'd like to see on the next season of Beep Boop! 🤖💕*
Tratamento de Erros (Código Limpo: Que Bruxaria é Essa?!?! - Parte 9)
Tags: javascript, cleancode
Published: 2021-09-30 14:57:10

Lançar erros é uma coisa boa! O que significa que algo no seu programa que não deu certo foi identificado com sucesso e avisará você ao desativar a função na "stack" atual, interrompendo o processo (no Node) e ainda notifica você com um rastreamento de pilha.

## Não ignore os erros capturados

Não fazer nada com um erro capturado não dá a você a habilidade de consertar ou de reagir ao dito cujo. Colocar o erro no console.log não é muito melhor às vezes já pode se perder em um mar de coisas impressas no console. Se você coloca qualquer pedaço de código em um `try/catch` significa que você pensa que um erro acontece ali e portanto você deve ter um plano, ou criar um plano, para quando ocorrer.

### Não é recomendável:

```javascript
try {
  functionThatMightThrow();
} catch (error) {
  console.log(error);
}
```

### É recomendável:

```javascript
try {
  functionThatMightThrow();
} catch (error) {
  // One option (more noisy than console.log):
  console.error(error);
  // Another option:
  notifyUserOfError(error);
  // Another option:
  reportErrorToService(error);
  // OR do all three!
}
```

## Não ignore promessas rejeitadas

Pela mesma razão você não deve ignorar os erros capturados do `try/catch`

### Não é recomendável:

```javascript
getdata()
  .then(data => {
    functionThatMightThrow(data);
  })
  .catch(error => {
    console.log(error);
  });
```

### É recomendável:

```javascript
getdata()
  .then(data => {
    functionThatMightThrow(data);
  })
  .catch(error => {
    // One option (more noisy than console.log):
    console.error(error);
    // Another option:
    notifyUserOfError(error);
    // Another option:
    reportErrorToService(error);
    // OR do all three!
  });
```

E aí? Gostaram? Até a próxima tradução! 🤗
Responsive Messaging App UI Dashboard HTML & CSS
Tags: javascript, html, webdev, css
Published: 2021-09-30 14:38:55

Design a clean Responsive messaging App UI or Chat ui Dashboard, using #HTML and #CSS .

In this video you will learn how to make a professional messaging app or chat app Dashboard Page with HTML and CSS . You will learn to create the good looking, chat ui dashboard page that you can use in your web applications and it is mobile friendly. This is a tutorial geared towards beginners, who want to learn HTML and CSS website design and development and also learn how to design a cool looking Chat ui dashboard template.

#Dashboard #chatapp #messagapp #HTML #CSS
Source Code :

GitHub Link :
https://github.com/Ui-geeks/Messaging-App-UI-Dashboard

Watch More Animation web Tutorials :
Glitch Text Animation Using Baffle.js | HTML & CSS 
https://youtu.be/YTXxbusCCr0

Infinite Marquee Animation Using jQuery.Marquee | HTML & CSS
https://youtu.be/33qPfl16tZw
This Hacktober, contribute to bringing Conversational AI - Dialogflow CX to Slack!
Tags: hacktoberfest, opensource, googlecloud, contributorswanted
Published: 2021-09-30 14:27:09

Hi Folks!
I'm pretty excited to announce that [Dialogflow CX - Slack SDK](https://github.com/Sampriti-Mitra/dialogflow-slack-sdk) is accepting contributions this Hacktoberfest!

## That's all well and good, but why do we need this SDK?
The motivation behind this SDK, was the slack community to be able to use dialogflow cx in the slack bots. 
Slack provides a multitude of rich features and APIs, including the bot kit UI, that gives life to conversations. 

## What is Dialogflow CX?
Google's [Dialogflow CX](https://cloud.google.com/dialogflow/cx/docs/basics) is a conversational AI development platform, suited for creating chat bot flows. The uniqueness and simplicity of this platform lies in defining conversation flows with the user through pages with intents and fulfillments.

## Why do we need a conversational AI for slack bots?
It's easy enough to create a [bot](https://api.slack.com/apps?new_app=1) on Slack and it also provides events subscription to any defined particular webhook which could be running on a Lambda function say, and that function could respond to the events sent and publish an appropriate message back to slack.

Now, the lambda function can further make use of Dialogflow CX to process the message event and get the intent of the conversation. Without an NLP, you'd probably be customising code in your lambda, checking for main keywords, to trigger a response webhook.

Dialogflow CX abstracts away the NLP for you.

## So ultimately it all boils down to... what?
Using Dialogflow CX you can get the intent of the conversation. Using dialogflow CX session context, you can maintain the flow of conversation between bot and user. And using this SDK you can have all of that on slack.

## That sounds cool, but why do you need contributions?
- As mentioned above, both Dialogflow CX and Slack provide a plethora of features, the full extent of which can be used in the SDK to build a strong base which the slack community can make full use of!
- Also currently, the SDK supports App Engine or Cloud functions deployment which can be extended to use other cloud providers as well!
- You are also welcome to add any issues/extensions as you feel would help.

## Great, great, how do I start contributing? And will my contributions be accepted?
You can start by checking out the [SDK](https://github.com/Sampriti-Mitra/dialogflow-slack-sdk) first. Do go through the [Contributing](https://github.com/Sampriti-Mitra/dialogflow-slack-sdk/blob/main/CONTRIBUTING.md) guideline as well.
All contributions are welcomed and will be accepted provided the follow the contribution guildelines.

So what are you waiting for? Contribute and earn your [Hacktoberfest](https://hacktoberfest.digitalocean.com/) Swag now!
Dealing with Merge Conflicts
Tags: opensource, github, git
Published: 2021-09-30 14:25:22

This week I continued learning Git by practicing creating branches and merging them back to main.

In my Static Site Generator [static-dodo](https://github.com/menghif/static-dodo), I added two new issues, one to [Add support for inline code blocks](https://github.com/menghif/static-dodo/issues/13) and the other to [Add support for a horizontal rule in Markdown](https://github.com/menghif/static-dodo/issues/14).

Instead of working on these issues in the main branch one by one, I created a branch for each and started working on these in **parallel**. After adding the necessary code to both branches, I decided to use `git merge` to merge both back into main.

`git merge issue-13 main`

The first one was an easy [fast-forward](https://git-scm.com/docs/git-merge#_fast_forward_merge) merge. This means that the **HEAD** of main is simply moved to the latest [commit](https://github.com/menghif/static-dodo/commit/bf1615cbc3cb73b1bfcc12328654383adeb27a3d) in issue-13.

`git merge issue-14 main`

This second one created a **conflict**. The reason is that on the same line where I added code for issue 13, I also wrote code for issue 14.
Git in this case put it all together while adding these helpful lines to the file:
```
<<<<<<< HEAD
Line from main branch
=======
Line from issue-14 branch
>>>>>>> issue-14
```

This time all I wanted to do was to keep both lines, so I simply deleted the `<<<<<<<`, `=======`, `>>>>>>>` lines. Here is the merge [commit](https://github.com/menghif/static-dodo/commit/1b95d5fe43e9a3baf85d308c8888c3e7ed35727f).

---
This was a simple exercise but it made me realize how powerful Git can be and I still feel like I have only scratched the surface of it. I am now getting ready to start [Hacktoberfest](https://hacktoberfest.digitalocean.com) and I hope to find some good projects to contribute to!
react-avatar-group: A responsive, automatically-generated group avatar component, powered by ui-avatars.
Tags: react, javascript, webdev, typescript
Published: 2021-09-30 14:25:13

This library is great for displaying the 'active' users of your React application. The responsiveness of react-avatar-group is meant to be similar to the Google Docs user icons. Some live examples are [available here](https://easybase.github.io/react-avatar-group/).

If you need a more [in-depth tutorial on using this package with actual, live users, check out this post here](https://easybase.io/4-reasons-to-use-websockets-for-your-next-project-with-example/#bonus-adding-user-avatars). Otherwise, here's a quick walk-through on how to use this package.

![react avatar group react-avatar-group](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/n8vdyhvnb12eh2qqt6yw.gif)

First, install the package:

```
npm install react-avatar-group
```

Then open up your React file and import the package, as follows:

```jsx
// App.tsx
import AvatarGroup from 'react-avatar-group';

export default function App(){
  <AvatarGroup
    avatars={[
      "James", 
      "Ava", 
      {
        avatar: "Jackson",
        fontColor: "FF00FF",
        tooltip: "This is a custom tooltip"
      }
    ]}
  />
}
```

The only required prop to the `AvatarGroup` component is `avatars`, which is an array of strings or [*IAvatar*](https://github.com/easybase/react-avatar-group#iavatar) objects, for more customization.

Another important prop is `max`. This will hide the avatars beyond a certain length with a custom overflow avatar (as seen in the gif above). `displayAllOnHover` will show all minions passed when the mouse hovers the avatar group, if there is a `max` number passed.

All the [props for react-avatar-group can be seen here](https://github.com/easybase/react-avatar-group#props).

Using these other props, your `AvatarGroup` may look like the following:

```jsx
import AvatarGroup from 'react-avatar-group';

export default function App(){
  <AvatarGroup
    avatars={[
      "James", 
      "Ava", 
      {
        avatar: "Jackson",
        fontColor: "FF00FF",
        tooltip: "This is a custom tooltip"
      }
    ]}
    initialCharacters={1}
    max={3}
    size={60}
    displayAllOnHover
    shadow={2}
  />
}
```
Calling all Developers!
Published: 2021-09-30 14:24:15

Hello Developers,

We are Hiring!

Hiring for Java Backend Developer in Germany #Permanent #position.

If you are interested or have any references mail me at suresh.pari@aguilaitconsulting.co.uk

If you are not interested or not looking for a change, Please Like, Comment, or Share, For a better reach.

" We do not provide any sponsorship to the job aspirants "
How to Parse /etc/os-release
Tags: python, parsing, howto
Published: 2021-09-30 14:12:42

### The Problem

As part of my daily tasks, I need to parse the */etc/os-release* file for information using Python. I have seen various attempts from other people, most of which are too complicated, too cumbersome, so I came up with my own.

Below is a sample contents.

```
NAME="Ubuntu"
VERSION="20.04.3 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.3 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal
```

### The Solution

The easiest way to parse this file is to you the PyYAML library. However, in some projects, my team does not have access to third-party libraries and have to stay within the Python 3.7's standard libraries.

After several attempts, I came up with a fairly easy solution: Use the `csv` library. Below is a code snippet which parses */etc/os-release* and returns a dictionary.

```python
import csv
import pathlib
from pprint import pprint

path = pathlib.Path("/etc/os-release")
with open(path) as stream:
    reader = csv.reader(stream, delimiter="=")
    os_release = dict(reader)

pprint(os_release)
```

Here is the output:

```python
{'BUG_REPORT_URL': 'https://bugs.launchpad.net/ubuntu/',
 'HOME_URL': 'https://www.ubuntu.com/',
 'ID': 'ubuntu',
 'ID_LIKE': 'debian',
 'NAME': 'Ubuntu',
 'PRETTY_NAME': 'Ubuntu 20.04.3 LTS',
 'PRIVACY_POLICY_URL': 'https://www.ubuntu.com/legal/terms-and-policies/privacy-policy',
 'SUPPORT_URL': 'https://help.ubuntu.com/',
 'UBUNTU_CODENAME': 'focal',
 'VERSION': '20.04.3 LTS (Focal Fossa)',
 'VERSION_CODENAME': 'focal',
 'VERSION_ID': '20.04'}
```

### How it Works

- The file contains lines of key=value, so I use the `csv` library to read it and specify the equal sign as fields delimiters.
- The `reader` will yield a list of (key, value) tuples
- The `dict` built-in turns that list of tuples into a dictionary

### Conclusion

After several attempts, I like this solution the best because it leaves the parsing to a standard library, which I assume well tested.
Don't be an asshole. 
Tags: beginners, 100daysofcode, coding, programming
Published: 2021-09-28 16:31:09

You can be a great developer and also be an asshole...

Don't be an asshole. Here are 3 reasons why soft skills are so important. 

---

Your team will consist of designers, product managers, and your hot #React skills will not get you far with people who do not relate to your skills as a developer or understand the value these skills brings. 

Show your communication skills, team building, people will notice you and care about your contributions.

---

Tech skills change and are replaceable. If you want to have a career in tech you need to bring more to the table! Are you supportive? Optimistic? Overall good person to be around and work with? These skills will serve you wherever you go and helps when it comes time for reviews.

---

You’ll become a problem solver. Software engineers are problem solvers. Don't focus on just hard skills, consider adding more empathy to your work. Start developing with the customer in mind. Soft skills will help you connect with human needs and make you more well rounded.

Empathy will get you far [as an employee and as a potential leader](https://www.forbes.com/sites/tracybrower/2021/09/19/empathy-is-the-most-important-leadership-skill-according-to-research/).

---

Did you enjoy this blog post? Check us out on Twitter [@nspiredTech](https://twitter.com/@nspiredTech) for more tech content!
Yopmail: Disposable email
Tags: codenewbie, testing, javascript, dev
Published: 2021-09-30 14:04:51

As a developer, we want to test our app either at signup instance or went an action is being performed on the client-side by sending emails. But often time than non, we are short of emails.
![alt text](https://media.giphy.com/media/26BkMgeeCjES3B4FW/giphy.gif?cid=790b761183969c6473093f44db09efd1234947127a97e38d&rid=giphy.gif&ct=g)
Today, let's talk about disposable emails aka `temporary emails`, the benefits, and how we can use them. Our focus will be on <mark>Yopmail</mark>

YOPmail’s free, quick, and feature-rich service guards you against spam. Protect your actual email, instead use YOPmail’s disposable one to sign-up wherever you want. YOPmail creates temporary inboxes of your choice instantaneously. Use Now &stay Protected!

---
![alt text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a9c6iorgmzwm24dtbwz2.png)

With yopmail, it's simply no registration, no signup, messages are kept for 8 days and messages are auto-generated. 

## How to use
🎯 Go to yopmail.com and enter the desired email in the section highlighted in red

![yopmail 2](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u8alvbmu0riwfyuq8c6q.PNG)

🎯 You should get something like this 

![yopmail4](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lzliylpaz3lcyuz8ce69.PNG)

🎯 Next, we test on postman on an existing project 
![yoomail 6](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r8nl8radny7irkl0n4ug.PNG)

🎯 <mark>Result</mark>
![yopmail 13](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gnk5rwz8mv9zgm0ls4ub.PNG)


       
## Benefits of a disposable email address
You avoid giving out your email address to protect it, whether for reasons of confidentiality or to avoid receiving spam.

## Conclusion
The next time you want to create content related to tech and sending email is required choose to use disposable email for security sake.

## Discuss 
what other temporary email that you have used during the development phase?
How to build 7,000+ REST APIs within 2 mins (Node.js + MySQL) !!
Tags: react, database, vue, hacktoberfest
Published: 2021-09-30 14:01:46

[NocoDB is an open source Airtable alternative](https://github.com/nocodb/nocodb) that instantly also generates REST APIs on any MySQL database! 

> **For this example :** 
We will be using a fairly large mysql database (close to 400 tables) as input to NocoDB and create REST APIs automatically. 

Without further ado-lets get into the gist of things.

## Pre-requisites
- Node.js or Docker
- An existing MySQL database


## Getting started 
### Using npx
```
npx create-nocodb-app
```

### Using Docker
```
docker run -d --name nocodb -p 8080:8080 nocodb/nocodb
```

## Now, let's see a quick demo

{% youtube wSsyMmNjlHc %}

In the demo, NocoDB automatically first inferred the database schema then generated REST APIs for each table-and-relation with Swagger documentation! All of this was without write a single line of code.

## Where can I find more details about NocoDB ?
{% github nocodb/nocodb %}

## Does NocoDB support other databases ? 
Yes - we do! 

NocoDB does support all of the below databases : 
- Postgres
- SQL-server
- SQLite
- MySQL & MariaDB.

## Please join our community
- 📣   Github : https://github.com/nocodb/nocodb
- 📣   Docs : https://docs.nocodb.com
- 📣   Discord : https://discord.gg/5RgZmkW
- 📣   Twitter : https://twitter.com/nocodb

## FAQs
- Is authentication built in ? Yes
- Is ACL built in ? Yes
- Is collaboration built in ? Yes
- Are webhooks built in ? Yes
- Is there an audit log ? Yes

## More : 
- [As an open source project how NocoDB got angel funded](https://dev.to/o1lab/how-my-open-source-project-got-angel-investment-from-its-user-12dp)
How does your team communicate bad news?
Tags: softwaredevelopment, agile, teamwork
Published: 2021-09-30 11:54:13

---
title: How does your team communicate bad news?
published: true
date: 2021-09-30 11:50:57 UTC
tags: softwaredevelopment,agile,teamwork
canonical_url: https://medium.com/chingu/how-does-your-team-communicate-bad-news-295a1bac227f
---

#### Sprint 5 — Thursday

![](https://cdn-images-1.medium.com/max/1024/1*UxlU7I27s2ErHhKrSmgt1w.jpeg)<figcaption>Photo by <a href="https://unsplash.com/@charlesdeluvio?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Charles Deluvio</a> on <a href="https://unsplash.com/s/photos/honest-feedback?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></figcaption>

Teamwork is based on communication that leads to effective & efficient collaboration. But it’s not just about telling everyone what they want to hear. It’s about providing information they need to hear.

> Part of being a good teammate is being able to deliver unwelcome news and provide feedback that may be uncomfortable.

The key to having difficult conversations with the team or your teammates involves:

1. Being **_respectful & empathetic_**
2. Realizing that communicating is more about **_listening_** than  **_speaking_**
3. **_Removing ego and emotion_** from the conversation
4. Continually asking yourself “ **_will this improve the team and our ability to meet our goal?_** ”
5. Viewing these types of conversations as a **_win-win_** instead of as a **_zero-sum game_**

High performing teams understand this and work just as hard at communicating as they do on coding.

![](https://cdn-images-1.medium.com/max/1024/0*DqE-0wKKlp0LxGKv.jpg)

### Before you Go!

Chingu helps you to get out of “_Tutorial Purgatory_” by transforming what you’ve learned into experience. The experience to boost your Developer career and help you get jobs. **_And it’s Free!_**

You can learn more about **Chingu** & how to join us at [https://chingu.io](https://chingu.io/)

* * *