teleren/devto huggingface dataset:
IFTTT recipe for storing client registry
Tags: webdev, ifttt, if, source
Published: 2022-03-07 22:31:46


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uos6w66usrb5uks8of0e.jpg)
![Img](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/oxjfg8dols7qobfhgq9b.jpg)
![Img](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mqtrm2jtihsz819eu1ja.jpg)
![Img](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kffsejopciy9sx8ab7r4.jpg)[](https://ifttt.com/applets/PAs9Q7TK-store-client-registry)
Is C still worth learning?
Tags: c, programming
Published: 2022-03-07 22:20:29

Let's clear this myth, Rust is not replacing C, and C is not going away anytime soon. 

But you may ask, how come? It's because C is still crucial to this day. For example, the Linux kernel is almost entirely made in C; yes, there's talk of Rust as the second language but keep in mind that it's more towards device drivers and such, not core components. 
No one will rewrite a million lines of code of the Linux Kernel is Rust or Go; that's unreasonable and unnecessary. 

I'm not going to act like a C expert, but as I read up on this debate, I've come to understand that a C programmer thinks C; they don't see some of the faults as issues but as a regular task. For example, I love how Rust manages memory with ownership and automatically implements the `Drop` trait to free values when no longer used, but as I am using C to implement a byte-code compiler, freeing and allocating memory is an exciting topic. 

C isn't for everyone, but that's true for every language. Many people enjoy programming in Python, but I can't seem to get into it because its syntax is too __"simple"__ for me. I prefer a C-style syntax just because of its familiarity. 

Another debate is jobs, and I do understand Python is a scorching topic in the market, but you have to understand this title is if C is worth learning, and it is considering many languages stem from it, and having a great understanding of C can make learning other languages easier. 

I'm in no way trying to force anyone to learn C, it's ultimately your decision (I love it), but if you're considering it, I say go for it!
What is meant by a "shape" in programming
Tags: explainlikeimfive, discuss
Published: 2022-03-07 22:14:09

---
title: What is meant by a "shape" in programming
published: true
description: 
tags: #explainlikeimfive #discuss
//cover_image: https://direct_url_to_image.jpg
---

Devs like to talk about imagining the shape of the code or data and when people say that, all I can think of is a circle and square, traditional _shapes_ and I can't get past that mental model.

Whenever it is explained to me I'm lost and have no idea what it means.

Can someone help me understand this?
Mermaid Highlight
Tags: webdev
Published: 2022-03-07 22:12:46

---
canonical_url: https://waylonwalker.com/til/mermaid-highlight/
published: true
tags:
- webdev
title: Mermaid Highlight
---

Mermaid gives us a way to style nodes through the use of css, but rather than using normal css selectors we need to use `style <nodeid>`.  This also applies to subgraphs, and we can use the name of the subgraph in place of the nodeid.

``` ruby
graph TD;
    a --> A
    A --> B
    B --> C

    style A fill:#f9f,stroke:#333,stroke-width:4px
    style B fill:#f9f,stroke:#333,stroke-width:4px

    subgraph one
        a
    end

    style one fill:#BADA55
```

produces the following graph

![a short mermaid diagram with some highlighted nodes](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qrfwo2wl90gxcovy3rie.png)
Múltiplas validações com o Laravel Pipeline
Tags: laravel, php, braziliandevs
Published: 2022-03-07 21:54:48

É quase certo que você já esteve na situação de ter que validar um objeto através de diversas condições. Nessas situações o comum é ir adicionando _if's_, cada um validando uma condição específica. E não há nada de errado nisso, é uma maneira prática e você resolveu seu problema inicial.

Contudo, com o passar do tempo mais condições vão aparecendo e o que eram 3 _if's_ agora são 15 e seu código começa a ficar muito complexo (se você usa alguma ferramenta para inspecionar o código como o _PHP Mess Detector_, ele literalmente irá reclamar do seu código dizendo que está complexo demais).

Para diminuir essa complexidade de um trecho de código, podemos aplicar um pattern chamado *Pipeline Pattern*. <br>Resumidamente esse pattern cria uma "linha de montagem" com várias etapas sequenciais e passa seu objeto através dessas etapas, retornando o resultado ao final. Essa "linha de montagem" pode, por exemplo, manipular seu objeto, adicionando, atualizando ou removendo atributos. E também pode realizar validações nesse objeto, que é o que faremos aqui.

![Diagrama Pipeline](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/10iglpel8ucjlexjbywn.png)  

No Laravel temos uma implementação desse pattern (_Illuminate\Pipeline\Pipeline_) e é ela que vamos usar hoje para refactor o trecho de código a seguir.

#Exemplo

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

#Refatoração

Primeiramente vamos criar 3 classes para fazer as validações isoladamente.

![Validar Email](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/r3saqe982bamaav0m3xo.png)
 

![Validar Idade](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbxuqfsmdrf8s9cz5x6w.png)
 

![Validar Cpf](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/odjl2oc4t2xb9tr8p7ni.png)
 
 

E agora vamos usar a implementação da Pipeline que existe Laravel.

![Refatoração](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/grs7ecab53h1bmh0wvvd.png)
 

Dessa forma o objeto `$usuario` irá passar por todas as validações e ao final será retornado.

Você pode, também, reaproveitar as validações já existentes e organizá-las de outras formas, criando outras validações, por exemplo, uma que só valide os meios de contato do usuário. Como abaixo:

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

#Conclusão
Como podemos ver, com o uso desse pattern as reponsabilidades de cada validação ficam separadas e muito melhor organizadas. Assim permitindo que a adição, exclusão e manutenção das validações seja feita de maneira muito mais fácil.
Angular CLI Install Fails on RxJS
Tags: angular, npm, tooling, installation
Published: 2022-03-07 21:39:31

---
title: Angular CLI Install Fails on RxJS
published: true
description: When installing the Angular CLI we could see that there was a Fetch Error occurring.
tags: angular, npm, tooling, installation
series: Angular
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xoj7fg47thrqoix282hg.png
---

In a recent call with a client, they were installing the Angular CLI using information from a Knowledge Training (KT) session I had done.

He used the following command ...

```script
npm install -g @angular/cli
```

It failed.

## The Problem

In examining the logs, we could see that there was a `FetchError` occurring for https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz ...

![Log file showing FetchError](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v189ftuze7dxtvamxzd4.png)

He and I both copy-and-pasted the URL into our browsers. His failed while mine worked.

The assumption is that something on his local network (he was in the office, not at home) was blocking this particular download for some reason.

## Failed Attempt

We tried installing the previous version of the Angular CLI. This failed, as well.

```script
npm install -g @angular/cli@12.2.16
```

My assumption is that it uses the same version of RxJS. We could have gone further back, but tried a different direction instead.

In the logs I noticed the `(cache miss)` while I assumed meant that npm looked to see if it had already downloaded the file.

## The Solution

The next thing we tried was using the copy I retrieved to update his npm cache. I sent him the file and we executed the following command on his terminal.

[npm cache add documentation](https://docs.npmjs.com/cli/v7/commands/npm-cache)

```script
npm cache add rxjs-6.6.7.tgz
```

Then we tried the installation again ...

```script
npm install -g @angular/cli
```

![Terminal showing both npm commands run](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y3et3zb7avaakemyfrf6.png)

... and it worked!

## AN UPDATE

We saw the same issue with another `npm install` command and the same process worked. I transferred the file, he added it to the cache, and was able to continue the installation.

It went much faster when we knew what to do ...
Differences between web 2 and web 3
Published: 2022-03-07 21:33:13

The **internet** was created for sharing information. It is the most significant technological innovation that has ever been created in human history. The internet has transformed lives on so many levels. Looking at _2020_ we could see  how heavily reliant the world is on the internet. The use of the internet makes our lives easy, fast and connected. Web 1.0 is the first version of the internet, when it  first came out websites on web 0.1 were read-only. It was powered by a regular computer and anyone could freely build on it. In 2005 all of these changed with web 2.0 also called social media web as it built connections with people. Users could not only interact with the website but also interact with themselves. Facebook, YouTube, and Twitter were just easier ways for people to create their own Web pages. They are both controlled by big giants and single entities. They have absolute power over everything, even on our data, **Cambridge Analytica** collected personal data belonging to millions of Facebook users without their consent for political advertising  by implementing various forms of  psychological targeting. This is where web 3.0 shines, it eliminates the centralized nature of web 2.0 by distributing authority power to everybody.

**Differences between Web 2.0 and Web 3.0**

**Web 2.0** has all users  connected to a central authority, hence information propagates quickly, as propagation is handled by a central authority. However, in **[Web 3.0](https://blockgames.gg/)** the furthest participants on the network may potentially be many edges away from each other. Information broadcast from one side of the network may take a long time to reach the other side.

In the event of conflicting data in **Web 2.0**, resolution is clear and easy: the ultimate source of truth is the central authority. For **[Web 3.0](https://nestcoin.com/)**, a protocol (often complex) is needed for dispute resolution, if peers make conflicting claims about the state of data which participants are meant to be synchronized on.

**Web 2.0** has a single point of failure: malicious actors may be able to take down the network by targeting the central authority. This problem is solved by **[Web 3.0](https://zuri.team/)** by having no single point of failure: network can still function even if a large proportion of participants are attacked/taken out 

Podcasts, blogs, and video sites are examples of **Web 2.0**. AI and ML-powered applications (dApps) such as multi-user virtual environments, 3D portals, and integrated games will be available for **Web 3.0**.
Kubernetes Community Days Chennai Chapter - Logo Highlights
Tags: kcdchennai, kubernetes, devops, cloud
Published: 2022-03-07 21:25:49

_by Gayathri R, Co-Organizer, KCD Chennai 2022_

**Kubernetes Community Days(KCD) Chennai** chapter logo hosts multiple identities such as the tri-color of the Indian National flag, monuments in Chennai and green avenue trees.

In the middle of the logo, is the steering arms of the Kubernetes rudder, 3 stripes of the Indian national flag (Saffron, white and green), lined by 7 iconic monuments in Chennai :

1. **Chennai Central station** - One of the most prominent landmarks of Chennai that serves as the main gateway by Rail to the rest of the country.
2. **Vailankanni Shrine** - Known as the 'Lourdes of the East', the Velankanni Church is one of the most revered pilgrimages for Catholics in India.
3. **San Thome Cathedral Basilica** - It's a stunning piece of architecture steeped in religious history.
4. **Ripon Building** - It is the seat and headquarters of the Greater Chennai Corporation.
5. **Kapaleeshwarar Temple** - It's one of the prominent Shiva temples in India situated in Mylapore, Chennai.
6. **St. George’s Fort** - It is historically called as White Town. It's the first English (later British) fortress in India
7. **Valluvar Kottam** - It is the memorial monument of the Tamil poet Thiruvalluvar who wrote the famous Thirukkural.

The Logo symbolizes - **Team spirit, talent, learning and action**.

- Join the KCD Chennai Chapter: [www.kcdchennai.in](www.kcdchennai.in)
- Follow us in Twitter: [twitter.com/kcdchennai](twitter.com/kcdchennai)
- Follow us in LinkedIn: [linkedin.com/in/kcdchennai](linkedin.com/in/kcdchennai)
- Join our slack channel: [slack.cncf.io](slack.cncf.io) #kcd-chennai
- Email: [organizers-chennai@kubernetescommunitydays.org](mailto:organizers-chennai@kubernetescommunitydays.org)
How Forem is Supporting the People of Ukraine
Tags: meta
Published: 2022-03-07 21:21:21

Dear DEV Community,

I wanted to let you know that [Forem](http://forem.com/) (the open source software company behind DEV) has made a donation to [Mercy Corps](https://www.mercycorps.org/) to support the Ukrainian people whose country is currently being invaded. Mercy Corps is an organization focused on humanitarian aid and building community.

Our hearts go out to our community members and colleagues that are most directly impacted by this war and to all who are hurting (especially to the countless displaced Ukrainian families). 

We are humbled by those of you who have shared how this devastating attack has impacted you personally. We hope that you are able to find connections with other like-minded people in places like DEV — now more than ever. 

If you are similarly compelled to make a donation in support of the Ukrainian people yourself, you can [donate to Mercy Corps here](https://www.mercycorps.org/donate/crisis-ukraine-give-now). For other giving directions, [here is a resource](https://www.stopputin.net/) to check out with a lot of other options for impact.

Those of us lucky enough to have never experienced this type of strife firsthand must collectively act to help the best of humanity shine during times of atrocity. Anyone with a platform, no matter the size, has the power to be a steward of a better tomorrow. ❤️
Kubernetes Community Days Chennai 2022
Tags: kcdchennai, kubernetes, devops, cloud
Published: 2022-03-07 21:19:08

Kubernetes Community Days (KCDs) are community-organized events that gather adopters and technologists from open source and cloud native communities for education, collaboration, and networking. KCDs are supported by the Cloud Native Computing Foundation (CNCF). These fun, locally-defined events help grow and sustain the Kubernetes community.

We are hosting the very first Kubernetes Community Days in Chennai on 3-4 June 2022. It's a two day Virtual event with Keynotes, Breakout sessions and much more. We invite the open source community to benefit from this event. Come join us!!

- Join the KCD Chennai Chapter: [www.kcdchennai.in](www.kcdchennai.in)
- Follow us in Twitter: [twitter.com/kcdchennai](twitter.com/kcdchennai)
- Follow us in LinkedIn: [linkedin.com/in/kcdchennai](linkedin.com/in/kcdchennai)
- Join our slack channel: [slack.cncf.io](slack.cncf.io) #kcd-chennai
- Email: [organizers-chennai@kubernetescommunitydays.org](mailto:organizers-chennai@kubernetescommunitydays.org)
Major difference between Web2 and Web3
Published: 2022-03-07 21:07:14

Web2 is read and write. People can create and consume contents, it made space for everyone to become creator. Creators do not full ownership over their content, data, and assets.

In web2 privacy is a huge concern. Users need to create identity across platforms. It is centralized – the users are the clients, and the companies control the servers.

Web3 is read, write and own. People can create, consume and own contents. Creators have full ownership of their content, data and assets. It is open, decentralized, censorship-resistant, immutable, trustless, and permissionless.

https://blockgames.gg/
https://nestcoin.com/
https://zuri.team/
Unicode Character “ ” (U+2800)
Tags: codenewbie, opensource
Published: 2022-03-07 21:02:59

## What is unicode?

The Unicode Standard is the universal character representation standard for text in computer processing. Unicode provides a consistent way of encoding multilingual plain text making it easier to exchange text files internationally.

The Unicode Standard defines code points (unique numbers) for characters used in the major languages written today. This includes punctuation marks, diacritics, mathematical symbols, technical symbols, arrows, dingbats, and so on. In all, the Unicode Standard provides codes for over 100,000 characters from the world’s alphabets, ideograph sets, and symbol collections, including classical and historical texts of many written languages. The characters can be represented in different encoding forms, such as UTF-8 and UTF-16.

The Unicode Standard is fully compatible with the International Standard ISO/IEC 10646; it contains all the same characters and code points as ISO/IEC 10646. This code-for-code identity is true for all encoded characters in the two standards, including the East Asian (Han) ideographic characters. The Unicode Standard also provides additional information about the characters and their use. Any implementation that conforms to Unicode also conforms to ISO/IEC 10646.


## So What Is U+2800?

Unicode space for free fire nick names - often misused as a blank, unique space symbol. The Braille pattern "dots-0", also called a "blank Braille pattern", is a 6-dot or 8-dot braille cell with no dots raised. It is represented by the Unicode code point U+2800, and in Braille ASCII with a space.

## What can it be used for?

Well since it is a blank space, what I thought you can do with it is throw it randomly in your code if you are worried someone might use it without crediting you etc. Another valid way of using this can be to have invisible names on chat apps like <a href="discord.com">**Discord.**</a>
TERMINAL KOMANDALARI PART-1
Published: 2022-03-07 20:49:48

### `ls`
 - hozirgi papkadagi barcha narsalarni chop etiladi
 - `a` tanlovi orqali yashirin fayl va papkalar ham chop etiladi

### `pwd` (print working directory)
- joriy papka manzilini chop etadi
- `~` manzil  `$HOME` manzilga teng

### `cd` (current directory)
- joriy papkani o'zgartiradi, ya'ni sizni boshqa manzilga olib boradi

a. **~ # `cd Documents`##
b. **Documents # `cd ~`**
a.komanda orqali **Documents** papkasiga o'tiladi.
b.komanda orqali **$HOME**ga qaytiladi

### `echo`
- berilgan qo'shtirnoq`""` yoki bir tirnoq `""` ichidagi tekstni terminalga chop etadi
```sh
echo 'Lyuboy tekstni chop etadi'
echo "qo'shtirnoq ham ishlaydi"
echo qo`shtirnoqSIZ HAM ishlaydi
```
### `mkdir`
- berilgan manzilda papka yaratadi
```sh
mkdir TEST
```
>Joriy papka ichida *Test* degan papaka yaratadi Agar papka mavjud bo'lsa, error beradi.

### `rm` 
- berilgan papka yoki faylni o'chiradi. Bu komanda orqali  o'chirilgan fayl va papkalar  KORZINKAGA tushmaydi.
- `-r` tanlovi orqaligina papkalarni o'chirsa bo'ladi 
- `-f ` (FORCE)  tanlovi orqali o'chayotgan fayl yoki papka majburlab o'chiriladi
Stop Struggling with Merging Branches and Use these Git Commands instead
Tags: git, github, devops
Published: 2022-03-07 20:21:20

# Stop Conflicting Merge Requests and Use These Commands instead ⤵️

## -Xtheirs

Using the <code>-Xtheirs</code> flag when running <code>git rebase </code> or <code>git pull</code>, will favor the incoming changes from the branch you are rebasing/pulling from. Doing this means you accept any incoming changes from the branch you are rebasing/pulling off of. Say goodbye to going through to accept them all manually. Here is an example of how the command can be used:

```
git rebase -Xtheirs <branch you are rebasing/accepting changes>
```
or 

```
git pull origin <branch you are rebasing/accepting changes> -Xtheirs
```

## -Xours

Similarly using the <code>-Xours</code> flag when running <code>git rebase </code> or <code>git pull</code>, will favor the YOUR changes when rebasing with another branch. Doing this means you are accepting and keeping YOUR changes while pulling or rebasing from another branch. Here is an example of how the command can be used:
```
git rebase -Xours <branch you are rebasing/accepting changes>
```
or 

```
git pull origin <branch you are rebasing/accepting changes> -Xours
```


## Conclusion

I hope this tiny tutorial helps make the tedious process of merging branches can be a tad bit easier. Let me know what you think of these commands!🌟
usefull sass mixins 
Published: 2022-03-07 20:19:57

1.adding a flex display to a parent.
```
@mixin flex ($direction , $justify , $align){
    display: flex;
    flex-direction: $direction;
    justify-content: $justify;
    align-items: $align;
}

```
2.width and height 
```
@mixin wh($width , $height){
    width: $width;
    height: $height;
}
```
Ng-News: Issue 22/09
Tags: angular, javascript, programming, webdev
Published: 2022-03-07 20:19:04

This is a weekly posting, covering the latest updates from the Angular community.

{% youtube sDqHZRjfRPs %}

## TypeScript 4.6

TypeScript 4.6 was released. One of the main additions was the support for ES2022.



It extends an `Array` with an `at` method, which allows us to access the last element directly.

![Array.at](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7r2k568km1eeos3qcwf6.png)

Another addition is that the `Error` object has a `cause` property that can be another error object. This is very useful when you want to rethrow an error.

![Error.cause](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tzs51egx6x6p7iw4c3hm.png)

And finally, we have support for private properties and methods. Be aware of the difference between TypeScript's `private` keyword and the equivalent `#` symbol in Ecmascript. The `private` keyword is only valid for the compilation. If you also want to have private access scope during the runtime, you need to use the `#` keyword instead.

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

https://devblogs.microsoft.com/typescript/announcing-typescript-4-6/

## Video Sessions

With "State of Angular" and "Angular Gaming Stream", we had two video sessions where members of the Angular team answered questions.

One interesting point was that Jeremy Elbourn explained why Angular does not replace Karma with more popular alternatives like Jest. According to Jeremy, Jest, but also a little bit of Cypress, do not run their tests in a real browser environment.

This improves the developer experience but reduces the fidelity. Google prefers fidelity in this particular case.

{% youtube _0a4fbzZWQE %}

{% youtube cmNq6iTNLBU %}

## Miscellaneous

### Introduction into Playwright
Tim Deschryver wrote an introduction into Playwright, which is, like Cypress, a framework for E2E tests. 

https://timdeschryver.dev/blog/writing-your-first-playwright-test

### Angular & Vite
Brandon Roberts, did a video about Vite and its potential integration into Angular. Vite is an alternative to webpack and is known for its speed.

{% youtube P9vcLPsW9lQ %}

## New Releases

Chrome 99: https://developer.chrome.com/blog/new-in-chrome-99/