teleren/devto huggingface dataset:
Getting a Tech Job, Internship, Remote work in 2022
Published: 2022-10-28 14:39:04

## Summary

This blog is going to be about getting an internship, Remote work, improving your LinkedIn profiles, and where to apply to get offers. For anyone looking for a full-time role, stay tuned until the very end to get a surprise!

---

## ⭐ A good Linkedin Profile


![Tamal's Linkedin Profile](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7ogdccwpwj8f85s5f0d.png)

Having a well maintained LinkedIn profile is **extremely important** if you want to get a job, internship, or any kind of professional work. You would want to tell the user viewing your profile maximum details about who you are and how good you are at the work you do.  

1. Include a minimal yet professional profile picture and cover picture. 
2. Make sure you write a proper bio and also a proper header that **attracts the maximum attention**.

---

## ⭐ A good resume

A resume is one of the **most important things** in your professional career. It is not such a thing that can be perfected in one try, you need to always edit and customize your resume based on the type of job or the job description. 

1. Make sure you provide it clean and neat resume **highlighting important keywords** about your projects, your work experience, education, skills, activities, and so on. 
2. Make it simple but let it have an impact on the people that are viewing it

---

## ⭐  A portfolio

The best way to show all of your works, builds, projects and other activities is to build out a portfolio. 

1. Make sure it is **mobile responsive** and optimized.
2. Keep it clean and minimally styled while adding your most attractive works in it

---


## ⭐ Applying to internships/jobs

There are alot of other portals, some of the best are [Turing](https://www.turing.com/jobs), [JunoHQ](https://junohq.com?r=tamad), [Angellist](https://angel.co/jobs), [Glassdoor](https://www.glassdoor.co.in/Job/Home/), [Optimhire](https://optimhire.com/developers/Search-job) and so on.

Whenever applying for an internship take a **good look at the job description** and try to mention your projects in your resume that have the same keywords as the job description.

---

## Conclusion

**For full-time jobs**, my recommendation is **[Juno HQ](https://junohq.com?r=tamad)** as there are a ton of startups that would pay you a lot with great perks, but you just are not aware of them. Get paid what you deserve! 


With that said I won't write much because I want you all to explore also let me know about your experience in finding your internship, jobs, and remote work in the comments below.
Node.JS and Cache with REDIS
Tags: node, redis, javascript, typescript
Published: 2022-10-28 14:23:51

Primeiramente, o quê é cache?

Segundo a querida Wikipedia, cache é:

> Na área da computação, cache é um dispositivo de acesso rápido, interno a um sistema, que serve de intermediário entre um operador de um processo e o dispositivo de armazenamento ao qual esse operador acede.

Aqui nesse artigo iremos utilizar um simples servidor HTTP feito com Expressjs e duas rotas **GET** para mostrar uma das dezenas de estratégias existentes para se lidar com cache.

Clone o repositório para visualizar a estrutura por dentro e também contém a descrição para rodar o projeto: https://github.com/Gabriel-Valin/api-cache-redis

## Contexto ficticío:

Uma empresa tem 5 mil funcionários, todos cadastrados em um banco de dados; Precisamos disponibilizar um endpoint para que esses usuários possam ser consultados.

## Execução:

Começamos pensando que o processo de transferência de pacotes entre redes está entre uma das tarefas mais demoradas que um computador pode fazer, apesar de que para um humano isso seja "alienigenamente" rápido. Então como podemos otimizar a entrega desse pacotão com 5 mil funcionários? Resposta? **CACHE!!**

_**cache.ts**_: Configuração da conexão com Redis.
```
import IORedis from 'ioredis';

const redis = new IORedis({
    host: process.env.REDIS_HOST,
    port: 6379,
    password: process.env.REDIS_PASS
})


export default redis
```


_**list-service**_: Listando usuários.

```
import { getAllUsers } from "../repositories/find-all"
import redis from "./cache"
export const CACHE_KEY = 'users'

export const listAllUsersService = async () => {
    const cachedUsers = await redis.get(CACHE_KEY)
    if (cachedUsers) {
        return JSON.parse(cachedUsers)
    }
    const users = getAllUsers()
    await redis.set(CACHE_KEY, JSON.stringify(users))
    return users
}
```

_**add-user**_: Adicionando novo usuário a empresa.

```
import redis from "../services/cache";
import { CACHE_KEY } from "../services/list-service";
import { Response, Request } from "express";

export const addNewUser = async (req: Request, res: Response) => {
    // here will create a new user
    // when user created we should cleanup cache 'cause the user list was updated

    await redis.del(CACHE_KEY)
    return res.status(200).json({ message: 'cache clean' })
}
```

## Estratégia:

Temos uma lista bem grande para disponibilizar ao **client**, então utilizamos a simples estratégia de após a primeira consulta no endpoint o conteúdo irá ficar "cached" e só invalidamos o cache assim que um novo usuário for cadastrado na empresa e assim o ciclo se repetirá. Com isso, a lista ficará sempre em cache, podendo reduzir o tempo de resposta em até mais de 50%.

# Bônus:

_Lembrando que existem vários sistemas de armazenamento em cache, esse foi apenas uma demonstração simples que acontece no mundo real onde precisamos "cachar" a entrega de conteúdo em um API, para mais informações, leia este artigo do Ed Rodrigues._

https://edrodrigues.com.br/blog/estrategias-de-cache-tudo-o-que-voce-precisa-saber/
The brand new Logto website: new design, new content, new subscription, along with our SaaS info
Tags: javascript, webdev, programming, opensource
Published: 2022-10-28 14:23:31

For new friends: Logto is an open-source solution that helps you build the sign-in, auth, and user identity within minutes. We provide an OIDC-based identity service and the end-user experience with username, phone number, email, and social sign-in, for web and native apps.
 
---

Folks, we have just gone live with our brand-new website! 🎉 The design of our official website has been brought up to date, and experience has been improved. Our official site now boasts a modernized design and enhanced functionality. 😎

https://logto.io/ 

Subscribe to us right away to receive up-to-date information about the Logto Cloud (SaaS) as well as identification customization product support. Plus, enjoy access to our upcoming events, user research sessions, and our bespoken insight blogs! 🚀

https://logto.io/subscribe
Database in JavaScript (Local Storage)
Tags: javascript, beginners, webdev, programming
Published: 2022-10-28 14:21:19

**Local Storage:**

Local Storage is an API provided by browsers that allows you to create, read, update and delete records in the browser. These records are limited to the browser only, meaning data stored in chrome is not available on firefox and vice versa 

_Before We start_
The local storage data is in JSON format, which means when storing the data, we need to convert the JavaScript Object to a JSON format and vice versa.

```javascript
const person={
    name: "Jack Pritom Soren"
}

const personToJson = JSON.stringify(person)
```

**Visual View**

- Open Developer tools

- Go to Application tab

- Select Local Storage

![Local Storage](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/srf5w2cv3brveotohm26.jpg)

**Create New Record:**

```javascript
const person={
    name: "Jack Pritom Soren"
}

const personToJson = JSON.stringify(person)

localStorage.setItem("person",personToJson)
```

**Read a Record:**

```javascript
const personToJson = localStorage.getItem("person")

const JsonToPerson = JSON.parse(personToJson)

console.log(JsonToPerson)
```

**Update a Record:**

```javascript
const person={
    name: "Jack Pritom Soren",
    country: "Bangladesh"
}

const personToJson = JSON.stringify(person)

localStorage.setItem("person",personToJson)
```

**Delete a Record:**

```javascript
localStorage.removeItem("person")
```

Follow me on : [Github](https://github.com/jps27cse) [Linkedin](https://www.linkedin.com/in/jps27cse/)
As 4 camadas de TCP/IP
Published: 2022-10-28 14:21:14

**O que é o TCP/IP?**
O TCP/IP é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) e o IP (Internet Protocol - Protocolo de Internet, ou ainda, protocolo de interconexão). ) usado na internet. Seu modelo é dividido em quatro camadas

**1) Camada de enlace de dados**
A camada de enlace de dados é aquela que lida com as partes físicas de envio e recebimento de dados usando o cabo Ethernet, rede sem fio, placa de interface de rede, driver de dispositivo no computador e assim por diante.

**2)Camada de Internet**
A camada da internet (também chamada de camada de rede) controla o movimento de pacotes pela rede.

**3) Dispositivos de Camada de Transporte**
A camada de transporte fornece uma conexão de dados confiável entre dois. Ela divide os dados em pacotes, reconhece e distribui os pacotes que receberam outro dispositivo que reconheça os pacotes que recebe.

**4)Camada de aplicativo**
Um aplicativo de aplicativo é o grupo de aplicativos que formula a comunicação em rede. O usuário normalmente interage com essa camada, como no e-mail e mensagens. Como as camadas lidam com os detalhes da comunicação, os aplicativos não precisam se preocupar com isso.
Padronização de código
Tags: beginners, programming, braziliandevs
Published: 2022-10-28 14:02:25

Olá a todos, estou retomando aqui depois de um tempo ausente para resolver problemas pessoais. Mas isto é uma historia para contar em mesa de bar.

Hoje vamos conversar sobre padronização e trabalho em equipe. Para quem já trabalha com equipe sabe sobre as dificuldade de ser manter um código padronizado e quanto maior a equipe maior a dificuldade.

Quando falamos de padronização temos muitos fatores a considerar e algo que muitos podem até julgar irrelevante, como por exemplo endentação com espaço ou TAB. Parece uma coisa boba mas isto pode gerar um transtorno junto a um versionador. 

Uma parte deste problema só é resolvido com alinhamento e bom senso na equipe. Mas temos uma grande parte de normalização que pode ser resolvida com a utilização da ferramenta [EditorConfig](https://editorconfig.org). Com a ferramenta pode ser definido o tipo e tamanho da endentação, tipo de codificação do arquivo, ser a declaração de uma variável deva ser *camel case*, *snake case* ou *pascal case*. No meu caso, como sou programador C#, consigo garantir que todos irão seguir uma nomenclatura para declaração de métodos, classes, parâmetros ou variáveis locais.

Como isto funciona, na raiz do projeto é incluso um arquivo *.editorconfig* onde defino as definições a serem utilizadas pelo projeto. Então todas as vezes que optar por formatar o arquivo a definições de como formatar será utilizada a contida no arquivo. Para algumas linguagens e IDEs pode ser definido que uma vezes que o código não atenda a definição a aplicação gere um erro na compilação.

Claro que vale ressaltar que em alguns IDE ou mesmo versões do IDE deve ser instalado a extensão para a utilização da ferramenta. E em nota pessoal, com este POST não tenho como objetivo ensinar como escrever as definições no arquivo do *EditorConfig* e sim expor a ferramenta e o beneficio do uso da mesma de forma simples e rápida.

Para a escrita das definições aconselho uma pesquisa no site do [EditorConfig](https://editorconfig.org) e uma pesquisa no site do mantenedor linguagem sendo utilizada, pois existem definições especificas para a linguagem.
As 4 camadas do TCP/IP
Published: 2022-10-28 14:01:03

O que é o TCP/IP?
O TCP/IP é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) e o IP (Internet Protocol - Protocolo de Internet, ou ainda, protocolo de interconexão). ) usado na internet. Seu modelo é dividido em quatro camadas

1) Camada de enlace de dados
A camada de enlace de dados é aquela que lida com as partes físicas de envio e recebimento de dados usando o cabo Ethernet, rede sem fio, placa de interface de rede, driver de dispositivo no computador e assim por diante.

2)Camada de Internet
A camada da internet (também chamada de camada de rede) controla o movimento de pacotes pela rede.

3) Dispositivos de Camada de Transporte
A camada de transporte fornece uma conexão de dados confiável entre dois. Ela divide os dados em pacotes, reconhece e distribui os pacotes que receberam outro dispositivo que reconheça os pacotes que recebe.

4)Camada de aplicativo
Um aplicativo de aplicativo é o grupo de aplicativos que formula a comunicação em rede. O usuário normalmente interage com essa camada, como no e-mail e mensagens. Como as camadas lidam com os detalhes da comunicação, os aplicativos não precisam se preocupar com isso.
CuteDialog - A Custom Material Design Dialog Library for Android
Published: 2022-10-28 14:00:07

**Hi**,
Today I'm sharing a **Custom Material Design Dialog Library** named **CuteDialog** created by **CuteLibs Project** . I'm a co-author of this repo and tried my best to make a **good** and **reliable** library for the community.

## CuteDialog
![feature](https://github.com/CuteLibs/CuteDialog/raw/master/files/feature.jpg)


_As mentioned on the repo page-_

> CuteDialog is a Highly Customizable Material Design Android Library. CuteDialog allows developer to create beautiful dialogs with material design. It is highly customizable and can be used for lots of different purposes.


## Screenshot

| Icon | Image | Animation |
|---------|--------|----------|
|![icon](https://github.com/CuteLibs/CuteDialog/raw/master/files/shot1.png)|![image](https://github.com/CuteLibs/CuteDialog/raw/master/files/shot2.png)|![animation](https://github.com/CuteLibs/CuteDialog/raw/master/files/shot3.gif)|


## Prerequisites
Add this to your root build.gradle
{% embed https://gist.github.com/ahmmedrejowan/f9f16781474439deb27e8425eab16975 %}

## Theme
You must use any MaterialComponents Theme. Example-
{% embed https://gist.github.com/ahmmedrejowan/129f409d637c7b3d8f521ad9f43ae9a2 %}

## Basic Usage
{% embed https://gist.github.com/ahmmedrejowan/9ba49ab21ebad246972393e4e1a7d649 %}

## Advanced
{% embed https://gist.github.com/ahmmedrejowan/699a5eff2c86c3bdbb59558d9b27d62c %}

## Customizations
{% embed https://gist.github.com/ahmmedrejowan/414731c19ab1f59657b617368ad7134c %}

![collage](https://github.com/CuteLibs/CuteDialog/raw/master/files/collage.jpg)

 ( Visit [Wiki](https://github.com/CuteLibs/CuteDialog/wiki) for more ) 

## More 
- [Check CuteDialog on Github](https://github.com/CuteLibs/CuteDialog)
- [Check CuteLibs Project](https://github.com/CuteLibs)

Thanks for Reading. Have a good day.

Find me on - [Github](https://github.com/ahmmedrejowan), [Facebook](https://www.facebook.com/ahmmedrejowan)
As 4 camadas do TCP/IP
Published: 2022-10-28 13:55:12

**O que é o TCP/IP?**
O TCP/IP é um conjunto de protocolos de comunicação entre computadores em rede. Seu nome vem de dois protocolos: o TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão) e o IP (Internet Protocol - Protocolo de Internet, ou ainda, protocolo de interconexão).TCP/IP é um protocolo de enlace de dados (datalink) usado na internet. Seu modelo é dividido em quatro camadas

**1)Camada de enlace de dados**
A camada de enlace de dados é aquela que lida com as partes físicas de envio e recebimento de dados usando o cabo Ethernet, rede sem fio, placa de interface de rede, driver de dispositivo no computador e assim por diante.

**2)Camada de Internet**
A camada da internet (também chamada de camada de rede) controla o movimento de pacotes pela rede.

**3)Camada de transporte**
A camada de transporte fornece uma conexão de dados confiável entre dois dispositivos. Ela divide os dados em pacotes, reconhece os pacotes que recebeu do outro dispositivo e garante que o outro dispositivo reconheça os pacotes que recebe.

**4)Camada de aplicativo**
A camada de aplicativo é o grupo de aplicativos que requerem comunicação em rede. O usuário normalmente interage com essa camada, como no e-mail e mensagens. Como as camadas inferiores lidam com os detalhes da comunicação, os aplicativos não precisam se preocupar com isso.
Terrible 3D: A new (and horrible) 3D game engine.
Tags: webdev, programming, typescript, rust
Published: 2022-10-28 13:49:51

# Terrible 3D (also known as t3d)

So, for my coding club (which I run after school days), I've had to try to develop a 3D game engine from scratch, because I love pain and I want to overcomplicate things.

Jokes aside, the real reason is that I find Babylon.js and THREE.js a bit hard to work with, even for someone like me with six years of JavaScript under my belt, so I wanted to create a more simple engine for my club members to use, since I'm teaching them the first things they know about coding in JavaScript, and I don't think using THREE.js or Babylon.js would be very good with absolute beginners, even with a math teacher supervising the club.

# Choosing a tech stack

For my project, I decided to go with TypeScript for the main language, since it has to be made in JavaScript (for the most part) to support usage *in* JavaScript, and I don't want to torture myself because of type errors.

I chose to use [Vite](https://vitejs.dev/) to package and test my project, since it has the library mode feature to act as a __*blazingly fast*__ compiler.

For styling elements (like the size of the canvas, and, in the future, HUD/GUI elements that are a second canvas), I chose to use [SASS](https://sass-lang.com/) (via `.scss` files), since it allows me to not suffer whilst coding css styles.

To debug, I'm using Puppeteer with a little script I made to redirect console error output to a linux shell. (My school blocked the inspector on our Chromebooks, where I do most of my coding.)

Also, I'm working on rewriting the core engine module in Rust and compiling that to WASM so I can achieve better performance. Even with minified and optimized JavaScript code it was still slow in WebGL and WebGL2.

# How do I install it?

If someone hasn't already taken it (it's not published yet), here are some example commands:

```sh
# With NPM:
npm install @t3d/core

# With Yarn:
yarn add @t3d/core

# With pnpm:
pnpm add @t3d/core
# -- or --
pnpm install @t3d/core
```

# Where's the code?

Here's the code: https://github.com/ISB-Coding-Club/t3d
Contributions are welcome, and so are feature requests, but I can't guarantee I'll have the time to look at them too quickly because of the mountain of homework I'll always have.
Building a Crypto Exchange Trading Platform with Tradexpro Exchange
Tags: github, html, php, javascript
Published: 2022-10-28 13:40:58

```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/xw7qofawr5pd7vwvz6tu.png)
```
Tradexpro Exchange – a complete Crypto Buy Sell and Trading platform, Crypto Exchange, Spot Trading.

We just added ERC20 and Binance/BEP20 Network as per our valuable customer’s requests, admin can add their own erc20 and bep20 tokens and can pair them with BTC, ETH, and other native coins.
We are Exclusive Envato Author, we never sell outside Envato Market, be aware of nulled version, and please avoid scammer nulled script.

[Tradexpro Exchange](https://codecanyon.net/item/tradexpro-exchange-crypto-buy-sell-and-trading-platform/39228546) is a complete Crypto exchange platform that is developed with Laravel, MySql, and Nextjs. It is the best choice to buy, sell or exchange any crypto coins that work via BitGo, CoinPayment, and own hosted node. It will connect with a coin payment merchant account, or also connect with a personally hosted node. Our system is 100% secure and dynamic. It supports all cryptocurrency wallets including Coin Payment, Buys, Selling, Stop Limit, Deposit, Withdrawal, Referral system, and whatever you need. The most attractive feature of this platform is trading. In the trading system, you can place buy and sell orders according to your preferences of coin prices. Besides that, you can check your balance from the wallet section. You can also check your buy-sell transaction status, deposit, and withdrawal histories. Additionally, it supports multi-language.

-User Demo url: https://tradexpro-exchange.cdibrandstudio.com/
-User access: email: user@email.com, pass: 123456
-Admin demo url: https://tradexpro-laravel.cdibrandstudio.com/ 
-Admin access: email: admin@email.com, pass: 123456

Thanks!
Currying in JavaScript
Tags: javascript, webdev, programming, tutorial
Published: 2022-10-28 13:39:47

## **What is Currying?**

Currying is a function that *takes one argument at a time and returns a new function expecting the next argument*. It is a conversion of functions from callable as f(a,b,c) into callable as f(a)(b)(c).

Currying doesn’t call a function. *It just transforms a function*. They are constructed by chaining closures by immediately returning their inner functions simultaneously.

## **How does currying work?**

Currying is a function that takes multiple arguments as input. It transform the function into a number of functions where every function will accept one argument.

Let’s understand this with examples 

****Convert f(a, b) into f(a)(b)**

```jsx
/* f(a,b) implementation */

function f(a,b) {
    return a + b
}
```

 

```jsx
/* f(a)(b) implementation */

function f(a) {
    return (b) {
		  return a + b
		}
}

console.log(f(1)(2)) // 2
console.log(f(1)); /* () => {} */        // will retrun a function
```

```jsx
/*Simple function*/ 
const add = (a, b, c)=>{
    return a + b + c
}

console.log(add(1, 2 ,3)); // 6

/* Curried Function */

const addCurry = (a) => { // takes one argument
    return (b) => {                 //takes second argument
        return (c) => {             //takes third argument
            return a + b + c
        }
    }
}

console.log(addCurry(1)(2)(3)); //6
```

## A ****currying function that takes infinite arguments.****

```jsx
const sum = function(a) {
    return function(b) {
        if (b) {
            return sum(a + b);
        } else {
            return a;
        }
    }
}

// sum(1)(2)(3)....() 
```

## **How can we manipulate DOM using currying?**

```html
<div>
  <h1 id="header">Hello World</h1>
</div>
```

want browser to show "Hello Currying" instead of "Hello World".

Let's try it using currying.

Steps:

1️⃣ Take the `id` of the element as one argument and the content inside the element as another argument.

```jsx
const updateElemText = (id) => (content) => document.querySelector(`#${id}`).textContent= content;
```

2️⃣ Now call the function with element id and and the content

```jsx
const updateHeaderText = updateElemText('header');

updateHeaderText('Hello Currying!');
```

What is showing up on the browser? 👀

Hope this blog helped you understand currying better.
Cara Mengubah Nama Mobile Legends
Published: 2022-10-28 13:30:55

Di atikel ini saya akan memberikan cara mengubah nama ML dengan mudah. Untuk kamu yang tidak tahu caranya, bisa mengikuti cara berikut:
1. Buka Mobile Legends
2. Pergi ke menu Profile
3. Lalu klik nama
4. Ubah nama sesuai yang kamu inginkan

Note: kamu harus memiliki change name terlebih dahulu, atau bisa beli di shop.

Jika bingung dalam memilih sebuah nama bisa baca di [nama ml keren](https://www.xrizz.id/nama-ml-keren/) agar nama akun milikmu sekeren james bond.