- Modificado (modified);
- Preparado (staged/index)
- Consolidado (comitted);
| { | |
| "workbench.startupEditor": "newUntitledFile", | |
| "editor.fontSize": 16, | |
| "editor.lineHeight": 1.8, | |
| "javascript.suggest.autoImports": true, | |
| "javascript.updateImportsOnFileMove.enabled": "always", | |
| "editor.rulers": [ | |
| 80, | |
| 120 | |
| ], |
| # ZSH | |
| sudo apt install zsh -y | |
| sudo apt-get install powerline fonts-powerline -y | |
| git clone https://github.com/robbyrussell/oh-my-zsh.git ~/.oh-my-zsh | |
| cp ~/.oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc | |
| chsh -s /bin/zsh | |
| # REBOOT | |
| # sudo reboot |
| async function enviarScript(scriptText) { | |
| // Divide o texto em linhas, removendo as que estiverem vazias | |
| const lines = scriptText.split(/[\n\t]+/).map(line => line.trim()).filter(line => line); | |
| const main = document.querySelector("#main"); | |
| // Procura pela caixa de texto da conversa | |
| const textarea = main.querySelector(`div[contenteditable="true"]`); | |
| if (!textarea) { | |
| throw new Error("Não há uma conversa aberta. Por favor, clique em uma conversa antes de executar o script."); |
| const { PrismaClient } = require("@prisma/client"); | |
| const prisma = new PrismaClient(); | |
| async function main() { | |
| try { | |
| const mousesCategory = await prisma.category.create({ | |
| data: { | |
| name: "Mouses", | |
| slug: "mouses", |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| @layer base { | |
| :root { | |
| --background: 0 0% 4%; | |
| --foreground: 0 0% 100%; | |
| --card: 0 0% 4%; |
| import { PrismaClient } from "@prisma/client"; | |
| declare global { | |
| var cachedPrisma: PrismaClient; | |
| } | |
| let prisma: PrismaClient; | |
| if (process.env.NODE_ENV === "production") { | |
| prisma = new PrismaClient(); | |
| } else { |
| syntax = "proto3"; | |
| package github.com.codeedu.codepix; | |
| option go_package = "protofiles/pb"; | |
| service ProductService { | |
| rpc CreateProduct (CreateProductRequest) returns (CreateProductResponse) {}; | |
| rpc FindProducts(FindProductsRequest) returns (FindProductsResponse) {}; | |
| } |
Estou desenvolvendo um ERP completo para a área de Odontologia, onde posso aprimorar meus conhecimentos e colocá-los em um projeto profissional real. Durante este período, estou utilizando o NestJs para criar os primeiros endpoints, incluindo um para login. Aprendi mais sobre como armazenar senhas em banco de dados e protegê-las usando Hash e Salt.
Em resumo, o hash pode ser considerado como uma função matemática que transforma qualquer arquivo ou conjunto de caracteres em uma sequência única de letras e números. Uma vez que o Hash é gerado, ele nunca mais pode ser alterado. O mesmo segue o padrão de ter o mesmo tamanho (entre 128 e 512 bits) e o mesmo número de caracteres alfanuméricos.
Uma função hash é unidirecional, semelhante a uma função sobrejetiva, onde a imagem é igual ao contradomínio. Um hash pode ser quebrado de várias maneiras por meio de ataques de força bruta ou dicionário.