teleren/devto huggingface dataset:
What is your deal-breaker for a web server framework?
Tags: discuss, webdev, devops, security
Published: 2021-02-15 09:24:55

First of all, I should say that, at least for me, choosing a framework should not bind you to a programming language, nor stop you from using one.

That also means, advanced language features (in JavaScript) don't really matter.

As for me, I usually use (fastify JS/TS), (FastAPI Python), (Javalin Kotlin), (Gin Golang), and the factors affecting consideration are

1. Minimal learning curve
2. Simplicity / minimalism to create **decent security** (e.g. validation, rate limit, CSRF protection, response headers)
3. **Integration with frontend frameworks**
  - I actually care very little about different components of backend's integration. Never really tried Django, Spring, Rails, Grails, Nest.js.
  - Not all calls are HTTP(S). I do have to use WebSockets sometimes. Never tried gRPC or SOAP. Not yet a GraphQL frequentist.
4. Non-frontend **multi-language connection**
  - So far, I usually use HTTP. But I will tried to use interprocess communication (in Electron / Node.js) if possible. I have heard things about ZeroMQ and RabbitMQ, but I have not tried.
  - I am very worried about **security**, despite standing only on localhost; port blocked from external (e.g. via ufw).
5. I am considering learning testability, e.g. different types, coverage, dependency inversion.
Write a Post, Get Paid
Tags: webdev, writing
Published: 2021-02-15 09:21:07

Are you a developer who enjoys writing articles and tutorials? 

If so, here's an opportunity to earn some money on a weekly basis.

You can write these tutorials/posts on your own site and you can re-post them to the [DevDojo](https://devdojo.com?ref=bobbyiliev) for a chance to win $20 each week.

If you are posting from another source make sure to include the original link in the post settings when adding it to the DevDojo.

![original-source.png](https://cdn.devdojo.com/images/february2021/original-source.png)

Each week we'll be selecting 3 articles to feature and your article will be listed on the homepage and on the [featured page](https://devdojo.com/featured).

In the future, we may increase the amount paid and the number of articles that get featured.

If you are going to write a developer tutorial/post anywhere, make sure to add it to the DevDojo as well to possibly earn some extra dough and get some extra exposure ✌️
Task Management: How to Best Manage your Tasks
Tags: productivity
Published: 2021-02-15 09:15:57

Daily life is busy and getting busier every single day. Keeping up with it all can feel overwhelming at best and impossible at worst. We could all use some help organizing the various projects and associated deadlines we have at work, school, and home. 

Read full story -> [How to best manage your Tasks](https://blog.doit.io/task-management/)
Sharing How we created The Apriori Model for Variant Prioritization
Published: 2021-02-15 08:59:08

Hey everyone!
this is my first time posting anything about programming ever in my life.. I want to use this opportunity to talk about the ML project I am currently working on(:

This project aimed to find rules using apriori, where we can create an association between variants and their pathogenicity, diagnosing the causative variant for the patience disease. 
The first step was to create the model using python.. we (me and my team) trained the apriori model on data we acquired from ClinVar databases.. the genetic data we collected was not clean.. so we wrote a function for cleaning it.. removing the empty, unclear or useless info for us. to do so, we had to extract data from the VCF files (variant calling format), using the Scikit-allele library ( by reading the documentation) then, we saved it into a panda data frame using: 
Variant=pd.DataFrame.from_dict(Variant)
Then to clean the data we exclude the unwanted raws. 
for example : 
Variant = Variant[Variant['variants/CLNSIG'] != 'Benign'] 
this to remove any raw containing Benign significance which is not harmful so doesn't help our rules. 

For training the model we also had to transform the data frame into a list using the following: 
changing it to a string : 
Variant = Variant.astype('str')
listV = Variant.values.tolist()
Now we can invoke the apriori function and give to it the list of variants we cleansed. 
apriori(listV, min_support =0.05, min_confidence= 0.6, min_lift = 3, min_length=2)
 Note that the support and confidence, and the lift are experimental, meaning that you have to play with it until you find the suitable values where the rules are meaningful. in our field, the evaluation is done by referring to experts since it is hard for us to inspect the accuracy of the resulting rules. 

Hope this was informative, and thank you for reading.
Introduction to GIT
Tags: git
Published: 2021-02-15 08:46:21


## What is GIT and why it is used

GIT is a version control system which tracks your files for changes and when it finds changes it saves it in a hidden folder and if you want to keep those changes you can stage these changes and finally commit the changes with a message describing the changes to the main repository or if you want to discard these changes. **Why It is used** This kind of system is really useful when you are collaborating with your team.

So yeah I am ending this small introductory post here stay tuned for the upcoming posts in this series.

Any queries ask me in the ~~comments~~ **Discussions**
[AskDev] GatsbyJS and SEO: how to manage internal routing?
Tags: askdev, discuss, gatsby, seo
Published: 2021-02-15 08:30:41

---
title: [AskDev] GatsbyJS and SEO: how to manage internal routing?
published: true
tags: askdev, devdiscuss, gatsbyjs, seo
---

With GatsbyJS you can handle navigation using relative paths.

For example, if I have 2 pages under the _articles_ path:

www.myblog.com/articles/firstArticle
www.myblog.com/articles/secondArticle

and I want to insert a link in the secondArticle that points to the firstArticle, I can do this:

```md
Hello, I'm the second article, and here you can find the
[first article](./firstArticle)
```

This works well in the site, since Gatsby takes care of the navigation between pages.

But the HTML that Gatsby generates is (more or less) this one:

```html
Hello, I'm the second article, and here you can find the
<a href="./firstArticle">first article</a>
```


So, my question is: do crawlers understand that the linked page is 

www.myblog.com/articles/firstArticle
and not
www.myblog.com/articles/secondArticle/firstArticle

?

So, how do you link pages between the same blog? Absolute URL, relative path or something else?
API Testing - Response Validation via powerful scriptless assertions
Tags: testing, api, vrestng, automation
Published: 2021-02-15 08:26:08

See how you may validate your API responses without writing a single line of code through powerful scriptless assertions.

In our future sessions, we will see more advanced approaches to validate your complex API responses like a piece of cake. So stay tuned to our video series.

Youtube Link: https://youtu.be/m2-bHo5OaRw

Youtube Playlist: https://youtube.com/playlist?list=PLmua155_WrDzt1AbB6iV5Lsw_Z7QrzZZ0

vREST NG is an enterprise-ready application for Automated API Testing. You can download and install the vREST NG application directly on Windows, OSX, and Linux via our website.

*Important Links:*
1. [vREST NG Website](https://ng.vrest.io/?utm_source=youtube&utm_medium=yt-desc&utm_campaign=video)
2. [Contact Email](support@vrest.io)
3. [Community Chat](https://discord.gg/NtRa7kw)
4. [Book a Live Demo](https://meetings.hubspot.com/dheeraj-aggarwal)

Please do like and share if you found this video helpful and let the voice heard by the testing community.
3 books every developer must read
Tags: books, career, webdev, beginners
Published: 2021-02-15 08:02:14

`Hello World!` Today we will see three books that I recommend you to read as a developer. Tutorials are best when learning a particular technology but books are irreplaceable to learn a skill in-depth or do understand a particular concept. 

> I don't earn money for any of these links

---
## Code: The Hidden Language of Computer Hardware and Software
By Charles Petzold

![image](https://dev-to-uploads.s3.amazonaws.com/i/s6m00e88mxgrcyiexkv5.png)
 
> What do flashlights, the British invasion, black cats, and seesaws have to do with computers? In CODE, they show us the ingenious ways we manipulate language and invent new means of communicating with each other. And through CODE, we see how this ingenuity and our very human compulsion to communicate have driven the technological innovations of the past two centuries.

The book starts from the basics of computer science and goes deeper into studying how a computer is done. You don't need an important math background to understand it. 

[On Amazon](https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319) - Not too expensive

---

## Clean code
By Robert C. Martin

![image](https://dev-to-uploads.s3.amazonaws.com/i/gx6htnrw2dacnvvmpgnw.png) 

> Even bad code can function. But if code isn’t clean, it can bring a development organization to its knees. Every year, countless hours and significant resources are lost because of poorly written code. But it doesn’t have to be that way.

The book brings forward a well-structured perspective on how code should look like, in order for that code to be readable and maintainable.

[On Amazon](https://www.amazon.co.uk/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882) - Kindle version not really expensive

---

## Cracking the coding interview
By Gayle Laakmann McDowell

![image](https://dev-to-uploads.s3.amazonaws.com/i/p1jcqg2gtagw1lshbyg9.png)

> I am not a recruiter. I am a software engineer. And as such, I know what it's like to be asked to whip up brilliant algorithms on the spot and then write flawless code on a whiteboard. I've been through this—as a candidate and as an interviewer.

[On Amazon](https://www.amazon.co.uk/Cracking-Coding-Interview-6th-Programming/dp/0984782850)

---

Happy Reading! Remember the ❤️

Recommended readings:

{% link https://dev.to/devlorenzo/how-to-write-css-like-a-pro-4glj %}

{% link https://dev.to/devlorenzo/the-ultimate-compilation-of-cheat-sheets-100-268g %}

---

## **[Subscribe to my Newsletter!](https://chipper-motivator-3112.ck.page/05710ea3d3)**
A loooong, and fun, weekly recap for you 
Free PDF version of my articles
Highly customizable inbox
That's --> free <-- and you help me!
The Recipe for Coming Up with Great Coding Solutions
Tags: devjournal, codenewbie, womenintech, career
Published: 2021-02-15 08:00:31

_This post was originally published on February 15, 2021 on [my blog] (https://alexlsalt.github.io/blog)._

-------------

Looking forward to diving into another week of work! I'm going to be taking on a slightly bigger investigative bug in the code as a project for this week.

I feel simultaneously excited and nervous about it. But overall, it's going to be an opportunity to grow my skills. And plus, what's a little bit of discomfort?

We had a wonderful sync last night with our cohort for the Collab Lab. I feel like I always learn great things from the developers and mentors on our team.

We talked about the importance of taking the time to read and understand certain issues that need to be fixed in the code before jumping in to solve them as it'll save so much time and frustration.

And this is something that's so applicable to any developer at any stage of their career or expertise.

Taking the time to truly understand the scope of an issue at hand - writing things down, asking questions, planning out your strategy, getting input from your teammates - is truly a recipe for success on coming up with a great solution.

Looking forward to keeping this top of mind this week as I carry out my own work!

-------------

Pssst! I send weekly newsletters about the self-taught coding journey and my own coding adventures (and misadventures!)  [Sign up here! >>](https://ladies-code-collective.ck.page/e53b5fca44)
Website Auditing For Dummies
Published: 2021-02-15 07:56:24

Some websites suck.

With today's post, hopefully I'll be able to tell you a little bit about how you can make yours not suck. A simple audit can give valuable information about your website that can make it function smoothly across multiple platforms. We all know that one website that runs completely fine on our laptop but is a nightmare to operate on your mobile device.

Some auditing tools for websites that are free and easy to use are web.dev and WAVE.

Web.dev is an auditing tool where all you need to do is copy and paste a link into the site and it'll run an audit and generate a lighthouse report for you to see detailed information on performance, accessibility, best practices, and SEO flaws on the site. It's great for telling you what's wrong, why it's wrong, and how to fix it.

WAVE is a chrome extension that audits websites in a more visual manner, rather than in the form of a written report like with web.dev.

For this post, I audited the Penn State ResLife homepage with both web.dev and WAVE. Check out the video here: https://youtu.be/N7TEGroI-Vo

In that video, I pointed out some issues that web.dev found on the Penn State ResLife homepage. For the tap target problem, a good way to solve that is to increase the tap targets' size. Tap targets larger than 48 px x 48 px will not fail the audit. You could also increase the padding property or increase spacing between tap targets that are too close together. To make the links in the site crawlable, simply adding the href attribute is the easiest and simplest solution. For best practices in SEO, adding a meta description for the document will ensure that this sire will show up on a search engine using a meta description.

I hope you got something out of this, and here's to making your website not suck!
Top Magento Ecommerce Development Trends to Consider in 2021
Tags: webdev, android
Published: 2021-02-15 07:44:47

The eCommerce development domain has gained ground quickly in the corporate world in recent years. Thanks to advancing technology, we have many [eCommerce development](https://www.suriainternational.com/ecommerce-website-design-development-company/) platforms available to meet the diverse needs of the online business while addressing the increasing competition. 

Out of them, Magento has remained the most popular platform with user-friendly and business-focused features. With continuous evolution in features and functionality, Magento has delivered better performance than its peers.

It is interesting to jot down the latest Magento eCommerce development trends that are going to dominate in the year 2021 and beyond. As a renowned [Magento web development company](https://www.suriainternational.com/magento-website-design-company/), we use these trends to build the next-gen eCommerce solutions for our esteemed clients across the world. Let’s have a look at these trends.

Top E-Commerce Development Trends to Dominate in 2021

Micro Interactions

It is imperative for you to provide an interactive and personalized experience. It can make them feel special and they remain connected to your business with more enthusiasm. Be it a first-time visitor or a regular customer, micro-interactions can retain them for a long time. It is a simple yet powerful marketing technique that can help you attract the target audience. What’s more, the eCommerce development company can build a responsive website for your online business to attract many visitors from a smartphone-using audience.

Live Streaming

This feature can be a game-changer in the eCommerce industry. Magento 2 has brought this feature after realizing the advantages of audio-visual content in the eCommerce market. You can provide a product demo through a live broadcast on your eCommerce website or social media channels using this feature. It is particularly useful in recent times as the world battles against the deadly virus mainly by staying at home.

Live streaming can give an opportunity to expand your reach and interact with potential customers. You can add this feature to the existing Magento 2 website to drive more online traffic. Also, real-time interaction through live streaming ensures higher customer satisfaction because you can resolve all the queries of prospective and existing customers instantly. You can hire Magento developers to leverage the full potential of audio-visual content to increase the conversion rate.

Read More: https://www.suriainternational.com/magento-ecommerce-development-trends/
100DaysOfCode — Day 06
Tags: docker, 100daysofcode, kubernetes
Published: 2021-02-15 07:40:38

This is a simple tutorial demonstrates creating Golang Docker image.

### Prerequisites:
 * [Day 5 tutorial](https://dev.to/moatazburhan/100daysofcode-day-05-9b4)

### Go App
Create a simple Go program `hello-http.go`:
```go
package main

import (
    "fmt"
    "log"
    "net/http"
)

func hello(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "hello world\n")
}

func main() {
    http.HandleFunc("/", hello)
    log.Println("Starting server on 0.0.0.0:8080")
    http.ListenAndServe(":8080", nil)
}
```

### Docker file
In the same directory, create Docker manifest file (`Dockerfile`):
```docker
# initializes a new build stage and sets the base image
FROM golang:1.15.1-alpine

# copy hello-http.go and add it to the filesystem of the image
ADD hello-http.go .

# compile the program
RUN go build hello-http.go

# provide the default command for the container
CMD ["/go/hello-http"]
```

### docker build
Build an image from your Dockerfile
```bash
$ docker build . -t hello:v1.0.0
```
 * `-t` Name and tag the image in the 'name:tag' format

List docker images:
```bash
$ docker images
```
```
REPOSITORY                         TAG       IMAGE ID       CREATED          SIZE
hello                              v1.0.0    47f0babcdfe2   44 minutes ago   306MB
```

run the command:
```bash
$ docker run -dit --rm -p 8080:8080 --name hello hello:v1.0.0
```
 * `docker run` Run a command in a new container
 * `-d` Run container in background and print container ID
 * `-i` interactive
 * `-t` Allocate a pseudo-TTY
 * `--rm` Automatically remove the container when it exits
 * `-p 8080:8080` Publish a container's port(s) to the host
 * `hello:v1.0.0` Docker image to run
 * `--name hello` Assign a name to the container

### Test your container
```bash
$ docker ps
```
 * `docker ps` List containers

You see a list like this shows a container running `hello` image.
```bash
CONTAINER ID   IMAGE          COMMAND            CREATED          STATUS          PORTS                    NAMES
7c3c8774134d   hello:v1.0.0   "/go/hello-http"   54 minutes ago   Up 54 minutes   0.0.0.0:8080->8080/tcp   hello
```
Now open your browser and go to `http://localhost:8080/`:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/i/z9gc3exa3txvsv7xcc6r.png)

### End the container
Now run the following command to end the container:
```bash
$ docker stop hello
```
Now list the containers
```bash
$ docker ps
```
```
CONTAINER ID   IMAGE     COMMAND   CREATED   STATUS    PORTS     NAMES
```

Note that docker container has stopped and automatically removed:
```bash
$ docker ps -a
```
You will see this:
```bash
CONTAINER ID   IMAGE                    COMMAND                  CREATED          STATUS                     PORTS     NAMES
```


###### End of day 6 of 100DaysOfCode.
Reusing object properties with call() method in JavaScript
Tags: javascript, beginners
Published: 2021-02-15 07:39:49

Suppose we have an object with properties that we want to re-use for a certain new object. 

JavaScript provides a call method that we can use to achieve this objective.

```
//Sample object
var emp = {
   salary_per_day: 10,
   monthlySalary: function(){
   return this.salary_per_day * 30;
   }
};

//call the function 
emp.monthlySalary();
> 300

```

We can use the call method here on the new object to use the method of the existing object.


```
var emp = {
   salary_per_day: 10,
   monthlySalary: function(){
   return this.salary_per_day * 30;
   }
};


var emp2 = {salary_per_day: 50};

emp.monthlySalary.call(emp2);
> 1500

```

Like this. call function can be utilized to reuse the property of another function.
Let me break your website for you
Published: 2021-02-15 04:07:16

# Not a cybersecurity post
We are not here to talk about SQL injections, DDoS attacks, or man-in-the-middle attacks. We're talking about a11y and screen readers tonight. So...

# A11y
Accessibility, or a11y, is how useable your site is to everyone on the internet. I decided for my first session of finding errors, I would tear apart the [HAXcms](haxtheweb.org) website, and a Hello World, super basic, created in five minutes, [website I made with the editor](https://iam.hax.psu.edu/jma6277/sites/portfolio/welcome). I found four errors total using the Lighthouse Chrome plugin, [WAVE] (https://wave.webaim.org/), and tab order.

## Lighthouse issue
I started with lighthouse on my Hello World page. The main issue in a11y is with the buttons on the page. HAX uses Web components to display the button images, but the button tags themselves do not have any information. This becomes an issue for screen readers, as pointed out by Lighthouse, because they will only read the button tags as buttons. Simple solution, add a descriptor or name to the button tags. Something that the screen reader will pick up on.

## WAVE issues
WAVE was a tricky application to work with HAX. Most of the time, it would not render the main content of the page, or just not load the entire page. No idea how to fix that, I just think WAVE hates HAX. 
The other issue is fixable. WAVE gave a warning that page regions are not defined in the code. Visually, they are, but screen readers cannot tell where the main content begins in the page. Simple enough solution here as well (I say that like I know anything about the backend), a few main, header, nav, any tags that show what content is where, would help screen readers find the important content. 

## Tab order
This is the issue that really got me confused. HAX pages load all sub-menu links in the side bar when the site loads. While this is great for performance, as they do not need to be created when the drop down is selected, it presented an interesting issue for screen readers and tab order. The selection (which is easier to see in the video below) cycles through all of the hidden sub-menus before going down to the next main menu item. There are a variety of way to hide items from tab order indexes, but it is all dependent on the backend engine. There is a simpler way using HTML5, a tabindex=-1 in a HTML tag, but it will not work on older browsers, which is an a11y issue. 

In conclusion, let me break things.

# Github issue links
[Lighthouse buttons] (https://github.com/elmsln/issues/issues/536)
[WAVE page regions](https://github.com/elmsln/issues/issues/535)
[Tab order](https://github.com/elmsln/issues/issues/534)
[WAVE render issues](https://github.com/btopro/ist402/issues/177)
# Video
{%youtube J6HleR8C5dY%}