teleren/devto huggingface dataset:
Your soft skills matters as a developer
Tags: softwaredevelopment, softskills, developers, softwareengineer
Published: 2022-10-31 14:00:52

Developers now use soft skills to work efficiently & productively with their colleagues during the development process.

Gone are the days when the only expectations from developers were centered around their software development and technical skills.

Although writing code is still one of the cornerstones of developer activities, the truth is that the software industry has become more integrated with business in recent times.

So expectations from developers in terms of soft skills have also evolved.
The Simplest I18N JS Framework is here!
Tags: javascript, webdev, tutorial
Published: 2022-10-31 13:59:15

The internationalization for web apps was a nightmare until now. Say hello to the [Ultimate I18n JS](https://github.com/b4rtaz/ultimate-i18n-js)!

### 🚀 Three Steps

**First step**. Add the Ultimate I18n JS to your `<head>` section as the first script on your page.

```html
<script src="https://cdn.jsdelivr.net/npm/ultimate-i18n-js@0.0.1/lib/index.min.js"></script>
```

**Second step**. Set your default language code in the `<html>` tag.

```html
<html lang="en">
```

**Third step**. Add translations by setting the `i18n-[LANG_CODE]=""` attribute to any element on your page.

```html
<h1
  i18n-pl="Witaj świecie"
  i18n-es="Hola Mundo">
  Hello World <!-- Your default language (en) -->
</h1>
```

That's it! 🤯 Your page is multilingual now!

The library will automatically detect a user's language and display a right translation.

To manually change the language call the `set` method on the `UltimateI18n` object.

```html
<button onclick="UltimateI18n.set('en');">EN</button>
<button onclick="UltimateI18n.set('es');">ES</button>
<button onclick="UltimateI18n.set('pl');">PL</button>
```

The library remembers that choice. After the page is reloaded a user still sees a chosen language.

### ⚒ Module Bundlers

You may use the Ultimate I18n JS with Webpack or a similar bundler. To install the package execute the below command.

`npm install ultimate-i18n-js`

Now you need to call the `setup` method before render your app.

```js
import * as UltimateI18n from 'ultimate-i18n-js';

UltimateI18n.setup();

document.addEventListener('DOMContentLoaded', () => {
  document.getElementById('placeholder').innerHTML = `
    <span
      i18n-pl="Kocham czerwony"
      i18n-es="Amo el rojo">
      I love red
    </span>
  `;
});
```

That's it! 🤯

# 🤩 Demos

Check these online demos:

* [Basic](https://b4rtaz.github.io/ultimate-i18n-js/examples/static-web-app/basic.html)
* [Create Element](https://b4rtaz.github.io/ultimate-i18n-js/examples/static-web-app/create-element.html)
* [Document Write](https://b4rtaz.github.io/ultimate-i18n-js/examples/static-web-app/document-write.html)
* [Dynamic Text](https://b4rtaz.github.io/ultimate-i18n-js/examples/static-web-app/dynamic-text.html)
* [Late Setup](https://b4rtaz.github.io/ultimate-i18n-js/examples/static-web-app/late-setup.html)
How to build async pipe in Angular from scratch
Tags: angular, javascript, frontend, typescript
Published: 2022-10-31 13:58:46


![Basic async pipe in angular](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s0e48i1girci6nn5pas8.png)
**But what is a Pipe in Angular?**
Pipes are used to transform input data into something. For example we have async pipe which takes a Promise or Observable and transforms it to a resolved or latest value in case of a observable.

**Built in async pipe in Angular**
Angular has a built in pipe **_async_** we are going to make it from scratch but first understand how it works

![App component](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r2p7oaipz4lkclu2bpu0.png)

As you can see we have a variable of type promise name which will resolve to ‘Angular 14’ after 3 seconds. Lets try to use it in our HTML file

![HTML file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/me8t3jdwgpta6if0n17e.png)

But in output we can’t see Angular 14 after 3 seconds instead [Object Promise] is being shown in the output

So lets use async pipe to fix this

![HTML file](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/l8y4eo3min0rkdvh61y6.png)
So by just adding | async we can see it showed ‘Angular 14’ after 3 seconds

**Ok so now the interesting part lets try to code this pipe from scratch:-**

![Custom Pipe](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z1ytqr7xflfe4ro1s5yu.png)
**So how this works?**

See, we have used impure pipe by setting pure=false, because we want to call transform method when value(this.value) changes.

Intially the value is null so it will return null first when the promise is in pending state but after 3 seconds it will update the value to whatever data we have passed and this will cause transorm method to rerun and we will see ‘Angular 14’ in the output.

How to use this?

Add CustomAsync class in the declarations array in app.module.ts and use `{{name | customAsync}}`

Checkout its demo
[
https://stackblitz.com/edit/angular-ivy-oamp4e](https://stackblitz.com/edit/angular-ivy-oamp4e)
When “Shit” happens, take responsibility
Tags: softwaredevelopment, frontendevelopment, technology, softwareengineer
Published: 2022-10-31 13:56:37

When “Shit” happens, take responsibility.
One of the things you need to learn early in your career as an aspiring software professional is the habit of taking responsibility for yourself and your actions.

It is never easy to take responsibility for your actions, especially when those actions have consequences. But rest assured, it is worth it.

To reach your potential as a software professional, you must continually improve yourself, and you may not do that if you do not consciously take responsibility for your actions and learn from your mistakes.

The truth is that you will face challenges that you are completely new to.

Despite thorough testing, good documentation, and solid automation, things still go wrong. Unforeseen technical problems come up. 

These things happen, and we try to deal with them as professionally as we can.

You may work incredibly hard to make sure that no mistakes happen on the application you are working on. But sometimes, even under the most controlled environments, “shit” still happens. Your code could break things.

Something as small as forgetting to add a closing curly bracket on a code block could mess up your application branch or maybe you accidentally push a work-in-progress state to remote, the master may be potentially broken. This can significantly impact the behavior of the application.

When you do accept the responsibility for an outcome, you should expect to be held accountable for it. When you make a mistake (as we all do) or an error in your code, admit it honestly and try to offer a possible solution to resolving the error.

You don’t have to blame someone or something else or make up an excuse. Don’t blame all the problems on a particular library, framework, programming language, or your coworkers. Any of these may play a role, but it is up to you to provide solutions, not excuses.

Before you inform your Engineering Manager or your team members why something can’t be done, or is broken, stop and think if your excuse sounds reasonable.

Sometimes I find the sentence "It can't be done or it's not possible" as inappropriate to say as a software professional. Instead of excuses, provide options. 

Don’t say it can’t be done; explain what can be done better to salvage the situation.

Does the code have to be refactored? let them know, and explain the value of refactoring.  Do you need to spend more time prototyping to determine the best way to proceed?

Perhaps you need additional resources to complete the task. Or maybe it’s just you: do you need to learn some technique or technology in greater depth? Would a book or a course help? Don’t be afraid to ask, or to admit that you need help.

Stepping up and taking responsibility for your action is one of the most important things you will ever do in your journey to becoming a professional software developer.
How to Create Zip Your Code From Visual Studio Code
Tags: zip, linux, vscode
Published: 2022-10-31 13:52:23

Hello, dev.. 👋

In this tutorial, I will share about how to create a zip file of your code directly from Visual Studio Code without an addon. We need a terminal to execute our command line.

For example, we want to zip the **mahal** folder, so we open the terminal from the themes folder. Right-click on the **themes** folder and select "**Open in Integrated Terminal**".


![Integrated Terminal on VS Code](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2e52h4wgn5lo1s3ukq5k.png)

After your terminal command line is open, you can execute this command

```
zip -r mahal.zip mahal -x '*.git*'
```

Explanation:

- **mahal.zip** is the name of the zipped file. You can change with your need.
- **-r** means to zip a directory recursively. This option helps you to zip all the files present in the specified directory.
- **-x** means exclude the files in creating the zip. For example, we exclude the .git folder from zipping.

Good luck 🍻
Learn to be teachable as a software engineer:
Tags: beteachable, softwaredevelopment, learning, technology
Published: 2022-10-31 13:52:11

One of the mistakes I see most software developers make is not accepting that they don’t know what they don’t know.

They think if they admit they don't know a thing, they are showing they are weak or inexperienced in that area.
Always learn to say "I don't know" when you don't know a particular topic or concept.

Give room for people to teach you what you don’t know or only have a little knowledge of.
It’s often exhausting to pretend you know something when you don’t know actually it.

Knowing how to admit when you don’t know a thing is the first step to becoming excellent at what you do.

Accepting that you are open to learning from others is a sign of maturity and one of the first steps towards gaining mastery.

Acknowledging what you don’t know or aren’t sure about not only makes you more relatable but also makes you appear even more competent and confident.
Electronic Frontier Foundation (EFF)
Published: 2022-10-31 13:51:53


![EFF](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/1w2gagl8jd7kfr5x3wg4.png)

**How I got to know about EFF?**
Well, one of my friends told me about the **‘HTTPS Everywhere** browser extension long ago when I asked him what that lock on the URL bar stood for. I was curious to know what it signifies when red or clean locked. Having installed it, I got suggestions for the **‘Privacy Badger’** extension, since both these extensions are tools by the EFF. I clicked on it and went on to read. This search soon landed me on the Electronic Frontier Foundation page!

The Electronic Frontier Foundation is the leading nonprofit organization defending civil liberties in the digital world. Founded in 1990, EFF champions user privacy, free expression, and innovation through impact litigation, policy analysis, grassroots activism, and technology development. EFF's mission is to ensure that technology supports freedom, justice, and innovation for all people of the world.

**Mission :** To ensure that technology supports freedom, justice, and innovation for all people of the world.

**Activities :**

- [Patent Bursting Project](https://en.wikipedia.org/wiki/Patent_Busting_Project)

This initiative by EFF challenges patents that the organization claims are illegitimate and suppress innovation or limits online expression. 
- [Email privacy act]
(https://www.eff.org/deeplinks/2018/05/email-privacy-act-comes-back-hopefully-stay)


![EFF](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bwj0kjle6mfpksrgzkfc.png)

**The work of the foundation is currently focused on the following dimensions:**
**free speech :** defending the Internet and its open architecture as a platform for free speech
**fair use and intellectual property rights :** defending the balance between fair use and intellectual property legislation (copyright, trademark, etc.), and ensure that the Internet and digital technologies continue to empower users as consumers, creators, innovators, scholars, and citizens;
**Innovation :** protecting innovators and promoting creativity and competition;
**Privacy :** promoting and defending the privacy rights of individuals in the digital environment, and supporting thde development of privacy-enhancing technologies;
**international activities :** defending privacy, freedom of expression, digital consumer rights, and innovation at a global level, through capacity building activities, campaigns against legislative proposals and Internet treaties and conventions that threaten to undermine human rights, and advocacy to convince companies and governments to uphold human rights standards and the rule of law; and
**Transparency :** demanding for and promoting transparency at a governmental level.

Some of the noticeable works by EFF can be found [here](https://www.eff.org/work).

**_~ Akshay Khoje_**
Create Svg wave object with Getwaves site - 2022
Tags: getwaves, svg, object, webdev
Published: 2022-10-31 13:50:00

In this article, I will be introducing [getwaves](https://getwaves.io/) , a site where you can easily create the waves object you want to use in your software or design projects. 

If you are a designer, you had to know how to do more or less vector work to create a wave object. If you are a software developer and you don't have a design, you had to visit a lot of sites for such a wave object. Now it is no longer necessary. With the site I will introduce to you today, you will be able to easily create your own wave objects with one click. 

## What is the [Getwaves](https://getwaves.io/) site?

Getwaves is a simple wave object creation site made by zcreativelabs. On the Producthunt site, it is a product that won first place on August 16, 2019.

## How to use the [Getwaves](https://getwaves.io/) site

Get waves site is actually very easy to use as I said at the beginning. In the picture below, I will be explaining one by one what the numbered fields do.


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i6tgw42zf3dct8hzl2fq.png)

1. It is the area where you determine the shape of the wave to be created. There are 3 different options.
2. It is a field where you can determine the direction of the wave. Upward or downward?
3. It is the area where you can adjust the color of the wave. You cannot select two colors and create gradients color.
4. It is a button where you can get the encoding of the wave as svg or download it as svg.
5. It is a setting where you can adjust the visibility (opacity) value of the wave.
6. It is a setting where you can adjust the number of curves in the wave.
7. It is a button to generate random waves.
8. The resulting wave.

## Example
Let's do one example right away. 

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4hcjy9stgcuheps6ds2x.png)

## Let's look at the output of this example as svg.

``` html

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320">
  <path fill="#5000ca" fill-opacity="0.9" d="M0,160L75.8,96L151.6,128L227.4,288L303.2,64L378.9,160L454.7,32L530.5,288L606.3,128L682.1,0L757.9,160L833.7,128L909.5,96L985.3,192L1061.1,224L1136.8,192L1212.6,192L1288.4,224L1364.2,0L1440,288L1440,320L1364.2,320L1288.4,320L1212.6,320L1136.8,320L1061.1,320L985.3,320L909.5,320L833.7,320L757.9,320L682.1,320L606.3,320L530.5,320L454.7,320L378.9,320L303.2,320L227.4,320L151.6,320L75.8,320L0,320Z"></path>
</svg>

```

Yes, in this blog post, we took a look at getwaves, a site where you can create the wave object you want to use in your design or software projects. If you like the content, don't forget to share or comment. If I have a mistake, do not hesitate to inform me by writing a comment.  Anyway, see you in my next blog post... 😁

## Source
[https://en.musayazlik.com/create-svg-wave-object-with-getwaves-site-2022/](https://en.musayazlik.com/create-svg-wave-object-with-getwaves-site-2022/)

[Click here to go to the site...](https://getwaves.io/)
Why do I need to do `--set-upstream` all the time?
Tags: git, push, config
Published: 2022-10-31 13:40:37

---
title: Why do I need to do `--set-upstream` all the time?
published: true
description: Why do we need to say --set-upstream for a new branch while pushing it for the first time?
tags: git, push, config
# cover_image: https://direct_url_to_image.jpg
# Use a ratio of 100:42 for best results.
# published_at: 2022-10-31 13:38 +0000
---

No you don't have to. Set the config `push.autoSetupRemote` to `true` once and you are all set. 
```
git config --global push.autoSetupRemote true`
```
Digital Rights Management
Published: 2022-10-31 13:32:16

**DRM
Does it really affect me ?! 🤔**

What if you buy a new e-book but can't read it on the reading software of your choice - DRM.

Digital Rights Management (DRM) technologies tend to have control over what you can and cannot do with the software and hardware of your belongings. Corporations propose arguments that these DRMs avoid copyright infringement and keep consumers away from viruses. However in reality, these cut down the market competition they face and manipulate consumers to act as per the "T&C".

DRM has proliferated thanks to the Digital Millennium Copyright Act of 1998 (DMCA), which sought to outlaw any attempt to bypass DRM.

Let's have a look at a real life example of this.

**Printers - Earlier DRM over ink cartridges , now paper as well !!!**

A printer has two input requirements : ink and paper. Printers use ink cartridges, which need to be replaced later. Many manufacturers control the cartridges that can be used for their printers, so the consumers have to by default use the cartridges manufactured by the same company. They do so by adding chips to the cartridges, printers can sense these chips containing a key that needs to be matched with that of the printer. As only the company has this key, cartridges manufactured by other companies can't be used. This is how they apply DRM over ink.

This strategy shatters when it faces a chain supply problem when manufacturers can't get chips.

Now what remains is the paper. But how can DRM be put on paper?

Label printers are thermal printers, having printheads consisting of tiny electrical elements that heat special, thermo-reactive paper that turns black when heated. 'Dymo' is one of the manufacturing companies that produce them. Dymo has put RFID readers in its label printers and preventing the printer owners from putting third-party labels through their printers.

The label rolls i.e., the input paper, come with a booby-trap, an RFID-equipped microcontroller that authenticates the company's labels with the printers manufactured by them. Due to this, you cannot use labels that are not of the same manufacturer. Now the consumers are left with no option than buying the labels of Dymo itself. The models that feature this DRM are Dymo 550 and the 5XL.

**Enough of problems, tell the solution-**

Section 1201 of the Digital Millennium Copyright Act specifies: those who want to outmaneuver such DRMs to the possibility of huge fines, it's either live with it, or junk the printer and buy its substitute. Even with the cost of throwing away your Dymo label printer and replacing it with an alternative, you still save a lot in the long run, by buying labels of your choice !! Simple :)



**References:**

- EFF - [DRM](https://www.eff.org/issues/drm)
- ZDNET - [Dymo causes a stir by adding DRM to printer paper](https://www.zdnet.com/article/dymo-causes-a-stir-by-adding-drm-to-printer-paper/)

**_~ Ved Bilaskar_**
Le moteur v8
Tags: javascript, programming
Published: 2022-10-31 12:58:33


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7tv28slj0y2uowszlmp7.jpeg)
## Qu'est-ce que Chrome V8 ?

Chrome V8 est un moteur JavaScript, ce qui signifie qu'il exécute du code JavaScript. À l'origine, JavaScript a été écrit pour être exécuté par les navigateurs web. Chrome V8, ou simplement V8, peut exécuter du code JavaScript dans un navigateur ou en dehors de celui-ci, ce qui rend possible l'écriture de scripts côté serveur.

Comme un moteur de voiture V8 (huit cylindres), le moteur V8 de Chrome est rapide et puissant. V8 traduit le code JavaScript directement en code machine* afin que les ordinateurs puissent le comprendre, puis il exécute le code traduit, ou compilé. V8 optimise également l'exécution de JavaScript.

*Le code machine est un langage que les processeurs (CPU) peuvent comprendre. Il est purement numérique, c'est-à-dire composé de chiffres.


## Qu'est-ce que Node.js ?

Node.js est un environnement d'exécution* pour le code JavaScript basé sur le moteur Chrome V8. Il est asynchrone, ce qui signifie qu'il n'est pas nécessaire d'attendre la fin d'un processus pour en lancer un autre. Comme V8, Node.js est gratuit et open source. Contrairement à V8, il n'a pas de fonctionnalité sandboxing intégrée.

(Les habitués de JavaScript auront remarqué l'extension de fichier « .js ». Il s'agit simplement d'un choix purement esthétique pour que le nom de l'environnement d'exécution indique son association avec JavaScript et ne signifie pas que Node.js est un fichier JavaScript.)

*Un environnement d'exécution est un environnement logiciel dans lequel le code est exécuté.

## Pourquoi V8 et Node.js sont-ils importants en matière d'informatique serverless ?

Les fonctions serverless doivent pouvoir s'exécuter lorsqu'elles sont lancées. Certains fournisseurs d'informatique serverless proposent Node.js comme environnement d'exécution pour les fonctions JavaScript serverless (d'autres environnements d'exécution sont utilisés pour d'autres langues).

Cloudflare Workers, cependant, utilise directement V8, et ce pour plusieurs raisons. Citons entre autres la rapidité d'exécution des fonctions qui n'ont pas été utilisées récemment. Les démarrages à froid posent problème dans l'informatique serverless, mais l'exécution de fonctions sur V8 signifie que les fonctions peuvent être généralement « lancées » et exécutées dans un délai de 5 ms ou moins. (Node.js consomme plus de ressources et met généralement quelques millisecondes de plus.) Une autre raison tient au fait que V8 sandboxe automatiquement les fonctions JavaScript, ce qui renforce la sécurité.