teleren/devto huggingface dataset:
How to Escape Tutorial Hell. 
Tags: codenewbie, beginners
Published: 2020-04-20 04:37:19

For a long time, a blank text editor was a scary thing to see.  Even after  a year of learning to 'code' I would have no idea how to start a new project. I was overwhelmed by what I didn't know and to compensate for this, would quickly jump to a tutorial video to 'learn' more.  I loved the instant gratification of completing a project via a video-walkthrough so much, that I had put off building any projects of my own. As I read more blog posts and watched more videos I learned a lot but my actual finger-to-keyboard coding skills lacked tremendously.  This is what I would define as 'Tutorial Hell'.  

Let me start by saying that I love tutorials, they are amazing resources and should definitely be apart of your learning process.  But I do think that they can give you a false sense of knowledge, especially if you are in the infinite loop from one tutorial to the next.  

Personally I knew I needed to get out of this loop and take a break from video tutorials, here are the steps that I took to continue learning and escape 'Tutorial Hell':

###Read Documentation

Want to get started learning a new language or maybe dabble in the latest framework?  Read the documentation from the source.  Often times documentation will provide a quick walkthrough/get-started section that will give a quick introduction.  Once you get through this section, build something immediately, even if it's another to-do app, and if you get stuck take the time to reference the documentation. 

###For a time, try to use only Stack Overflow and MDN when stuck

Now hear me out, I know there are so many other great resources out there. But I truly believe that limiting my resources for a time, challenged me to think more critically.  I was forced to try new things and while I did fail more,  my understanding of a certain topic was strengthened.

###Start with what you know

When it comes to starting a new side project or building out a new app that you're excited about. First off, in the words of Shia LaBeouf, 'JUST DO IT!', and secondly start building with what you know and then add on to that. After all, Google is a developers best friend. 

###Don't be afraid to ask for help

It can easy to feel like you're alone in this process, but thankfully there are amazing online communities to reach out to and connect with. If you're ever stuck or are struggling for hours on end, reach out to someone or write a post on freeCodeCamp, Stack Overflow, or even here on DEV!  Everyone needs help, and let's be honest you probably just forgot a comma😜.


###Now go forth and conquer!
Data Storage Security: 5 Best Practices to Secure Your Data
Tags: database, security, startup, devops
Published: 2020-04-20 04:24:27

Data is undoubtedly one of the most valuable assets of an organization. With easy-to-use and affordable options such as cloud-based storage environments, storing huge amounts of data in one place has become almost hassle-free. However, space is not the only concern for businesses any more.

With only [5% of companies’](https://www.varonis.com/2019-data-risk-report/) folders properly secured, on average, data storage security is now one of the topmost priorities for enterprises.

First, it is important to understand the different [security risks against data](https://cypressdatadefense.com/blog/business-data-breach/). There are threats related to physical access to the systems in which data is stored.

**For example:**

When selecting the physical location to store confidential data, make sure that the place is difficult to tamper with or retrieve data from it.

Besides physical threats, there’s a large scope of cybersecurity threats that target data stored on networks, servers, and other cloud infrastructure. To deal with such security breaches, here is a list of data storage security best practices that you should consider.

**5 Data Storage Security Best Practices**

1. **Enforce Strong Data Storage Security Policies**

Each organization should create, enforce, and update a comprehensive data storage security plan. To be effective, data storage security policies need to be implemented everywhere, from the office, mobile devices, storage devices, and throughout the on-premise infrastructure and across the web.

Data storage security policies help maximize your data security by helping you identify sensitive data, critical assets, and implementing strong security controls to monitor and safeguard each level of data classification.

Want to learn more about how to enforce data storage security policies?

Let’s take a closer look:

**Know What Data You Have**

The first step of implementing data storage security policies is identifying what data you have. Ensure a clear understanding of the regulatory and privacy requirements of your organization. Assess the data you have, determine what is confidential and what might not be as important to your business.

By understanding the risks associated with different levels of data, you will be able to determine what needs more stringent security policies and what can be stored with basic cybersecurity measures.

For instance, sensitive information that is stored digitally such as intellectual property, personal identifying information about employees or customers including protected health information (PHI), social security numbers, and/or financial details like credit card details needs to be properly secured.

**_Read the full blog at [CypressDataDefense.com](https://cypressdatadefense.com/blog/data-storage-security-best-practices/)._**
How to setup up a local copy of jitsi video conferencing
Tags: linux
Published: 2020-04-20 04:21:32

---
title: How to setup up a local copy of jitsi video conferencing
published: true
description: We look into setting up a local copy of jitsi video conference solution on a clean Debian install. We also try it out and see how it impacts the installed server.
tags: Linux
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/x15x94xdya3e7nz0xnag.jpg
---

{% youtube bJx_YeAp18E %}

We look into setting up a local copy of jitsi video conference solution on a clean Debian install. We also try it out and see how it impacts the installed server.
Gatsby: A React-based static-site generator
Tags: gatsby, react, Generator, project
Published: 2020-04-20 03:28:53

Gatsby is a React-based static site generator powered by GraphQL.
To create a new Gatsby project, we can, first,install the Gatsby CLI via npm:
``` bash
npm install -g Gatsby
```
From here, we can create a new Gatsby project:
``` bash
gatsby new [rootPath] [starter]
```
Starters allow us to quickly spin up different types of Gatsby sites.  There are a number of Gatsby starters right within the GatsbyJs Github repo (https://gihub.com/gatsbyjs).  For example, if you wanted to create a Gatsby project with a blog boilerplate, you could do the following:
``` bash
gatsby new my-blog https://gihub.com/gatsbyjs/gatsby-starter-blog
```
If we cd into the newly created project’s root directory, we can execute gatsby develop to start the development server.  
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/u1oswuy7hajdus25y82p.PNG)
Eventually, amongst the text in your terminal, you should see the following:
``` bash
You can now view gatsby-starter-blog in the browser:

http://localhost:8000/
```
There’s much more we could talk about, but we’ll stop here to give you a chance to get your hands dirty.  😊
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/r9m6qfpj7xmn8qpt6x93.PNG)
Scrum 101
Tags: scrum101, scrum, agile, scrumbut
Published: 2020-04-20 03:24:40

Almost everyone I've worked with has heard of Scrum or Agile way of working. Some have adopted Scrum partly [(ScrumBut)](https://www.scrum.org/resources/what-scrumbut), while others have done so fully by adhering to the rules of Scrum.

## Scrum is a framework, not a process or technique
It is common in the workplace to see the application of Scrum as a process alongside other agile or traditional techniques. I do not have the metrics to show the success and failure rates of this pattern. Nevertheless, I've had a first-hand experience on [(ScrumBut)](https://www.scrum.org/resources/what-scrumbut) projects, and I can say that these projects failed or were delivered with low quality.

Let's say your organization is agile and has adopted several agile methods, for example TDD, Kanban, XP, Lean, etc. These agile methodologies can run smoothly inside Scrum. Scrum is like a container for running processes or techniques, its events allow you to use techniques within it, provided business value is created.

## Scrum is **immutable**
Unfortunately, this is very common today, you hear things like "we use Scrum but...". Another example is a Scrum Team with titles like "Project Manager", "Architect", "Lead Developer" etc. This violates the rules and values, the glue that bind Scrum components together. 

Scrum is immutable, that means its values and rules should remain unchanged. It should not be used in part. To reap the full benefit of Scrum, it is recommended that it is adopted fully. You either use Scrum in full (properly) or not at all.

>"The truth will set you free. But first, it will piss you off." - Gloria Steinem.

While Scrum respects domain expertise, there can be ONLY 3 roles in a Scrum Team: The **Product Owner**, **Scrum Master** and **Development Team (Member)**. Anyone in a Scrum Team who is not the Product Owner, or a Scrum Master is a Member (software developer, Business Analyst, Architect etc.) irrespective of their expertise and title in the organization. No Leads, Managers, Architects, Testers and what have you. The Development Team works together as a cross-functional unit. One for all, all for one.

## Scrum does not take your titles away.
Within an organization, your title or expertise is part of your identification and Scrum is fine with that. But within a Scrum Team, you are a Product Owner, Scrum Master or a member of the Development Team. Nothing more, nothing less.

And that my friend is **Scrum 101**.
Let's Scrum on together and build great products and people.
[Solved] Symfony json rest api normalizer how use it?
Tags: help
Published: 2020-04-20 02:55:10

---
title:[Solved] Symfony json rest api normalizer how use it?
published: true
tags: help
---
Hello,

I have in my rest api complex json, so each time i have to format array for serialization output for avoid useless information. 

i use groups properties of symfony serializer but i have many endpoints.

I saw normalizer is good idea to use for this case? if yes i have to use one normalizer by contoller?

Thanks

Edit:
finally for best solution is to combine normalizer with groups, and in you normalizer with context parameter you adapt you response according groups to serialize
Harry Potter - Golden Snitch Animation
Tags: svg, greensock, animation, beginners
Published: 2020-04-20 02:33:07

---
title: Harry Potter - Golden Snitch Animation
published: true
description: Cool harry potter golden snitch animation
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/gl0bjjxk46jxq6ymvabn.png
tags: svg, greensock, animation, beginners
---

Hey guys,

I created a cool(ish) animation in Codepen which I have shared below.  If you would like me to go into detail on how I made it then just leave a comment.  

Feel free to use it whatever way you want to!

{% codepen https://codepen.io/PaulRyan17/pen/bGVeeZw %}

## Conclusion

Any questions on the above, feel free to contact me on my socials! :heavy_heart_exclamation:
 
| :guardsman: [Insta](https://www.instagram.com/paulryancodes/) | :eyes: [Twitter](https://twitter.com/PaulRyan7) | :speech_balloon: [Github](https://github.com/PaulRyan17) | :thought_balloon: [LinkedIn](https://www.linkedin.com/in/paulryan9/) | :collision: [Youtube](https://www.youtube.com/channel/UCf4AtM9ldMfBsO0_bbYWvfw?view_as=subscriber) |:mailbox_with_no_mail: [Website](https://www.paulryancodes.com/)
| -- |--| --| -- | -- | -- |
State Management in Pure React: useContext Hook
Tags: react, webdev, beginners, tutorial
Published: 2020-04-20 02:20:48

Hello, everyone 👋, I hope you are doing great 😊.

So, today you are going to learn all the fundamental concepts of ``useContext`` Hook in this article.

Before you start, there are some rules you need to follow to use Hooks 😟. Thankfully the React Team has provided an ESLint Plugin called [eslint-plugin-react-hooks](https://www.npmjs.com/package/eslint-plugin-react-hooks) that enforce these rules when using Hooks 🤩.

## Context
Context allows you to pass the data to the child deep down the tree without having to pass it through every component in between via props.

A trendy use case of context is theming.

There are only three steps you need to follow to implement context.
1. Create a context object.
2. Provide a context value.
3. Consume a context value.

##createContext Method
To create a context object, you need to use ``createContext`` method.

{% gist https://gist.github.com/bipinrajbhar/4b2ffba0e946e69b602774231eede8f9.js %}

The initial state is **only** used when the component does not have a matching provider.

The context object contains a Provider Component and a Consumer Component.

## Provider and Consumer Component
The Provider Component is used to set the context value and a Consumer Component that is used to get the context value.

{% gist https://gist.github.com/bipinrajbhar/4b3f37ca10c748b0c75c43b586e63bda.js
%}

## useContext Hook
You can use the ``useContext`` Hook in the functional component to access the Context value.

If you use the ``useContext`` Hook, you do not need to wrap it with a Consumer Component.

The ``useContext`` Hook takes a Context object as an input and returns a Context value as an output.

{% gist https://gist.github.com/bipinrajbhar/9e8db5111eff801bdfb0ad8ced0efdf0.js
%}

Example
{% codesandbox 1w1b8 %}

Now, you have learned all the fundamental concepts of ``useContext`` Hook 🤘.

Thanks for reading! My name is Bipin Rajbhar; I love helping people to learn new skills 😊. You can follow me on [Twitter](https://twitter.com/Bipin_1598) if you’d like to be notified about new articles and resources.
Standardization | Normalization
Tags: datascience, learning, statistics
Published: 2020-04-20 02:18:56

# Preprocessing Data

First things first! When we come across some dataset (*raw data*), it is recommended to follow these steps to understand and, if necessary, adjust your data for further analyses:

1. Read Data
2. Checking for missing values, categorical data, and outliers (and what to do with them)
3. Apply preprocessing techniques as necessary

Some of the techniques are:

- Mean removal
-  Standardization
- Normalization
- Binarization
- One Hot Encoding
- Label Encoding

In this post, I will cover the differences between Normalization and Standardization 🤓

# Standardization vs Normalization

One of the things that we do is to understand what type of variables (which we call *features*, simplifying) our dataset have and in what scale/unit/range/magnitude they are presented. 

If the features have a significant variability, we can use the concept of *feature scaling* as features with high magnitudes will weigh in a lot more in the distance calculations than features with low magnitudes. To address that, we need to bring them to similar magnitude levels by using methods such as standardization and normalization.

## Normalization

This method scales the numeric variables in a certain range, usually from **0 to 1** or **-1 to 1** when having negative values. It is also known as Min-Max scaling.


![03_MaxMin.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1587344789852/BdWJ0Ckv5.png)

Through this method, we calculate the proportion of the distance between the value itself to the minimum value, and the distance of the maximum and minimum values (so we need to be careful regarding *outliers*).


![03_normalize.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1587347777316/JrvO_r7Yg.png)
*not nice to have outliers right?*

## Standardization

This method uses the *z-score* formula to scale the values, resulting in a dataset of zero mean and unit variance.


![03_z-score.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1587346298496/KFhTFVsEr.png)

 For a brief explanation, the *z-score* represents how many standard deviations a value is from the mean.

![03_standardize.png](https://cdn.hashnode.com/res/hashnode/image/upload/v1587346890696/51RBxmcXn.png)
*thanks to [Math is Fun](https://www.mathsisfun.com/data/standard-normal-distribution.html)*

---

###### Quick notes:

###### - I am not a big fan of too long articles as I find it easier to write and absorb information by smaller ones. So I would rather split information along more articles about the subject.
###### - Writing has been challenging yet rewarding as it is a good way to learn as well.
###### - Any comment that can improve my writing/knowledge is more than welcome!

---

###### Thanks for reading 😊

---


Also posted on [Hashnode](https://cafecotech.hashnode.dev/standardization-or-normalization-ck97uo4eg01m7f3s1tip0btlc)
The Zero Customer Heuristic
Published: 2020-04-20 01:34:19

When you're building some MVP or [SLC](https://blog.asmartbear.com/slc.html) it's tempting to over-think technical choices early on. It's tempting to build in all kinds of features and infrastructure.

"People might want a PDF," you think to yourself, "so I'll also build and deploy a PDF rendering server!"

"I'll need a way to measure everything my ten million customers are doing at scale so I'll deploy this elastically scaling mega analytics doodad framework server and hook it up to every user action in my app!"

![cricket chirp gif](https://mccormick.cx/gfx/blogref/joplin/89aeefddea4448df84a86c2db9a7ff4c.gif)

It's much easier to imagine new features than it is to actually build them. Before you know it there is a vapourware castle shimmering on the horizon.

I've found a useful thought pattern to combat this type of over-engineering. For every technical question just think to yourself:

 > What will my **zero customers** think of this?

When you are building the first version of something there are literally zero users. Unless it is the core function of the thing you are building, making a PDF rendering server or deploying a giga-scale analytics system is not what you should be doing. Your zero users don't care about those things! Getting even one person to actually use your thing and tell you if it's good or not is what you should be doing.

Let's protect the most scarce resource of all: our own time. At the start of the project let's make a bee-line towards **shipping** the best possible implementation of the core function of the software so we can find out if its useful and good.
Web Components
Published: 2020-04-20 00:51:39

Web Components are utilized primarily as a way to save time and enable developers to use pre-written code and incorporating it into their webpages. The implications of this allows consistency across platforms and gives the ability for developers to follow a theme throughout their webpages. The most common method for analyzing web components would be to right click on a webpage and click "inspect", which will essentially show some of the building blocks of the page.

Web Components are primarily divided up into Custom Elements, Shadow DOM, HTML Templates, and ES Modules. Web components can be difficult to identify, but there are notable pieces of information that can be used to determine where the web component is from or leads to. For example, when inspecting youtube web components, all lines begin with "yt" followed by the actual web component phrasing. However, not all web components can be as easily identified, sometimes websites have their components hidden to prevent such copying, namely (understandably) in many government websites. 

Web Components are a wonderful piece of knowledge to become accustomed to, and businesses could certainly benefit by adding them to their webpages. With consistent theming and efficient web components, a business can very quickly express themselves in a professional manner and display the kind of user friendliness that would come off nicely for customers.

Youtube Video: https://youtu.be/jc9kRim0qHE
What is function currying and why you should care
Tags: javascript, vue, react, functional
Published: 2020-04-20 00:46:37

There are a lot of patterns in Javascript but I find this one particularly useful.

The pattern is function currying. Learning this concept helped me get a better understanding of the power of the language and functions in Javascript.

### What is function currying?

This is when you create a function, that simply returns another function. 

> Easy, right?

```js
const curry = () => {
  return () => {
    return 'Some Value';
  }
}
```

### Why should you care?

Learning this pattern allows you to make your programs more flexible, cleaner, easier for fellow developers to consume, and easier to test (I wont go into all of these in this blog post).

#### Example time!

Let's say I know I'll need to add something. Maybe I'll need to add something by 1, 3, ....

We can use currying for this

```js
const add = (x) => {
  return (y) => {
    if (y !== undefined) {
      return x + y;
    }
    
    throw new Error('Please provide an number as an argument');
  }
}
```

So then we can use this in our code.

```js
const addOne = add(1); // addOne is just a function at this point, console.log it, I know you want to.

addOne(2) // returns 3

addOne(); // UH OH...Error thrown, because we're good developers and provide feedback to using our functions!

const addFive = add(5);

addFive(1); // returns 6
```

Now, everyone is an expert in function currying in Javascript, let's move on.

> But Scott! Whats the difference between this and higher order functions.

Great Question!!!! Simply put HOF take a function as an argument while function currying is when a function returns a function. If you want to learn more about this, comment below! 

A lot of this patterns power comes from flexibility, but also, leveraging `closures` to isolate and access variables in scope.

From our example above:

```js
const add = (x) => {
  return (y) => {
    if (y !== undefined) {
      return x + y;
    }
    
    throw new Error('Please provide an number as an argument');
  }
}
```

We can access `x` from inside the return function at a later date if needed, but still holding onto its value when it was first invoked. This can be useful when iterating over large lists and needing to reference some specific data in one of the rows at a later point in time.

***Paste some use cases below for others to see how this is used in the wild! I would love to see them!***

Thanks for reading and I hope you'll now feel comfortable enough to use this pattern next time you're working on a problem.
Speech Recognition with Python: Comparing 9 most prominent alternatives
Tags: python, speechrecognition, voiceassistant, programming
Published: 2020-04-20 00:24:15

*Learn which of the 9 most prominent automatic speech recognition engines is best for your needs, and how to use it in Python programs.*

---

Automated Speech Recognition (ASR) is the necessary first step in processing voice. In ASR, an audio file or speech spoken to a microphone is processed and converted to text, therefore it is also known as Speech-to-Text (STT). Then this text is fed to a Natural Language Processing/Understanding (NLP/NLU) to understand and extract key information (such as intentions, sentiments), and then appropriate action is taken. There are also stand-alone applications of ASR, e.g. transcribing dictation, or producing real-time subtitles for videos.

[Continue reading »](https://www.ml4devs.com/articles/speech-recognition-with-python/)