teleren/devto huggingface dataset:
New CSS Features, Facebook’s Facial Recognition System in the Metaverse, & more on DevNews!
Tags: news, podcast
Published: 2021-11-11 20:49:50

---
title: New CSS Features, Facebook’s Facial Recognition System in the Metaverse, & more on DevNews!
published: true
description: Listen to S6E3 of the DevNews pod wherever you get your podcasts.
tags: news, podcast
series: DevNews Season 6
cover_image: https://dev-to-uploads.s3.amazonaws.com/i/zoxvbu0494gq3sxtjp4v.png
---

New week, new episode of DevNews — the podcast where we read between the lines of today's most pressing software development-related stories

{% podcast https://dev.to/devnews/s6-e3-new-css-features-a-new-search-engine-and-facebook-s-facial-recognition-system-in-the-metaverse %}

**Hosts:** @saronyitbarek & @coffeecraftcode 

**Guest:** 
- @5t3ph, software engineer at Microsoft and author of ModernCSS.dev,

In this episode, we have an update about Facebook’s Facial Recognition system, and then we get into You.com, which calls itself “the world’s first open search engine.” Then we speak with Stephanie Eckles, software engineer at Microsoft and author of ModernCSS.dev about exciting new CSS updates that were just announced at Chrome Dev Summit 2021.

---

_You can [follow DevNews](dev.to/devnews) to get episode notifications and listen right in your feed_ _— or subscribe on your platform of choice! Plus, if you leave us a review, we'll send you a free pack of thank-you stickers. Details [here](https://airtable.com/shr8oKAIMZgdYnBxx)._ 

## **Quick Listening Links**
- [Apple Podcasts](https://podcasts.apple.com/us/podcast/s6-e3-new-css-features-a-new-search-engine/id1525581923?i=1000541470161)
- [Spotify](https://open.spotify.com/episode/0Gid8e24n6aAjwSLIB3Q20)
- [Google](https://podcasts.google.com/feed/aHR0cDovL2ZlZWRzLmNvZGVuZXdiaWUub3JnL2Rldm5ld3NfcG9kY2FzdC54bWw/episode/aHR0cHM6Ly9kZXZwb2RzLmRldi9wb2RjYXN0cy9kZXZuZXdzLzQz?sa=X&ved=0CAQQkfYCahcKEwig0ou6l5H0AhUAAAAAHQAAAAAQCg)
- [Stitcher](https://www.stitcher.com/show/devnews/episode/s6-e3-new-css-features-a-new-search-engine-and-facebooks-facial-recognition-system-in-the-metaverse-88219260)
- [Listen Notes](https://www.listennotes.com/podcasts/devnews/s6e3-new-css-features-a-new-T2oIp7L8_n3/)
- [TuneIn](https://tunein.com/podcasts/Technology-Podcasts/DevNews-p1352512/?topicId=167683796)
- [RSS Feed](http://feeds.codenewbie.org/devnews_podcast.xml)
- [DEV Pods website](https://devpods.herokuapp.com/podcasts/devnews/episodes/229)

### _Acknowledgements_ 
- _@levisharpe for producing & mixing the show_ 
- Our Season 6 sponsor: [Cosmos HackAtom](https://www.hackatom.org/)


We hope you enjoy the show this week! 📰
Introduction to Kubernetes
Tags: beginners, kubernetes, go
Published: 2021-11-11 20:37:38

## What is Kubernetes?
Kubernetes is an open-source container orchestration tool. On the base, it manages containers. It means Kubernetes helps you to manage applications that are made up of hundreds or thousands of containers and it helps you manage them in different environments. 

##Kubernetes Architecture
When you deploy Kubernetes, you get a cluster. A Kubernetes cluster consists of a set of worker machines, called nodes, that run containerized applications.
>What is Node?
Generally Node is a Virtual Machine.

When we go into this cluster, we have the master node and worker node(s).
![Kubernetes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/d4ktk0335yb6r5w3cet2.jpg)
###Let's learn about Master Node
Master node is also known as Control Plane. It is responsible for managing the whole cluster. We can call it as a backbone of a cluster.

**kubectl**: It is generally a CLI (Command-line interface) tool which is used to interact with the API of the master node.
**API-Server:** We can call API server as a Gatekeeper for the entire cluster. All the CRUD (create, read, update and delete) operations for servers go through API.
**Controller-Manager:** It keeps an overview of what's happening in the cluster like where something is to be repaired or a container died and it needs to be restarted etc.
**Scheduler:** This is basically responsible for scheduling containers on nodes based on there workloads and the available server resources on each node.
Scheduler is an intelligent process that decides on which worker node should the container should be scheduled.
**etcd:** It holds at anytime the current state of the Kubernetes cluster. Its like a Kubernetes backing store for all the cluster data.

This is it for Master Node.
###Let's learn about Worker Node.
It is basically any VM or Physical server where containers are deployed.
**Kubelet:** It is an agent that runs on each worker node in the cluster. Its main aim is to ensure that the containers described in those Pod specification are running and healthy.
**Kube-Proxy:** It runs on each node in the cluster. It is responsible for maintaining the entire network configuration. Also exposes services to the outside world.
**Pod:** It's basically an abstraction over container. Pod is the smallest unit in Kubernetes. Each pod consists of one or more containers.
**Containers:** Containers are Runtime environments for containerized applications.


I hope you found this article useful. Reach out to me on  [Twitter](https://twitter.com/Bhargav263) to share your feedback or for any queries. I'd be more than happy to help.

Thanks for reading, See you next time.
How to install Vapor on Linux
Tags: swift, videos, servers
Published: 2021-11-14 06:48:30

---
title: How to install Vapor on Linux
published: true
date: 2021-11-11 20:11:26 UTC
tags: Swift,Videos,servers
canonical_url: https://peterwitham.com/swift/how-to-install-vapor-on-linux/
---

{% youtube Wkb-Q7Qcfwk %}

Server-side Swift is becoming very popular. One of the most popular ways is to use Vapor. In this video, I go through the very simple (and few) steps to install and create your first Vapor app on the Linux platform.

For the example I use Ubuntu, however, the steps are the same for any distribution. So pick your favorite distro and let’s get started with server Swifting on Linux.
A Good Reason to NOT Copy and Paste Code
Tags: programming
Published: 2021-11-11 20:04:54

Many beginners are advised to “type code yourself instead of copy-pasting” because it enables one to internalize the process and the code more quickly. But as programmers gain more experience and attain the level where they need to get things done rather than ensure they learn, they get comfortable with `CTRL+C`, `CTRL+V` from Stack Overflow and other sources. As an experienced developer, I recently saw first-hand why I should never copy and paste any code I found online (or anywhere, for that matter)

Consider the code below:

```JavaScript
const [ ENV_PROD, ENV_DEV ] = [ 'PRODUCTION', 'DEVELOPMENT'];
const environment = 'PRODUCTION';
function isUserAdmin(user) {
    if(environmentǃ=ENV_PROD){
        return true;
    }
    return false;
}
isUserAdmin();
```

Looks benign, right? And we would expect this code to always return false, yes? Unfortunately, no. Now open a browser console, copy this code, and paste in the console. You may be shocked that it returns true. ![Copying the above code into a browser console gives us an unexpected result!](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/txicm573a12s2iy8rnjl.png)



To cut the long story short, what looks like a _loose inequality_ check on line #4, is deceptively an assignment operation, which reads like (`environmentǃ = ENV_PROD`)! In JavaScript, assignment operations return the assigned value, which in this case is truthy (will be treated as true wherever a boolean value is expected) ![Here we have an assignment, rather than an inequality check](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qxvfmv7rh6k60sejxdjl.png)



But isn’t `environmentǃ` an invalid variable name in JavaScript, you ask? It’s complicated. You’d be right to say an exclamation sign cannot be part of a variable name. However, the `ǃ` you see there is in fact not the everyday exclamation sign you know. It’s an obscure character that happens to be accepted as regular text by the JavaScript interpreter, and thus can be a valid part of a variable name

So while a programmer looks at line #4 and sees `environment != ENV_PROD`, the JavaScript interpreter sees `environmentǃ = ENV_PROD`![Some insight into how this bug hides in plain sight](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/aanptmza1j9ngjx1hkjs.png)



There! I hope this is a compelling enough reason to not take copy-pasted code lightly. And I hope you see how typing code snippets yourself can save you from bugs that hide in plain sight!
pip stuff you might need to know
Tags: python, todayilearned, codenewbie, tutorial
Published: 2021-11-11 19:51:36

## `PIP`

pip is the standard package manager for Python. It allows you to install and manage additional packages that are not part of the Python standard library. The concept of a package manager might be familiar to you if you are coming from other languages. For example, JavaScript uses `npm` for package management.

## `pip3 vs pip`

pip is also the CLI command that you will use to interact with pip, and there are many variants.

```
> pip install pandas
> pip2 install pandas
> pip3 install pandas
```

The thing to note here is that `pip3` operates on a `Python3` environment only, as `pip2` does with `Python2`. `pip` (w/o the 2 or 3) operates contextually. For example, if you are in a `Python3` virtual environment, `pip` will operate on the `Python3` environment.

## `But pip3 can mean many things - like if I have Python3.7 and Python3.8?`

Yes that's correct. Let's say I have two versions of Python installed, like Python 3.7 and 3.8. Now, if you were to type pip or pip3 in your terminal, it's not very clear which Python interpreter gets involved.

And this is why you'll see many developers use `python -m pip`. `python -m pip` executes pip using the Python interpreter you specified as `python`. Here you can provide the full path to the interpreter like: `/usr/bin/python3.7 -m pip` instead of relying on an alias.
Javascript default parameter for null and undefined
Tags: javascript, null, undefined, parameter
Published: 2021-11-11 19:37:27

Hello Devs,
Are you facing any problem when you pass **null** or **undefined** in a function as a parameter? May be you have faced this problem or maybe you haven't.On the other hand, maybe you know the solutions in many ways. 

In this post I want talk about how to pass default value in case of null and undefined. Hopefully, it will help somebody. 

**Oh Enough Introduction...**

Let's get to the main point. Take a function called `sayHi()` which takes a parameter and print that parameter. that's it.

```javascript
const sayHi = (greeting) => {
    console.log(greeting)
}

sayHi('Hi')

//your@console:~$ Hi
```
Now, if I don't give any parameter what will be happen? Let's check... 

```javascript
const sayHi = (greeting) => {
    console.log(greeting)
}

sayHi()

//your@console:~$ undefined
```
So in this case if we set a default parameter in the function,our problem will be solved. 


```javascript
const sayHi = (greeting='Hi') => {
    console.log(greeting)
}

sayHi()

//your@console:~$ Hi
```

**So undefined related problem solved...!**

Now ,let's check again if I put a **null** parameter what will happen? 

```javascript
const sayHi = (greeting='Hi') => {
    console.log(greeting)
}

sayHi(null)

//your@console:~$ null
```
Ok, that's the problem we don't need a null value as our output. Default value will be used when the parameter is undefined. However, if we put null here, our default parameter can't prevent it. Because `undefined!==null`

**So how should we handle this?**

Now we need **nullish coalescing operator** `??` 

```javascript
console.log(12 ?? "not found") // 12
console.log(0  ?? "not found") // 0

console.log("Sajid" ?? "not found") // "Sajid"
console.log(""     ?? "not found") // ""

console.log(true  ?? "not found") // true
console.log(false ?? "not found") // false

console.log(undefined ?? "not found") // "not found"
console.log(null      ?? "not found") // "not found"
```
If the left value is null or undefined , then the right value will be assigned. That's how nullish coalescing operator works. 

**So out solution will be**

```javascript
const sayHi = (greeting) => {
    const hi = greeting ?? 'Hi'
    console.log(hi)
}

sayHi(null)

//your@console:~$ Hi
```

You can also use `||` `or` operator which can be problematic if your left value contains `""` or `0` or `false`

Something like that, 
```javascript
console.log("" || "not found") // "not found"
console.log(0 || "not found") // "not found"
```

***So coalescing operator is our best solution if we want to ignore only undefined and null as parameter.***

So Dev, what do you think about this operator?
Program vs Process vs Thread
Tags: programming, codenewbie, computerscience, tutorial
Published: 2021-11-11 18:59:25

## `Program`

A program is simply an executable file that contains a set of instructions to complete a task. An application such as Chrome is one example.

## `Process`

A process is any currently running instance of a program. So one program can have several executions (copies) of it running at once. One Chrome program can have multiple tabs/windows open. A colleague compares the relationship between a program and process to the difference between a Docker image and a container; I hope that analogy makes sense :)

## `Thread`

One process can have multiple running threads. Put simply, a thread does lightweight, singular jobs. Threads exist for added concurrency. A process can have many jobs: think saving a file, reading keyboard input, writing logs, etc. Each thread can be responsible for its own task or "subprocess" so to speak.
Issue Chill Action
Tags: actionshackathon21, github, opensource
Published: 2021-11-11 18:57:51

---
title: Issue Chill Action
published: true
description: My 2nd submission to the GitHub Actions x DEV Hackathon 2021!
tags: actionshackathon21, github, opensource
---

[Instructions]: # (To submit to the GitHub Actions x DEV Hackathon 2021, please fill out all sections.)


### My Workflow

{% github oscarnevarezleal/issue-chill %}

[Note]: # (Please make sure the project links to the appropriate GitHub Actions repository, and includes [an open source license](https://choosealicense.com/) and README.)


### Submission Category: 

Maintaner Must-Haves

[Note]: # (Maintainer Must-Haves, DIY Deployments, Interesting IoT, Phone Friendly, or Wacky Wildcards)


### Yaml File or Link to Code

[Note]: # (Our markdown editor supports pretty embeds. Try this syntax: `{% github link_to_your_repo %}` to share a GitHub repository)

#### Usage

```yaml
# .github/workflows/issue-sentiment.yml

name: Issue Sentiment Analysis
on:
  issues:
    types: [opened, edited]

jobs:  
  add-comment:
    runs-on: ubuntu-latest
    permissions:
      issues: write
    steps:
      - name: Sentiment Analysis
        id: sa
        uses: oscarnevarezleal/issue-chill@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          owner: <org>
          repo: <repo>
          issue: ${{ github.event.issue.number }}

      - name: Add positive comment
        if: ${{ startsWith(steps.sa.outputs.IS_50_POS, 'true') }} # 60, 70, 80 and 90 also available
        uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
        with:
          issue-number: ${{ github.event.issue.number }}
          body: |
            This issue is available for anyone to work on. **Make sure to reference this issue in your pull request.** :sparkles: Thank you for your contribution! :sparkles:

      - name: Add negative reaction
        if: ${{ startsWith(steps.sa.outputs.IS_70_NEG, 'true') }} # 50, 60, 70, 80 and 90 also available
        uses: peter-evans/create-or-update-comment@a35cf36e5301d70b76f316e867e7788a55a31dae
        with:
          issue-number: ${{ github.event.issue.number }}
          body: |
            Please refer to the Code Of Conduct.
            > "This Aggression Will Not Stand, Man."
```



### Additional Resources / Info
How Computers Generate Random Numbers
Tags: computerscience, algorithms
Published: 2021-11-11 18:57:00

Hey There..! I’m (AsliSachin) Back after a long break 😊. So today we’ll discuss How Computers Generate Random Numbers. So now without wasting much time let’s get right on the main content.

## The Problem
Computers are specially and carefully programmed to eliminate randomness in results. They follow instructions blindly & are therefore completely predictable.

So, can computers generate truly random numbers?

## Categorization
There are two categories of random numbers:

* Pseudo-Random Number (PRN)
* True Random Number (TRN)
They have quite different characteristics.

## PRN
Pseudo-Random Numbers are generated by using an algorithm so the results appear random, even though they aren’t.

For most applications, a Pseudo-Random Number is sufficient.

## TRN
True Random numbers are generated by observing some outside data, like mouse movements of the fan noise, which is not predictable. The results might be slightly biased but they are not generated by a deterministic algorithm. [Read More](https://aslisach.in/2020/how-computers-generate-random-numbers/)
Movie Maker
Tags: actionshackathon21, github, opensource
Published: 2021-11-11 16:52:28

---
title: Movie Maker
published: true
description: My 1st submission to the GitHub Actions x DEV Hackathon 2021!
tags: actionshackathon21, github, opensource
---

[Instructions]: # (To submit to the GitHub Actions x DEV Hackathon 2021, please fill out all sections.)


### My Workflow

This project uses GithubActions to assemble a random movie clip every hour or so. Each of the frames is an image taken from the Unsplash Dataset.

The movie clip is available in the form of an artifact available in the release section.

There is no release history. The artifacts are replaced every time the workflow runs. Making the movie clip unique.

[Note]: # (Please make sure the project links to the appropriate GitHub Actions repository, and includes [an open source license](https://choosealicense.com/) and README.)

### Submission Category:

- Wacky Wildcards

[Note]: # (Maintainer Must-Haves, DIY Deployments, Interesting IoT, Phone Friendly, or Wacky Wildcards)


### Yaml File or Link to Code


[Note]: # (Our markdown editor supports pretty embeds. Try this syntax: `{% github link_to_your_repo %}` to share a GitHub repository)

{% github oscarnevarezleal/movie-maker %}


### Additional Resources / Info

#### Actions used

- actions/checkout@v2
- actions/cache@v2
- FedericoCarboni/setup-ffmpeg@v1
- actions/upload-artifact@v2
- ncipollo/release-action@v1

#### Tech

- [FfMpeg](https://www.ffmpeg.org/)
- [Unsplash Dataset](https://github.com/unsplash/datasets)
- [Github Actions](https://github.com/features/actions)
Skip any value in scanf() function in C programming language
Tags: c, variable, programming, function
Published: 2021-11-11 18:43:54

## What we want to do?

Suppose, we will take three integer values from the user, but we want to ignore the second integer value even though we are taking input value for that. What we can do? The first thing that come to our mind is that, we can simply use two format specifiers for that (`%d%d`) so that we don't have to take the middle value at all. The thing is, we need to take three integer values from the user and skip the middle integer value (also, we need to stop that value from assigning into any variable). How can we do that?

If we want to skip any data from assigning into variables in the `scanf()` function in C programming language, then we can use the asterisk (`*`) symbol right after the percent (`%`) symbol in the `scanf()` function. So, we can do that by simply adding an asterisk `*` after the `%`. 
```c
scanf("%d %*d %d", &a, &b);
```
![Skip value in scanf fucntion](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fhhjqbmp0mvnlod52kpk.jpg)

It will receive the three integer values as input, but it will not assign the second integer value into any variable.


## How does asterisk (`*`) work here?
An asterisk (`*`) right after the percent symbol (%) means that the datum read by the format specifier will not get stored in any variable. In short, asterisk (`*`) means that the value will be read, but it will not be written into variable. Also, `scanf()` does not expect variable pointer in its parameter list for this value.

## Summary
In short, the `*` basically means the specifier is getting ignored (That means that the integer is getting read, but it is not getting assigned).

I hope you enjoyed this read!

For technology related some cool technique, specially if you are interested in Java Object Oriented Programming based Bengali content, then you can visit my [YouTube](https://www.youtube.com/c/InnovationWithIphim) channel. 

If you want to get yourself updated with many cool project related stuff, then you can 👨‍💻follow me on [GitHub](https://github.com/FahimFBA), [LinkedIn](https://www.linkedin.com/in/fahimfba/), [Twitter](https://twitter.com/Fahim_FBA).
TDev Conference
Published: 2021-11-11 18:41:04

The Tennessee Developer Conference (Tdev conf) was last week. [TDev Conf](https://tdevconf.com/) is a virtual conference started in 2020 by the four Tennessee .Net Users groups. 
https://twitter.com/tdevconf

The concept for this event was born out of the Nashville .Net User group meeting when someone suggested a virtual consolidated meetup because all the meetups were being canceled.

The one-day event ran multiple simultaneous tracks. Attendees could bounce between stages, named for user group areas. They could also ask questions in the chat. Plus you could meet people in the Hallway track.

Here are just some of the talks that were presented.

The keynote speech by Paul Sheriff was given midday. [Paul Sheriff](https://www.pluralsight.com/author/paul-sheriff)) is a Pluralsight author and instructor. I've seen him at the .Net Nashville user group a couple times.


 [Alishah Novin](https://twitter.com/alishahnovin), "How Yoda, Prof X, Gandalf and Nick Fury Build Strong Teams", talked about building teams He used fictional teams like the Avengers and X-men and the Fellowship, to describe team archetypes and how each role is important to a team. 

[Tracy Lee](https://twitter.com/ladyleet) talk was "How to Get Involved in Open Source: A Quick start Guide." She talked about how to network with open source maintainers. Get to know them before asking for something. Maintainers are more likely to help someone they're more familiar with than a stranger.  


[Taylor Desseyn](https://twitter.com/tdesseyn) also talked about Social Media. His speech was "How Social Media Can Land You Your Dream Job." He showed how to use Twitter, LinkedIn, and Polywork to help build your brand and your network. 
 
This was the second year for TDev and I hope they continue having them. I know the Nashville .Net group is still virtual, I don't know about the others. I like the chat feature and the size of the conference. It was small enough that I was able to chat with some of the speakers. A few of which I knew from local events or social media. See networking pass off.

Some talks may be available on user group's YouTube in the future. I'll add a link if they are posted.

Are you enjoying the remote conferences? Are you ready to meet in person?