teleren/devto huggingface dataset:
Anna Coding Front-end Weekly News Week - 19
Tags: Android, serverless, SpringBoot
Published: 2020-05-04 19:21:39

1. Android 11 Developer Preview 3.0 released: Add new wireless debugging function
2. Oracle patch or speed up Linux kernel boot 6% -49%
3. LibreOffice 7.0 will remove support for Adobe Flash
4. Spring Boot 2.3.0.RC1 is now available
5. Serverless Framework 1.69.0 released

https://annacoding.com/news/OQh6Lon30nVYZ9mUEBlLA/Front-end-Weekly-News-Week-19?time=2020-05-02
Best Programming Language to start with
Tags: podcast, programming, computerscience, webdev
Published: 2020-05-04 19:14:31

{% spotify spotify:episode:1ud9iWMeyCf1HwuOx7s8zO %}

## Steps:

1. Explore
2. Find what interests you
3. Build projects
4. Programming Language strengths are application specific, each one it good at what it does well.

So there is no Best Programming Language, there is only 'Most used Programming Language' of a certain period. Thank you for listening. What programming languages do you use? I use Python and JavaScript mostly.
Anna Coding Front-end Reading in Depth Week - 19
Tags: angular9, vue3, node
Published: 2020-05-04 19:09:52

1. Angular Material Tooltip Example With Angular 9
2. New features in Vue 3 and how to use them
3. Advanced Node.Js: A Hands on Guide to Event Loop, Child Process and Worker Threads in Node.Js
4. Web Crypto API: A Low-Level Interface for Internet Security

https://annacoding.com/news/4SseaI8ZUK67PeHp7hV21t/Front-end-Reading-in-Depth-Week-19?time=2020-05-02
Show us your beautiful plants for your workspace 🏵️
Tags: discuss, plants
Published: 2020-05-04 19:04:57

---
title: Show us your beautiful plants for your workspace 🏵️
published: true
description: 
tags: discuss, plants
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/6w6qesn822hv3vkptrwt.jpg
---

What are your plant names located around your workspace? Drop pictures in comments with this names ! 🏵️🌿🌾

Photo by [Joe Hepburn](https://unsplash.com/@thatjoebloke?utm_source=unsplash&utm_medium=referral&utm_content=creditCopyText) on Unsplash
Using absolute imports in React app
Tags: react, webdev, javascript
Published: 2020-05-04 19:03:43

Some time ago, I found out how to use absolute imports in React. I regret that I found it so late because it's extremely handy when it comes to bigger projects with nested files structure.


Using absolute imports means instead of importing React component like this: ` import Button from '../../../Button/Button' ` you can do it like this: ` import Button from 'components/Button/Button' `.

Here is a quick tutorial of how to get it going with Create React App 3.

* Create a `jsconfig.json` file in your project's root directory.
* Paste that JSON config
```
{
  "compilerOptions": {
    "baseUrl": "src"
  }
}
```
The above snippet will instruct Webpack to use the `src` directory as a base one.

* Done. From now you can use absolute imports inside your whole project
Docker Experience
Tags: watercooler, webdev, docker
Published: 2020-05-04 18:57:34

I'm working on a project to reduce Docker’s resource usage.

Please fill out this 5-min survey to help me improve the Docker development experience!

I'll be raffling a $150 Amazon gift card as thanks.

[https://forms.gle/2ggShw236EjBdtxn7](https://forms.gle/2ggShw236EjBdtxn7)
AI is a threat! Really? Part - 2
Tags: ai, machinelearning, javascript, datascience
Published: 2020-05-04 18:52:43


Read the part 1 here: {% link https://dev.to/tharunshiv/ai-is-a-threat-really-4149 %}

## Where do you see AI in the future?

  If you are one among those, you would say ‘Robots destroying and taking over humans, fire everywhere‘. LOL, that could happen, but believe me, we are damn far away from it. In the discussion section of my previous post, we can see that few valuable points have been put forward towards how AI is indeed a threat. 

  But if we think about it, anything that mankind is coming up with has always lead us into a threatful situation, but still we never stopped using them. One of the reasons were because of the pros of these inventions ( debatable ). So as long as we have a controllable AI which we can leverage for our benefits, we're good to go. ( Disagreements are welcome )

## Is AI overhyped?

Not at all , the possibilities of AI are not yet completely explored.
So let us look at some things that AI can achieve in the near future:

### 1. Explainable predictions

Just understanding a user’s past from his data could not yield the desirable results. So the AI would be developed to understand the cognitive/logical path of reasoning that leads to a certain decision. This would make the predictions more error-free and hence accurate. So the predictions would be reliable.

### 2. Medicines and surgery

- AI would be developed to assist surgeons on their surgery which would lead to a higher success rate at Medicine.
- AI would be used to communicate with patients whose disability restricts them from communicating with the world.
- AI would be used to discover new medicines without the unnecessary need of testing it on animals and humans, that too pretty quickly ( 100 times faster and efficient).

### 3. Emotional Analysis

Behavioural insights are meaningless without understanding their emotional impact. AI now is able to suggest songs simply based on your mood patterns, for real. Emotional AI will largely depend on human psychology, facial expressions, voice modulations, changes in brain waves, etc. to understand what you exactly want and suggest products or services accordingly (anti-spam) .

### 4. Real–time risk detection:

- Whether it is stock market analysis or bitcoin price prediction, the real time prediction would be of great help for companies that completely depend on these. The latest AI technology will be able to turn real time updates into instantaneous business insights.
- It would report you on possible threats that may occur any sooner, based on which businesses and their clients will be able to make effective decisions.

These are just a very few applications of AI. Than debating that it is bad, we can use AI constructively towards development purposes. **Also let me know the most awesome application of Artificial Intelligence, Machine Learning and Data Science that you've come across in the discussions.**

Have a great day ahead!

This article is originally written at https://tharunshiv.com
Changelog generation released for commitizen
Tags: python, semver, changelog, conventionalcommits
Published: 2020-05-04 18:44:40

---
title: Changelog generation released for commitizen
published: true
description: Latest version of commitizen supports generation of the changelog
tags: python, semver, changelog, conventional commits
---

After a lot of work, time and effort, we were able to release [commitizen v1.19](https://github.com/commitizen-tools/commitizen) which includes **automatic changelog generation**.

```bash
pip install -U commitizen
```

With this release the cycle is complete, commitizen now supports:

- custom commit rules
- automatic version bump based on the rules
- automatic changelog generation
- git hook to check that the commit is valid

By default the system is using [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/) but you can come up with your own rules.

## Usage

For starters the configuration is straightforward, first, start with:

```bash
cz init
```

It will prompt the user for information about the repo and based on that it will generate the `toml` configuration file.

Once that is done, after you've done some commits complying with the rules, simply run:

```bash
cz bump --changelog
```

That's it.

You can execute that command in your CI and then push the changes.

For more in-depth explanations, check the [documentation](https://commitizen-tools.github.io/commitizen/).

I hope this tool helps you automate your systems and relief you of some repetitive tasks.

Check [commmitizen's github](https://github.com/commitizen-tools/commitizen) for some github actions, the repo is auto publishing docs, releases to pypi, testing, etc.
Getting Familiar with GraphQL 
Tags: webdev, graphql, codenewbie, react
Published: 2020-05-04 18:16:16

---
title: Getting Familiar with GraphQL 
published: true
description: 
tags: #webdev, #graphql, #codenewbie, #react
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/abw19zj7bzkblz2muown.png
series: [learning graphql]
---

🧰 Wherever you are in your web development journey, a knowledge of GraphQL is worth stashing in your developer toolbox. 

Let's begin with a visual metaphor à la [Maggie Appleton](https://twitter.com/Mappletons). 

**Scenario #1:**
👋🏽 Say hi to Sally. She's eating at her favorite sit-down Italian restaurant tonight. She decides on the carbonara and flags down a waiter to take her order. The waiter relays the order to the chef. When the food is ready, the waiter brings out Sally's food. Bon appétit! 

But Sally is pretty restricted by the restaurant's menu. She cannot customize what ultimately ends up on her plate. She wants to order more food, but she has to flag down the waiter and the cycle begins again. On top of that, each item adds to her total bill. 

**Scenario #2:**
💸 Imagine if Sally was at an all-you-can-eat buffet. She has more freedom to choose what she eats for a flat price and limited interaction with a waiter or cashier to order her food and pay her bill. Seems like a better experience overall! 

![The lifecycle of a HTTP request.](https://dev-to-uploads.s3.amazonaws.com/i/65u54n22puc4rwhvg0k3.png)<figcaption>The lifecycle of a HTTP request.</figcaption>
> If we liken Sally's situation to the lifecycle of a HTTP request, we can see that: 
- Sally is the client initiating a request, 
- the waiter is the HTTP protocol interacting with the server, and 
- the chef is the server returning the data. 

💡 **Scenario #1** vs. **Scenario #2** is how I visualize the difference between leveraging a traditional REST API for data fetching and leveraging GraphQL on top of the API layer for customizing the data fetched. Sally does not have to initiate as many requests in Scenario #2 to get more food. And it costs her less to do so!

On a very high level, GraphQL allows us to minimize the number of API requests made and accordingly, to improve performance of web applications. In the next post, we'll shift back to developer-speak, discuss a technical use case, and implement a GraphQL query on top of an API for said use case. 

What are some resources you have used to better understand GraphQL? Comment below!
Webpack Error: Cannot find module "./locale"
Published: 2020-05-04 18:12:15

We are getting `Webpack Error: Cannot find module "./locale"`(https://github.com/moment/moment/issues/4216)
error.We are using 'react-redux-i18n' package in our project which has dependency on 'react-i18nify' and that in turn has dependency on 'moment'. Internally 'moment' is configured to use latest version which is causing this error.


In dependencies
"react": "^16.8.1",
"moment": "2.24.0",
"moment-timezone": "^0.5.28",
"react-moment-proptypes": "^1.5.0",
"react-redux-i18n": "^1.9.3",
"react-redux": "^6.0.0",

Any help would be greatly appreciated.
Recording iOS simulator and Android device screen
Tags: recording, ios, android
Published: 2020-05-04 18:06:43

At work I like to add gifs or screenshots to pull requests to make it easier for my fellow developers and designers to review the changes. Its easier to show something visual than to explain it in text. I find videos especially helpful when showing steps to reproduce some complex bug.

Gifs are great but sometimes they are not enough. For more longer and more complex things I wanted to figure out how take recording of iOS simulator and my Android test device screens. Have not had need for Android emulator recording yet.

Turns out you can record iOS simulator without any additional software but Android requires you to download a tool. I am using Macbook so these are MacOS specific findings.

## Recording iOS simulator screen

For iOS recording simulator screen was pretty straightforward and it can be done via command line. I used to use Quicktime to record but once I found out about the cli command I have not used Quicktime. It is much more quicker to do a short recording versus Quicktime.

You can record iOS simulator from cli with

```bash
xcrun simctl io booted recordVideo file.mov
```

To stop recording interrupt the command with `ctrl + c`.

## Recording Android device screen

Android is a bit more tricky and requires software to be installed. I found a tool called [srcpy](https://github.com/Genymobile/scrcpy) which offered a way to record Android screen. It also allows you to mirror your device's screen. That's really useful for remote demos!

You can record Android device screen from cli with

```bash
scrcpy --record file.mp4
```

To stop recording interrupt the command with `ctrl + c`.

I prefer to limit the size of the recoded screen size using `-m size` parameter. It makes the recording's max width or height be the given value (which ever goes above the maximum first).

```bash
scrcpy -m 720 --record file.mp4
```

## Making life easier with bash aliases

As I have started to use these commands often I have made my life easier with these two aliases.

Adding these your `~/.bashrc`, `~/.zshrc` or other place where you keep your aliases allows you to record iOS simulator with `record-ios <filename>` and `record-android <filename>`.

```bash
# Record iOS simulator
#   $1: filename, e.g. `recording`
#
# To stop recording interrupt with `ctrl-c`
#
# Usage: `record-ios ~/Desktop/file`
function record-ios() {
  xcrun simctl io booted recordVideo $1.mov
}

# Record Android device (requires https://github.com/Genymobile/scrcpy)
#   $1: filename, e.g. `recording`
#
# To stop recording interrupt with `ctrl-c`
#
# Usage: `record-android ~/Desktop/file`
function record-android() {
  scrcpy -m 720 --record $1.mp4
}
```
The 7 Most Popular DEV Posts from the Past Week
Tags: top7
Published: 2020-05-04 18:05:43

---
title: The 7 Most Popular DEV Posts from the Past Week
published: true
description: A round up of the most-read and most-loved contributions from the community this past week.
tags: icymi
cover_image: https://thepracticaldev.s3.amazonaws.com/i/sfwcvweirpf2qka2lg2b.png
---
Every Monday we round up the previous week's top posts based on traffic, engagement, and a hint of editorial curation. The typical week starts on Monday and ends on Sunday, but don't worry, we take into account posts that are published later in the week. ❤️

#1. !important

^ that's what I used to do when the z-index frustrated me -- didn't work most of the time. Kushal shares a simple z-index debugging trick on Chrome dev tools.

{% link https://dev.to/sharmakushal/how-to-solve-the-z-index-issue-within-1-minute-4pn9 %}

#2. All About Negotiation

Peter gives us an overview of gateways and proxies, along with a few examples of implementing rate-limiting and deny requests.

{% link https://dev.to/peterj/beginners-guide-to-gateways-and-proxies-1npn %}

#3. 10-year Check In

Andrew has seen the evolution of a tech stack across ten years. In this post, they show us how the frontend, backend, infrastructure, testing, and analytics tooling have changed in their app. 

{% link https://dev.to/andrewkeyboardwarrior/how-our-stack-evolved-in-10-years-5fmn %}

#4. Fail Fast

Adrian introduces us to a bunch of terminology necessary to have a proper discussion about service speed. In this post, we learn about response time vs. service time, throughput, little's law, and more! 

{% link https://dev.to/aws/why-are-services-slow-sometimes-mn3 %}

#5. Many Flavors

As fun as the title suggests - Muhimen shows us how to print "Hello, World!" in 30 different languages. 

{% link https://dev.to/muhimen123/hello-world-but-in-30-different-languages-3ii1 %}

#6. A Portal

Bibek takes us under the hood of browsers. In this post, they cover the structure of a web browser, JS engines, and more!

{% link https://dev.to/bibekshah09/how-do-browsers-work-44oj %}


#7. Level Up

Desiré clarifies the role of frontend developers and shares advice on how to level up your frontend skills - from helpful tools to important reminders.

{% link https://dev.to/helleworld_/how-to-become-a-frontend-dev-4de9 %}

_That's it for our weekly wrap up! Keep an eye on dev.to this week for daily content and discussions...and if you miss anything, we'll be sure to recap it next Monday!_
Edpresso creator spotlight: Benjamin Chibuzor-Orie
Tags: webdev
Published: 2020-05-04 17:39:49


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/h1tnk3x77hz226r9eab2.jpg)


[Benjamin Chibuzor-Orie](https://www.educative.io/profile/view/6631408564961280) is the creator of  ["Find the integer that appears once in an array"](https://www.educative.io/edpresso/find-the-integer-that-appears-once-in-an-array), the shot that received the most views of any externally authored shot in April 2020. Chibuzor-Orie has been playing with code for seven years but has only been doing it professionally for four (this includes 2020). 

"Just like every other growing child, I was very interested in games, but the twist to it was that I really wanted to make my own games." Chibuzor-Orie ventured into game development using XNA and C# from Microsoft in 2013 when he was 13. He marks this as the start of his dev career. 

"I didn't really take a career as a programmer/software developer seriously due to the stigma my mom placed on the field at the time. It wasn't until I was awaiting admission into the University in 2016 that I finally took it up as a career. I didn't gain admission that year, which was ample time for me to sharpen my programming skills. Two months from the day I decided to take my career seriously, I got my first gig. I was really excited the day I got it."

For Benjamin, blogging is a way to stay relevant in the tech community as helping the community and being recognized for it has always been a big deal for him. He says, "As a backend developer, there's no better way to show off my knowledge to the community and help with problems they might have except by directly connecting with them. Sadly, there is **NO API** that does that; so, writing is a big deal for me."

Benjamin basically writes about everything he does, no matter how small it is, because "even if no one reads it, sooner or later I'll need it."

Check out his shot ["Find the integer that appears once in an array"](https://www.educative.io/edpresso/find-the-integer-that-appears-once-in-an-array) on Edpresso or connect with him on [Twitter](https://www.educative.io/profile/view/6631408564961280).
How to be a good developer
Tags: developer, programing, php
Published: 2020-05-04 17:37:01

---
title: How to be a good developer
published: true
description: how to be a good developer
tags: #developer #programing #php
---

I want to talk about who is a good developer.I'm trying to say simply to you.

The top advantages of developers are :

-He was never disappointed in the working and life.

-He's done any bugs in the code.

-He's always searching for a new way for old problems.

-Don't be too happy when your problem of code is done.becuase you feel knowing anything in the world of programming and you never try to learn new things.

-Make a challenge for yourself.you can use GitHub to make a new repository and you will develop that.

-less ask questions and more search on google.
handy Ruby methods #2 - Object#tap
Tags: ruby, beginners
Published: 2020-05-04 17:31:49

Clean and easy to read... name a better way to write Ruby apps. I'll wait.

If your Ruby code *feels verbose*, you're probably right! Matz (creator of Ruby) feels strongly about developer happiness. That involves less boilerplate which distracts you from saying the important things... like your business logic.

> **"The goal of Ruby is to make programmers happy.”**

> **Yukihiro “Matz” Matsumoto**

`Object#tap` is something I find myself returning to consistently at work. It makes what I'm saying more concise and reads better in my opinion.

Take this contrived example where we instantiate an Account, set a plan, save it and return the account:

```ruby
account = Account.new
account.plan_name = "pro_monthly"
account.save!
account
```

If you have symptoms of Dyslexia, this code will not help. The repetition of `account` is gaudy and in the words of Marie Kondo: "does not spark joy."

![Marie Kondo Sparks Joy](https://media.giphy.com/media/fCUCbWXe9JONVsJSUd/giphy.gif)

This example also violates a software pattern called DRY (Don't Repeat Yourself). It's where we attempt to write the same thing again *only if it's not necessary*. I stress the latter because it's okay to repeat yourself with code when the opportunity presents itself. After all, writing software is about being pragmatic. Bending the rules when you have to is okay, just think it through first!

In this case, Ruby has a built in method to clean this up:

```ruby
account = Account.new.tap do |a|
  a.plan_name = "pro_monthly"
  a.save!
end
```

Three things make this code better 1) there's less to read 2) the object is set to `account` once 3) it feels more like Ruby. The last part is subjective but something you'll find yourself understanding as you continue writing Ruby. Take my word for it if you dare.

Same amount of lines as the first example, but a different kind of clarity in the second.
Avoiding Not Invented Here (NIH) in your side projects
Tags: airtable, showdev
Published: 2020-05-04 17:13:51

---
title: Avoiding Not Invented Here (NIH) in your side projects
published: true
description: What I learned from using an Airtable integration to replace a custom front end application for tracking my plants watering cycles.
tags: Airtable, showdev
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/oj5vbp0lr8fifw9nn3ik.png
---

As someone who enjoys programming as a hobby outside of work, I've found it very easy to make any digital inconvenience into a potential side project. One key place where this happened was keeping track of when I'd last watered my growing plant collection. I used an [Airtable](https://airtable.com/) spreadsheet to track all the information relevant to my plants, and it worked great except I wanted an easier way of determining with a quick glance which plants hadn't been watered in a given interval of days (this interval being set for the individual plant.)

I smelled a potential side project almost right away. I built a Node project (my first from scratch!) that used the[Airtable API](https://airtable.com/api) to pull a list of plants and their photos from the database if they were at or past their "next watering date". I [hosted it on Glitch](https://glitch.com/~sabrinas-plants), one of my favourite coding platforms, and it worked and it was great. Well, it was only great as a side project exercise.

But in terms of practical functionality I still had to remember to visit the site and check it, which would be a whole new habit for me to pick up. What would be better is if the days I needed to check a given plant would just show up on a given day, perhaps right in my calendar for convenience. I revisited available Airtable integrations; it turns out there's a way to [subscribe to the calendar view of a given Airtable field](https://support.airtable.com/hc/en-us/articles/225050348-Integrating-Airtable-with-external-calendar-applications-e-g-Google-Calendar-Microsoft-Outlook-Apple-Calendar-).

Now the name of the plant that might need a check up shows up right in my daily calendar app. This is ideal for me, especially as I lean on my digital calendar to help ground me during all this time I'm spending inside. And, as a developer, I still feel there's a valuable skill that got exercised! I had to use the best tool for the problem I was trying to solve and think critically about my initial solution.

If you're interested, I've made a public version of this base available [here](https://airtable.com/shrWKUADOYwHo3b12).