teleren/devto huggingface dataset:
What languages, frameworks, and libraries would you put on a front-end developer's 2020 "must learn" list?
Tags: discuss, frontend, webdev, javascript
Published: 2020-04-27 22:47:22

---
title: What languages, frameworks, and libraries would you put on a front-end developer's 2020 "must learn" list?
published: true
description: If you were advising someone getting into front-end development in 2020, what languages, frameworks, and libraries would you put on their "must learn" list?
tags: discuss,frontend, webdev, javascript
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/ybxh2x3r5fk1hk0xc2s8.jpg
---

If you were advising someone getting into front-end development in 2020, what languages, frameworks, and libraries would you put on their "must learn" list?
Starting the Twillo Hackathon
Tags: twiliohackathon
Published: 2020-04-27 22:43:14

I'm just starting the Twillo Hackathon, despite knowing about it even before it commenced. I spent a few hours on the docs without making headway. I don't know why I wasn't feeling motivated to let go of my dev fatigue and learn to use Twillo.

I should have publicly committed to the Hackathon earlier and written [daily] progress reports like [Kinyanjui Wangonya](https://dev.to/wangonya). 

It's all good. I have learned a new strategy, the hard way.

Anyways, enough talk. I'd start building an app which *informs people via programmable voice and SMS about COVID-19*.
Day 125 : Dedication
Tags: hiphop, code, coding, lifelongdev
Published: 2020-04-27 22:05:24

_liner notes_:
- Saturday : Did the radio show online only again this. Realized how much I miss being at the station and on the radio waves. Still had a great time talking with folks and playing music. The recording is at https://kNOwBETTERHIPHOP.com

![Radio show episode image of the Beastie Boys and Mobb Deep with the words April 25th 2020, Lovely Day](https://dev-to-uploads.s3.amazonaws.com/i/5nwdqmx7qqt80wy2scn6.jpg)

- Sunday : Did the post-radio show work, like set up the email blasts and update some things. Worked on some code for a side project. One really cool thing that happened was that Big Boi, a member of my favorite group OutKast, retweeted one of my tweets. It was the 26th Anniversary of their first album "Southernplayalisticadillacmuzik" and I sent out a tweet about it. I noticed I was getting a lot of notifications about people liking and retweeting it. Scrolled to see that he had retweeted it. Pretty cool.

![Proof that Big Boi from OutKast retweeted me.](https://dev-to-uploads.s3.amazonaws.com/i/7cdydckbhyz4g8htz7xl.jpg)

- Professional : Started off the day pretty productive. Submitted some info on a presentation I'll be giving. Made some changes to a pull request I did for some documentation and got that merged. Met with my manager and we spoke about the steps for a tutorial I'm putting together. Then for the rest of the day, just worked on a demo I'm working on for another team.

- Personal : Going to continue working on my side project. Even though I'm pretty tired. I want to get it done. This is the time when dedication is important, haha.

![What looks like a view from a dock in Bariloche, Argentina with a hotel and mountains in the distance](https://dev-to-uploads.s3.amazonaws.com/i/d7o0gdctg81gi2i0oe32.png)

Got a lot of projects to code this week for work. Good to see things haven't slowed down due to the pandemic. haha Keeping me busy and making the time go by quickly. I would also like to release a beta version of my project show that some people can test it out for me. We'll see.

Have a great night!

peace piece
Dwane / conshus
https://dwane.io / https://HIPHOPandCODE.com
{% youtube ULjHahDkjyo %}
Environment setup for Data Analysis with PySpark and Spark SQL
Tags: machinelearning, datascience, python, spark
Published: 2020-04-27 21:46:32

Data Analysis is all about extracting all possible insights from your dataset. A very important step in building a machine learning model is to get to know the data. Spark is widely used for its parallel data processing on computer clusters. Spark supports multiple programming languages (Python, Scala, R, and Java) and includes libraries for SQL(Spark SQL), machine learning(MLlib), stream processing (spark streaming), and graph analytics (GraphX). In this post, I am going to use PySpark and Spark SQL for my data analysis.

If you want to run Spark locally, you should have Java, as well as Python (Python 3), installed on your machine.

**Install Spark**
i. Go to https://spark.apache.org/downloads.html 
ii. Select version and package type
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/om6rnzuqivixv1bhbdet.png)
iii. Click on the download link, it will bring you to Apache Software Foundation site. From this site, you can start downloading
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/sm9lypajdb0tsoas94k4.png)
iv. Set up some environment variables for Spark home and PySpark in a file called .bash_profile
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/beouglu3zdpizq13rgyw.png)
v. Install PySpark - I am using Python installer program (pip) to install PySpark
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/vingolript4klfczhtt4.png)
**Launching Jupyter Notebook**
i. Install jupyter notebook with python installer

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

ii. Open terminal window, navigate to your working directory and type jupyter notebook. This will launch jupyter notebook

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

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/6ofpf5ap5kwzllqj47em.png)

iii. Create new jupyter notebook by clicking on the "New" button on the upper right side and selecting Python 3
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/p6w03exrl5gy33344ob4.png)
Job Seach Week 10
Tags: makers
Published: 2020-04-27 21:40:15

I spent a lot of time this week working on cover letters one of the coaches at Makers was helping me refine them to hopefully get more job offers.

Day 1

On Monday I worked on putting the final touches onto my battle project things like images for the characters getting a screenshot for the readme and also tidying up the readme. I also decided to go back and add a healing feature to it just to top it all off. I'm officially done with it.

Day 2

Tuesday was spent doing cover letters for different companies I think I starting to get more of a feel for what to write and how to write it. Although I'll never get used to feeling like I'm bragging. But I guess I can prove I'm not all talk through a tech test!!

Day 3

On Wednesday I spoke with one of the careers coaches and the looked over my cover letters and gave me some advice. I did have 2 sessions before this so the feedback was quite good just some minor weeks. They are definitely better than when I started so I'm happy with it.

Day 4

I started looking at something new to learn on Thursday I looked into maybe learning C++ or python. I played around with C++ but it didn't really stick. I was trying to use gtest which was a huge hassle to set up. 

Day 5

I also looked into python and decided I liked the look of it better so I decided I'd learn a bit of that. I had heard it was quite similar to ruby after seeing it I could see why.

Summary

Overall I was happy to get practice in with my cover letters because I've always found CV or cover letters hard to write. But I think most people would say the same thing because outlining all your skills is something you don't do in a normal situation. I've also decided to go learn something new which is exciting and I can't wait to get started.
nosetests example
Tags: testing, nosetests
Published: 2020-04-27 21:40:08


A good practice to use nose for testing.

{% gist https://gist.github.com/chuanjin/eb491e9f3b89fd3ac934a9c91a1710c8 %}



Execution results shows below:

![](https://www.chuanjin.me/images/nose.png)

**References:**
http://pythontesting.net/framework/nose/nose-introduction/
Top 5 Principles for programmers.
Tags: programming
Published: 2020-04-27 21:27:53



1-Always Ask Questions:
    If you don't understand something or you need to understand any concept under the hood so you should always ask questions. If you want long run in your programming career then make it a habit.
“The key to wisdom is this – constant and frequent questioning, for by doubting we are led to question, by questioning we arrive at the truth.” 
– Peter Abelard

2-Help others without answers:
    Programmers grow by trying new things, experimenting, and solving complex problems. Don't help other programmers by holding their hand this way they always come to you even for a simple problem. Instead of holding their hand give them proper tools so they solve problems on their own and grow consistently.

3-Experiences are not equal:
    10 years of coding by yourself without collaborating with other programmers or code reviews, doesn't necessarily make you a better programmer than someone with 1 year of coding with other programmers, contributing to open source projects and getting reviews from other programmers. We need to get out of our bubbles. If you want to grow consistently then you need to make pair programming with people at your level of experience, getting the reviews on code, checking open-source projects codebase.   

4-Choose right language/tool for the job:
    Good programmers don't just code right away, they first search and choose the right Language/tool for the project. Every language/tool has pros and cons you just need to choose the right language/tool and understand the ecosystem of the language/tool and just customize it by your own needs.

5-Respecting Junior developers:
    Be respectful to those who just start their career in the technical field. Everyone has their own strengths. Instead of judging, try to help, try to communicate, and try to learn from them. Patience and respect go a long way. This is an opportunity for you to practice your communication skills to deliver your
message.
FOR THOSE HUNGRY FOR CRITIQUE: the big reason Medium still has something on dev.to
Tags: meta, writing, feedback, career
Published: 2020-04-27 21:26:42

# There's one reason I'm hesitant to jump from `Medium` fully to `dev.to` (a community I much prefer):
On Medium, funded (albeit paywalled) publications will help me revise and craft my posts before I push them out to the world. 

## Why is do I take my writing/critique so seriously?
1. because I think it's a process of thinking clearer that necessarily requires people outside you giving feedback, and 
2. writing greatly boosts our community, particularly when done excellently
3. When we improve each other's writing, those with great ideas can shine, boosting their career

### I'm looking to build a community of dev.to-ers who will swap critiques on each other's pieces.

The feedback from a critique should be simple
1. *Your big picture impression*: did the main idea come through clearly? when did you feel lost/bored? what made you smile and jump for joy?
2. Specific, substantial suggestions for improvement
3. (as a courtesy, we'll try and fix typos before asking for critique)

Please comment with a post (or draft link) if you'd like to join! I can turn a critique around for you in 36 hours, and then I'll respond with a piece of my own. :)

If you see a piece you want to critique, respond to the comment to claim.

Let's help the diversity of brilliance in our community shine even brighter!

David
What have you been learning lately?
Tags: discuss, career, help
Published: 2020-04-27 21:12:12

---
title: What have you been learning lately?
published: True
description: I need a new personal project. 
tags: discuss, career, help
---
I have the desire to dig into something new. I have a background in Python, have worked a bit in security, and have dabbled with containers, serverless, etc. 

What are you learning and why do you like it? Any advice welcome. :smile:
Need Direction to Manipulate Paragraphs using jQuery
Tags: html, javascript, jquery, css
Published: 2020-04-27 21:08:20

 I,m trying to Show and hide two Particular paragraphs with the j-query toggle class . and getting .this by putting whole bunch of items in there classes . but it look like a very long and lengthy program .this need to be some sort of object oriented . 
i can also make them with bind all but on the web page all paragraphs will be change , i need to be selected one to be change as you can see button also changes is English and urdu.

{% codepen https://codepen.io/pinkoman/pen/BaoZzKp %}
How do you say ~!@#$%
Tags: keyboard
Published: 2020-04-27 21:01:45

I had a random thought the other day regarding the characters on the keyboard that us developers use every day. I realized that we probably have very different names and expectations of what each of them are used for, or even call them.

So I did a quick survey of some non-developer friends and family and here's what I came up with:


| Character  | Me            | Other              | Others I've heard |
|:----------:| ------------- |------------------- | -------------------- |
| ~      | Tilde         | Tildee, Approximately           | Squiggle
| !      | Exclamation   | Make a Point                    | Not, Bang
| @      | At            |                                 | Kill
| #      | Pound         | Number, Hashtag                 |
| $      | Dollar        | Money, "String" in Excel          |
| %      | Percent       |                                 | Mod, Modulus
| ^      | Carrot        | Accent                          |
| &      | Ampersand      | And                             |
| *      | Asterisk      | Star, "Times" in Excel            | Splat
| (      | Open Paren    | Left Paren, Quotation Mark|
| )      | Close Paren   | Right Paren, Other end of Question Mark|
| _      | Underscore    | Underline                       | Lodash
| +      | Plus          |                                 |


I've combined references to "point", "mark" and "sign". They seem to be used interchangeably.

Which did I miss? What do you call these characters, and what do you expect them to do? I'll update the table as you comment
Exercism Ruby - High Scores
Tags: exercism, ruby
Published: 2020-04-27 20:51:45


![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/27f11oevyexhuhuxq0em.png)

Manage a game player's High Score list.

Your task is to build a high-score component of the classic Frogger game, one of the highest selling and addictive games of all time, and a classic of the arcade era. Your task is to write methods that return the highest score from the list, the last added score and the three highest scores.

```ruby
require 'minitest/autorun'
require_relative 'high_scores'

# Common test data version: 5.0.0 7dfb96c
class HighScoresTest < Minitest::Test
  def test_list_of_scores
    # skip
    scores = [30, 50, 20, 70]
    expected = [30, 50, 20, 70]
    assert_equal expected, HighScores.new(scores).scores
  end

  def test_latest_score
    skip
    scores = [100, 0, 90, 30]
    expected = 30
    assert_equal expected, HighScores.new(scores).latest
  end

  def test_personal_best
    skip
    scores = [40, 100, 70]
    expected = 100
    assert_equal expected, HighScores.new(scores).personal_best
  end

  def test_personal_top_three_from_a_list_of_scores
    skip
    scores = [10, 30, 90, 30, 100, 20, 10, 0, 30, 40, 40, 70, 70]
    expected = [100, 90, 70]
    assert_equal expected, HighScores.new(scores).personal_top_three
  end

  def test_personal_top_highest_to_lowest
    skip
    scores = [20, 10, 30]
    expected = [30, 20, 10]
    assert_equal expected, HighScores.new(scores).personal_top_three
  end

  def test_personal_top_when_there_is_a_tie
    skip
    scores = [40, 20, 40, 30]
    expected = [40, 40, 30]
    assert_equal expected, HighScores.new(scores).personal_top_three
  end

  def test_personal_top_when_there_are_less_than_3
    skip
    scores = [30, 70]
    expected = [70, 30]
    assert_equal expected, HighScores.new(scores).personal_top_three
  end

  def test_personal_top_when_there_is_only_one
    skip
    scores = [40]
    expected = [40]
    assert_equal expected, HighScores.new(scores).personal_top_three
  end

  def test_latest_score_is_not_the_personal_best
    skip
    scores = [100, 40, 10, 70]
    refute HighScores.new(scores).latest_is_personal_best?
  end

  def test_latest_score_is_the_personal_best
    skip
    scores = [70, 40, 10, 100]
    assert HighScores.new(scores).latest_is_personal_best?
  end
end
```

My answer was:

```ruby
class HighScores
  attr_reader :scores

  def initialize scores
    @scores = scores
  end

  def latest
    scores.last
  end

  def personal_best
    scores.max
  end

  def personal_top_three
    @scores.sort.reverse.take(3)
  end

  def latest_is_personal_best?
    latest == personal_best
  end
end
```
I learned about **attr_reader**, **attr_writer** and **attr_accessor**.

**attr_reader**: It generates a getter method 


**attr_writer**: It generates a setter method

**attr_accessor**: It generates a setter and getter method
Code in Windows, run in Linux!
Tags: bash, ubuntu, codenewbie
Published: 2020-04-27 20:48:23


Currently I'm using Ubuntu on Windows with Oh My ZSH Shell.
  
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/tts5l729bo7orwcbs9uw.png "Ubuntu on Windows+ Oh My ZSH Shell")

<br/> 

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/do9l9kmkqz0cch3v975w.png "Ubuntu Bash + VS Code")
 
Here is are the steps on how I got it running like seen above.

**Install Windows Subsystem Linux —**[ https://docs.microsoft.com/en-us/windows/wsl/install-win10](https://docs.microsoft.com/en-us/windows/wsl/install-win10)

**Install Ubuntu on Windows from Microsoft Store —**[ https://www.microsoft.com/en-us/p/ubuntu/9nblggh4msv6](https://www.microsoft.com/en-us/p/ubuntu/9nblggh4msv6)

**Install ZSH** on Ubuntu Bash 
  
- Run this Command on Ubuntu Bash 
      `sudo apt-get install zsh`
    
- Open Bash Profile by Command 
       `vim ~/.bashrc` 
  
- Add this at the top of File to set ZSH as defualt:
       `bash -c zsh`

**Install Oh My ZSH**
  
+ Run this command `sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"`

##Change the ZSH Theme to agnoster
+ Open Bash Profile
      `vim ~/.bashrc`

+ Change ZSH_THEME to agnoster from robbyrussell
       `# See https://github.com/robbyrussell/oh-my-zsh/wiki/Themes
ZSH_THEME="agnoster"`

**Use Ubuntu Bash in VS Code**

+ Install the [Remote Development Extension Pack](https://aka.ms/vscode-remote/download/extension)

**Open a Remote Folder or Workspace**
  
1. Open a WSL terminal window (using the start menu item or by typing `wsl` from a command prompt / PowerShell).
2. Navigate to a folder you'd like to open in VS Code (including, but not limited to, Windows filesystem mounts like `/mnt/c`
3. Type `code .` in Bash. This should take a while, and is only needed once.
4. Once finished, you now see a WSL indicator in the bottom left corner, and you'll be able to use VS Code as you would normally!
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/eix9dfa4ad2tcmrotmee.png)
That's it! Any VS Code operations you perform in this window will be executed in the WSL environment.
  
####Hope You enjoy this tips.
shared_spliced_motif_using_dynamic_programming
Published: 2020-04-27 20:38:02

### CODE WORKS WELL FOR SEQUENCE OF EQUAL LENGTHS

### READ FASTA FILE
### ASSUMMED SEQUENCE READ FROM A FASTA FILE FORMAT

file_name = "my_project_env/test_data/rosalind_lcsq.txt"
list_str = []
seq_string = ""
with open(file_name) as sample_file:
    for line in sample_file:
        if ">" in line:       
            list_str.append(seq_string) 
            seq_string = ""
        else:
            seq_string += line.replace("\n", "")
list_str = list_str[1:]

### HACKED STRING BY ADDING NON-MATCHING CHARACTER(S) TO BALANCE LENGTH

if len(list_str[0]) > len(list_str[1]):
    list_str[1] = list_str[1] + "Z" * (len(list_str[0]) - len(list_str[1]))
else:
    list_str[0] = list_str[0] + "Z" * (len(list_str[1]) - len(list_str[0]))

### IMPLEMENT DYNAMIC PROGRAMMING LOGIC ON THE READ GENETIC STRING TO GET LONGEST COMMON SUBSEQUENCE (LCS)

seq_1 = list_str[0]
seq_2 = list_str[1]
i, j = len(seq_1), len(seq_2)
lcs = ""

arr = [[0 for row in range(j + 1)] for col in range(i + 1)]
for m in range(1, len(seq_2) + 1):
    for n in range(1, len(seq_1) + 1):
        if seq_1[m - 1] == seq_2[n - 1]:
            arr[m][n] = 1 + arr[m-1][n-1]
        else:
            arr[m][n] = max(arr[m-1][n], arr[m][n-1])

while i != 0 and j != 0:
    m, n = i, j
    if arr[m][n] > max(arr[m][n - 1], arr[m - 1][n]):
        i -= 1
        j -= 1
        lcs += seq_2[j]
    else:
        if arr[m - 1][n] > arr[m][n - 1]:
            i -= 1
        else:
            j -= 1
print(lcs[::-1]) ### DP TABLE IS READ BOTTOM-UP
CovidAssist App [Dev]
Tags: twiliohackathon, python, flask
Published: 2020-04-27 20:34:20

[Comment]: # (All of this is placeholder text. Use this format or any other format of your choosing to best describe your project.)

[Reminder]: # (Make sure you've submitted the Twilio CodeExchange agreement: https://ahoy.twilio.com/code-exchange-community)

[Important]: # (By making a submission, you agree to the competition's terms: https://www.twilio.com/legal/twilio-dev-hackathon-terms)


## What I built
#### Category Submission: 
COVID19 Communications

I have built a Whatsapp platform where one could message and get live global and local data about COVID confirmed, death, and recovered cases.

## Demo Link
 - It is still incomplete. Ongoing Development. 

## Link to Code
https://github.com/amansr02/CovidAssist

## How I built it (what's the stack? did I run into issues or discover something new along the way?)

- Using Twilio Whatsapp API to integrate messaging.
- Using Flask web server as a webhook. 


## Additional Resources/Info
Finding the culprit commit
Tags: git, github, discuss
Published: 2020-04-27 20:34:12

Hi folks,

### Problem

I work in an open-source organization with about 11,000 commits on GitHub. Now, recently I ran into a problem i.e. I made a commit a month back and the bug I fixed was not working now. I was unable to find what is the mistake now in the code.

There were about 200 commits since then the repository, now it would be not a good idea, checking out all the commits and find which one broke the feature.

### What would you do?

The purpose of this post is asking you what would have you guys done in this case to find the commit that broke the code.

### Here's what I did

As GitHub doesn't allow us to get the commit using the commit number i.e. we can't find the 39th commit in a repo by just tweaking the url. But can search a commit by it's hash.

What I tried to do is binary search. Yes, seemed a nice option to me, using this not more than 7-8 commits had to be checked.

But for that I need to get the commits by the commit number. So, I built a app for that.

Github repo - https://github.com/nishantwrp/github-commit/
App - https://github-commit.netlify.com/

This app provided me a commit hash by just entering it's number.
Problem solved! I found out the culprit commit by just checking 7 other commits.

But I think it was a little overkill for this problem to build an app. What would you guys have done in such a situation?