teleren/devto huggingface dataset:
Underrated Articles on Dev.to Last week
Tags: top7, webdev, bestofdev
Published: 2019-04-11 03:42:12

---
title: Underrated Articles on Dev.to Last week
published: true
description: 
tags: icymi, webdev, meta, bestofdev
cover_image: https://thepracticaldev.s3.amazonaws.com/i/eip7baefpcfgsg0w9qj1.png
series: Underrated Articles
---
Hello friends! I'm back with another installment of underrated posts of last week! Let's check them out and see what the community has been up to. Here are my favorite underrated posts from last week.

## 1. Opportunities to Do Networking

Networking is important to anyone who wants to grow professionally as well as personally. In this article, Marcell Lipp describes the importance of and opportunities to do networking. The community is critically important to the software developer. Writing blogs, contributing to open source projects, joining meetups are some of the things suggested in this article.
{% link https://dev.to/rlxdprogrammer/7-good-opportunities-to-do-networking-as-a-software-developer-38cf %}

## 2. Steps to Take After You Finish Programming Courses

The key to learning a language once you’ve got the basics down is to think of any product you want to make and start making it. In this article, mkdev.me writes about things we should do after we finish programming courses.
{% link https://dev.to/mkdev/i-have-finished-programming-courses-what-s-next-five-pieces-of-advice-from-the-mentor-1bj7 %}

## 3. Importance of User Testing

User testing gives deep psychological and behavioral insights from users that will improve user interfaces and products. A brief introduction and importance of user testing is written in this article by Hibs.
{% link https://dev.to/sarahzing/what-is-user-testing-and-why-is-it-important-4on2 %}

## 4. Python Frameworks for test automation

There are several test automation frameworks available in the market which you can use to test any module of your project and save time. In this article, arnabroychowdhury tells us about some popular Python frameworks that are available for test automation. Advantages and disadvantages of each framework are explained well in this post.
{% link https://dev.to/arnabroychowdhury/top-5-python-frameworks-for-test-automation-in-2019-3pe3 %}

## 5. Brief Path of Being a Software Engineer

Nick Shulhin shares his journey of becoming a software engineer. He writes about changing his city and attending meetups in Google offices to polish his development skills. Posts like these are always a great read when written well.
{% link https://dev.to/nickitax/my-brief-path-of-being-a-software-engineer-e93 %}

## 6. Importance of Progressive Web Apps

Progressive Web Apps are user experiences that have the reach of the web and are reliable, fast and engaging. Kevin explains the importance and advantages of PWAs and puts down some convincing arguments for why one should consider having a PWA for one's business.
{% link https://dev.to/kevinmerisanu/why-your-business-needs-a-progressive-web-app-581d %}

---

Tell me in the comments about **your** favorite posts of last week that went underrated! Thanks for reading! ❤️
What's in your podcast rotation right now?
Tags: discuss, podcast
Published: 2019-04-11 02:40:48

---
title: What's in your podcast rotation right now?
published: true
tags: discuss, podcast
canonical_url: https://www.iamdeveloper.com/posts/what-s-in-your-podcast-rotation-right-now-47l2/
---

Curious what everyone is listening to for podcasts these days, whether it be technical or not. ~~I've been listening to Joe Rogan lately. They're long, but he has interesting guests from all walks of life. Maybe not everyone's cup of tea, but I've been enjoying his podcast.~~ **Update 2020:** I had only listened to a few of his podcast episodes but did not realize in other episodes that I had not listened to, they were causing harm and danger to folks. So definitely off my podcast list.

I also recently discovered the Script & Style podcast with Todd Gardner and David Walsh. Not sure why this one hadn't already popped up on my radar.

{%twitter 964166582623752193 %}

So what are you folks all listening to these days?
SQL vs Elastic Search for storing CRM Data
Tags: help, sql, elasticsearch, crm
Published: 2019-04-11 02:22:19

---
title: SQL vs Elastic Search for storing CRM Data
published: true
tags: help, sql, elasticsearch, crm
---
Hey everyone, 
First post here.I need some help choosing a cloud service to store CRM data for a website I'm building. At the least, I need user's to upload a csv of their customer emails (per group) and save that in a database. I'm very familiar with Firebase and I am using that for auth and RTDB, but I don't think it makes sense for storing the CRM emails and their group associations (ie - email and groupId). 

I'm leaning towards AWS Elasticsearch or Google Postgres SQL. Any recco's? 

Thanks.
Google Code Jam 2019 Discussion
Tags: competition, discuss
Published: 2019-04-10 22:20:03

---
title: Google Code Jam 2019 Discussion
published: true
description: 
tags: competition, discuss
---

I'd love to meet other people from the community who are competing in Google Code Jam this year.

- How did your qualification round go?
- Have you participated in previous years? How did that go?
- What's your process for tackling a code jam round? Do you play some music or work in silence?  Do you have coffee, redbull, water, ...? Anything you wanna share
I am a polyglot developer who does web front/back end, data science, native iOS, and a bit of ethical hacking, Ask Me Anything!
Tags: ama
Published: 2019-04-10 21:28:10

---
title: I am a polyglot developer who does web front/back end, data science, native iOS, and a bit of ethical hacking, Ask Me Anything!
published: true
tags: ama
---
Shallow comparison in Redux
Tags: javascript, redux, webdev
Published: 2019-04-10 21:20:55

---
title: Shallow comparison in Redux
published: true
description: 
tags: javascript, redux, webdev
---

One day at work I was trying to implement a new feature in my React/Redux project.  I created a new reducer and asked myself if I took reducers as pure functions for granted. I was creating reducers as a pure function and I have never really asked myself why it must be pure (I admit I'm ashamed). I thought the only reason for this is to accomplish the undo history option in redux easier.

In this blog, I will try to explain why reducer shouldn't mutate the app's state. I will use the spread operator syntax.


##Shallow comparison

Every time when you change something in the state you need to create a new object.That new object will have a new address in the memory. It means that we will pass an object by value, not by reference. You can see in the next JS code what does this mean.

```js
//by reference
let first = {a: 1};
let second = first; // second shows on the same space in memory as the first
first.a = 2;
first === second; // shallow comparison will log true

console.log(first); // {a: 2}
console.log(second); // {a: 2}

//by value
let firstValue = {a: 1};
let secondValue = {...firstValue}; // we pass firstValue by the value
firstValue === secondValue; // shallow comparison will log false
firstValue.a = 2;

console.log(firstValue); // {a: 2}
console.log(secondValue); // {a: 1}
```
In Redux, a reducer is a function which does a certain job (it changes the app's state ). You can see this in an example below.

```javascript
const initialState = {
    data: [],
    isError: false,
    isLoading: false
}

function exampleReducer(state = initialState, action) {
  switch (action.type) {
    case REQUEST_API:
      return { ...state, isLoading: true }; //creating a new state object
    case RESPONSE_API:
      return { ...state, isLoading: false, data }; //creating a new state object
    default:
      return state;
  }
}
```
Redux does the shallow comparison:

```js
oldState === newState; // true or false
```
If  a change has happened in the state (a new object is created) false value will be returned. This way, React/Redux knows if a component re-rendering needs to be triggered. It's more efficient to check this than doing a deep comparison or something else.

Sometimes we could encounter with deeply nested objects which can be hard to update. In this situation you can normalize the app's state or you can use immutable-focused libraries such as Immutable.js. Maybe I could write about this in some future posts.


##Conclusion

In the end, it is easier to test pure functions.

It's always good to look at things under the hood and try to understand why things are the way they are.

If you have some thoughts to share or I missed something fell free to comment.
Deploy A Gatsby Site to the Amplify Console With One Click
Tags: gatsby, aws, awsamplify
Published: 2019-04-10 19:56:14

---
title: Deploy A Gatsby Site to the Amplify Console With One Click
published: true
description: How to Deploy a Gatsby Blog to AWS with 1 click using the Amplify Console
tags: gatsby, aws, aws-amplify
---

![Amplify Console 1 Click Deploy](https://thepracticaldev.s3.amazonaws.com/i/r4h7jffg9s0y5bnkc2y1.jpg)

We recently released the [Deploy to Amplify Console Button](https://docs.aws.amazon.com/amplify/latest/userguide/one-click.html). 

You can add this button to your GitHub README.md file, blog post, or any other markup page that renders HTML to allow developers to deploy their application to the Amplify Console with 1 click.

Try it out below to launch the [Gatsby Starter Blog](https://github.com/gatsbyjs/gatsby-starter-blog) 👇.

[![amplifybutton](https://oneclick.amplifyapp.com/button.svg)](https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/gatsbyjs/gatsby-starter-blog)

It basically works like this:

You create a link that has the following URL structure:

```js
https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/username/repository
```

You can then wrap it in the button in markdown like this:

```md
[![amplifybutton](https://oneclick.amplifyapp.com/button.svg)](https://console.aws.amazon.com/amplify/home#/deploy?repo=https://github.com/username/repository)
```

What happens when an app is deployed in this way?

1. Fork the repo into your GitHub account
2. Create your Amplify Console app
3. Kick off your build

Once the app is launched, you are given a live URL.

To kick off a new build, clone the app, make changes locally, & merge the changes into master.

If the app being launched has an Amplify backend attached, you wil have the option to deploy the backend as well.

_To learn more about the Amplify Console, see the documentation [here](https://aws.amazon.com/amplify/console/)._

> My Name is [Nader Dabit](https://twitter.com/dabit3). I am a Developer Advocate at Amazon Web Services working with projects like [AWS AppSync](https://aws.amazon.com/appsync/) and [AWS Amplify](https://aws-amplify.github.io/). I specialize in cross-platform & cloud-enabled application development.
CSS-Vise: An exceptionally minimal pure CSS framework.
Tags: css, html, webdev, showdev
Published: 2019-04-10 19:34:49

---
title: CSS-Vise: An exceptionally minimal pure CSS framework.
published: true
description: A lightweight, minimal and mature vanilla CSS framework
tags: css, html, webdev, showdev
---
<img src="https://thepracticaldev.s3.amazonaws.com/i/3y9hpyoj0ne9oidtk0np.png"/>


A lightweight, minimal and mature vanilla CSS framework built with care. It can be used as a primary framework or as a secondary one alongside any other framework. Check [this demo page](http://appforgelab.com/vise/) for a quick showcase.

 
## Why Vise

There is dozens of CSS frameworks available but why Vise ?

- You may not need a **heavy** framework to build a great user experience. 

- You may want to use **more than one** framework on the same HTML document.

- You may want a **smarter** and **easier** to learn minimal framework.

- You need a library that is supported by **98%** of web browsers.


## Github
Vise's project on github https://github.com/Appforge-lab/CSS-Vise
Some really cool command line utilities which increase your productivity.
Tags: unix, shell, bash, commands
Published: 2019-04-10 18:20:06

---
title: Some really cool command line utilities which increase your productivity.
published: true
description: Awesome Unix commands that can make your life easier.
tags: unix, shell, bash, commands
---

There are a lot of command line utilities available in bash that can help you process millions of data in seconds. Some of them are

## Head
Head is a command line utility to print first part of files given in standard input
`head -1 data.txt` - prints the first line of data.txt file

[Read More](https://shapeshed.com/unix-head/)

## Tail
Tail is a command line utility to print the last part of files given in standard input. ie It works just the opposite of head

`tail -1 data.txt` - prints the last line of data.txt file

[Read More](https://shapeshed.com/unix-tail/)

## Cat
Cat is a command line utility for concatenating files and printing to standard output.

`cat data.txt` - prints the contents of data.txt file

[Read More](https://shapeshed.com/unix-cat/)

## Grep
Grep is a is a command line utility for printing lines that match a pattern.

`cat data.txt | grep "some-data"` - Search for `some-data` in the data.txt file and print the lines which contains the text

[Read More](https://shapeshed.com/unix-grep/)

## Shuf
Shuf is a command line utility which generates random permutations from input lines to standard output.

`cat data.txt | shuf` - Prints the content of data.txt shuffled

[Read More](https://shapeshed.com/unix-shuf/)

## Uniq
Uniq is a command line utility which can be used for filtering repeated lines in a file.

`cat data.txt | uniq` - Filtering repeated lines in data.txt file and prints it. 

[Read More](https://shapeshed.com/unix-uniq/)

## Cut
Cut is a command line utility for cutting sections from each line of files and writing the result to standard output.

`echo 'baz' | cut -b 2` - Prints `a` that is the secord character as specified in the cut.

[Read More](https://shapeshed.com/unix-cut/)

## Join
Join is a command line utility for joining lines of two files on a common field. 

`join file1.txt file2.txt` - Joins the data of 2 files based on some common field.

[Read More](https://shapeshed.com/unix-join/)

## Split
Split is a command line utility that can be used to split a file into pieces.

`split -l 200 split_me.txt` - Split split_me.txt to n files having 200 lines

[Read More](https://www.folkstalk.com/2012/06/split-command-examples-in-unix-linux.html)

## jq
jq is a command line utility used for processing JSON.

`jq '.' data.json` - Pretty prints data.json file

[Read More](https://shapeshed.com/jq-json/)

## awk
awk is a command line utility that searches for certain patterns and specified actions on that line.

[Read More](https://www.gnu.org/software/gawk/manual/gawk.html#toc-Part-I_003a-The-awk-Language)
Weekly Coding Challenge - Week #6 - Button
Tags: challenge, html, css
Published: 2019-04-10 17:50:05

---
title: Weekly Coding Challenge - Week #6 - Button
published: true
description: Week #6 of the Weekly Coding Challenge program - Button
tags: challenge, html, css
canonical_url: https://www.florin-pop.com/blog/2019/04/buttons-ui-kit/
cover_image: https://www.florin-pop.com/static/4e9ea629923a7a8c3ffb0dce618c1e21/ff993/buttons-ui-kit.png
series: Weekly Coding Challenge
---

Theme of the week: **Button**

### Description

"A button? 🤔" you might ask... Yes! A button! 😄

"But why?"

Because a button is one of the building blocks of any website/web application. Either you are on facebook or twitter or google, etc, you'll always find a button that allows you to interact with the application in some way, so this week we're going to build buttons; lots of buttons! emoji-smiley

If you want to participate in the Challenge, feel free to build any kind of buttons: 3D buttons, buttons with ripple effect, animating buttons, etc - the sky is the limit 🚀. Be creative! You know how much I value creativity! 👍

## Useful Resources

Check out my submission for this challenge: [Buttons UI Kit](https://www.florin-pop.com/blog/2019/04/buttons-ui-kit/).

See all the submissions in this [Codepen Collection](https://codepen.io/collection/nNgrwx/).

Are you interested in joining the challenge? :smiley: Read [The Complete Guide](https://www.florin-pop.com/blog/2019/03/weekly-coding-challenge/) to find out how. Don't forget to share your creation! :wink:

Happy Coding! :innocent:
WordPress - Hacked site redirections
Tags: wordpress, hacked, redirection, malware
Published: 2019-04-10 17:40:34

---
title: WordPress - Hacked site redirections
published: true
description: How to identify and fix highjacked WordPress website redirections
tags: WordPress, hacked, redirection, malware
---

## The problem

I have encountered a project where the WP (WordPress) website was redirecting to some "ad" websites.

## Identifying the problem

By debugging, from Google Chrome `Sources` panel with `pause script execution`, we identify the redirection occurring from a third party script injected in `.php` files inside the project.

## Root cause

A plugin update [Related Posts Plugin](https://wordpress.org/plugins/yuzo-related-post/).

The WP admin updated the plugin after an update notice without knowing the plugin actually became a "malware" that highjacked websites.

Of course, the source code is not available from the plugin website so it is hard to check the integrity of code beforehand. And after checking the WP page of the plugin the status is `This plugin was closed on March 30, 2019 and is no longer available for download.`, but the plugin owner has pushed an update on April 10, 2019 at around 7PM (Paris time) (Covering up the tracks?).

## Fixing the problem

### 1) Plugin removal

Plugin removal might fix the problem only if it didn't affect external files to the plugin.

### 2) Cleaning by hand (unsafe)

In my case, the "malware" succeed to change files at `${ROOT}/wp-includes/`. So I had to clean all the `javascript` injections "by hand".

### 3) Backup

If you have a `backup` of the database before the infection, I advise to delete the project and reinstall the project and feed `backup`.

## Avoid plugin malware

1. Never update plugins on production environment
2. Do backup
3. Check plugin source code before installing

Sources:
[Redirection malware third party link](https://hellofromhony.org/counter)
[Gist of similar malware](https://gist.github.com/stefan2904/a31a676b6fc202d2c6428acd728ad791)
[Plugin incriminating StackOverflow post](https://stackoverflow.com/questions/55610548/vulnerability-in-closed-plugin-yuzo-related-posts)
[Related hacked problem](https://stackoverflow.com/questions/50693160/wordpress-hacked-script-is-injected-into-wp-emoji-release-min-js-jquery-js)
Implement platform security
Tags: azure, security
Published: 2019-04-10 16:10:58

---
title: Implement platform security
published: true
description: Implement platform protection
tags: #Azure, #Security
---
**Configure custom domains for PaaS**
- Every domain name in Azure AD is either an initial domain name or a custom domain name
- Each Azure AD instance comes with an initial domain name in the form company.onmicrosoft.com
- The use of custom domains helps ensure that your internal and external URLs are the same, which provides the following benefits:
    - Your users will have an easier experience, which builds user confidence
    - The links contained in applications will work without additional configurations
    - Some configurations will work only if you have custom domains

**Configure update domains**
- Microsoft does not automatically update your IaaS VMs
- Update domains manage intentional moves to take down one (or more) of your servers to provide critical updates
- To provide redundancy to your application, we recommend that you group two or more virtual machines in an availability set
- The underlying Azure platform assigns an update domain and a fault domain to each virtual machine in your availability set
![Alt text of image](https://thepracticaldev.s3.amazonaws.com/i/8omy492do9bhf6pmgz5j.png)

**Implement Azure Functions updates for serverless computing**
- Azure Functions are an example of serverless applications that can power a single-page app 
- One of the most common update methods is using a PUT statement
- Performing a PUT operation on a specific Azure UDF resource replaces the entire UDF resource
- Another method for deploying and updating your function is by using App Service continuous integration
- The following deployment sources are currently supported:
    - Bitbucket
    - Dropbox
    - External repository (Git or Mercurial)
    - Git local repository and GitHub
    - Microsoft OneDrive
    - Azure DevOps

**Configure security for serverless computing**
- Serverless computing moves the responsibility for server management from the application owner to the platform provider
- This helps eliminate security issues, such as servers with known security variabilities that have not been updated
- However, there are some security issues and challenges in serverless computing, as you're still responsible for:
    - Your application code
    - Data management
    - Data encryption
    - Identity management
    - Authentication/authorization
    - Configuration of services and role-based access control (RBAC)
 
**Configure container security**
- Networking in a container deployment is a special area that you must address in security scenarios
- A container image is a lightweight, standalone, executable package that includes everything needed to run an application
- When an app is containerized, the app and the components needed to run the app are combined in a single image
- Containers are not inherently vulnerable
- The kernel is shared among all containers and the host
- An attacker who gains access to a container should not be able to gain access to other containers or the host
how to handle toxic junior developer ? 
Tags: nontechnical
Published: 2019-04-10 16:01:18

---
title: how to handle toxic junior developer ? 
published: true
description: [a couple month ago i worked with my junior in my college in a small developer team. this guy actually could work well as a front end same as me, but the problem is this Guy always overproud of his skill and always mock me and said that i'm a cancer in the team. Actually i'm doing nothing just as usual and the project manager said my progress is okay. But this guy always said that he is better than me, he said that was more professional than me. How to handle this guy ? Sorry for bad english...]
tags: non technical
---