Sign in

vitor

@vitorsanches.com
192 followers 351 following 1.2K posts

🕸️ web 🏳️‍🌈 💚🩵💙 🎓 CompSci skeets in 🇧🇷, sometimes in 🇬🇧

PostsRepliesMedia
vitor @vitorsanches.com · 25/07/2025
Google, vai chover? O Google:
010
vitor @vitorsanches.com · 07/07/2025
Segue essa foto que está invertida por causa da câmera frontal:
Foto do meu rosto de perto, olhando pro lado, com uma blusa preta, e duas argolas pequenas douradas na orelha esquerda
000
vitor @vitorsanches.com · 26/06/2025
Agora eu tenho uma mini-canequinha que deixo no trabalho pra tomar café e parar de gastar copinho de plástico 🥰
010
vitor @vitorsanches.com · 18/06/2025
a "solução" que ele dá nem resolve realmente o problema kkkkkkkkk
000
vitor @vitorsanches.com · 22/05/2025
e morreu...
010
vitor @vitorsanches.com · 16/05/2025
A curva da minha orelha é mt fechadinha n consigo segurar dos dois lados e ainda girar 😭
110
vitor @vitorsanches.com · 09/05/2025
sexta-feira 16:25
000
vitor @vitorsanches.com · 12/04/2025
Trem da foto de agora agorinha
010
vitor @vitorsanches.com · 03/04/2025
web development is my passion
160
vitor @vitorsanches.com · 19/03/2025
qualquer coisa eu "já dizia hayley williams"
mensagem cortada do whatsapp "to igual aquela música cest comme ça do paramore k"
000
vitor @vitorsanches.com · 20/02/2025
Chegou Triste com a diagramação horrorosa
000
vitor @vitorsanches.com · 02/02/2025
Impressão minha ou o crivo de qualidade das redes sociais tá cada vez mais baixo? Isso aqui é só um exemplo bobo, 5 minutos no Instagram vc acha coisa muito mais cabulosa kkkkk
Captura de tela do LinkedIn, onde está escrito "comemorando 3 ano na empresa..."
000
vitor @vitorsanches.com · 25/01/2025
Irra (Só professor foda)
010
vitor @vitorsanches.com · 22/12/2024
Sunday is a day for important questions:
"If a binary tree wore pants, would he wear them

Like this or like this"

The first option is a binary tree which each subtree wears pants as if the edges were legs

The second option is also a binary tree wearing just one pair of pants, where the whole left side of the tree goes into the left leg, and the same with the right side.
1114
vitor @vitorsanches.com · 09/12/2024
pra quem falou que eu não faço meus cursos (eu mesmo)
Udemy
Certificado de conclusão
Web Performance Bootcamp: Mastering Speed Techniques
Instrutores: Vitor Fonseca

Vitor Sanches
Data: 9 de Dezembro de 2024
Duração: 6 horas no total
130
vitor @vitorsanches.com · 07/12/2024
Da série pizza maximalistas
100
vitor @vitorsanches.com · 03/12/2024
a forma correta de usar o chatgepeto pra programar:
create mock data for 20 animes in javascript based on the following interface:

export interface Anime {
  score: number;
  numberOfReviews: number;
  name: string;
  season: string;
  year: number;
  genres: string[];
  posterUrl: string;
}
010
vitor @vitorsanches.com · 29/11/2024
queria que o figma tivesse um seletor de cores assim:
seletor em formato de triângulo
É um triângulo equilátero com uma das pontas apontada para a direita e sua base oposta verticalmente alinhada, à esquerda.
A ponta superior esquerda possui a cor branca, a cor inferior esquerda possui a cor preta, e a ponta da direita possui a cor mais vibrante do HUE escolhido, nesse caso o vermelho.

O triângulo, para título de explicação, é dividido em seis partes. Uma horizontalmente, do meio da base até a ponta, além de duas divisões verticais.
Da esquerda para direita, em cima, temos as descrições "Cores claras insaturadas", "Cores claras suaves", "Cores claras saturadas.
Em baixo, também da esquerda para a direita, temos as descrições "cores escuras insaturadas", "cores escuras suaves" e "cores escuras saturadas.
010
vitor @vitorsanches.com · 23/11/2024
Post your favorite Pokémon, wrong answers only
Stuffed Duolingo owl with a gun as a fake PNG image
040
vitor @vitorsanches.com · 23/11/2024
Arrriba
Ligeirinho
010
vitor @vitorsanches.com · 23/11/2024
Voltando muito aos poucos pq meu tornozelo tá chorando kkkkk
Captura de tela do strava
"Caminhada à tarde"
Distância: 2.50km
Passos: 3962
Duração: 36m 26s
230
vitor @vitorsanches.com · 21/11/2024
@sushicomabacate.com
Screenshot de posts do bluesky
Um é o post ao qual este post responde
O de baixo é um post sobre vinho.
150
vitor @vitorsanches.com · 12/11/2024
Mas eu tbm tava querendo fazer meu modo escuro com uns elementos em verde neon então n sei
Modo escuro do site com mesmo post da imagem acima. Dessa vez o fundo possui um granulado simples e o meu nome no cabeçalho está escrito em verde neon
000
vitor @vitorsanches.com · 12/11/2024
Ativei o modo claro do pc pra mudar umas coisinhas no meu site e tinha esquecido o quanto eu curto esse bg de papel reciclado do modo claro dele Pensando inclusive em desabilitar o modo escuro e deixar só assim mesmo kkkkk
Meu site pessoal em modo claro com um fundo que imita papel reciclado.
O conteúdo do site é um blog post chamado "Como atingir nota 100 em performance no Lighthouse utilizando o Astro.build" mas é só um exemplo.
100
vitor @vitorsanches.com · 09/11/2024
Produções de sexta Já deixei massa pronta pra amanhã e pra semana que vem 😋 Aqui em casa a gente é fã da pizza maximalista: quanto mais coisa, melhor.
Massa de pizza aberta e com borda enrolada, ainda crua.Pizza montada e devidamente assada
020
vitor @vitorsanches.com · 08/11/2024
nem vou mostrar meu código pq tá cheio de if-else aninhado, não quero ser cancelado mas eu juro que isso aqui é uma árvore derivada de um HTML
um print de uma árvore derivada de um HTML
120
vitor @vitorsanches.com · 07/11/2024
Daí ele percorre a linha procurando pelo maior tamanho de fonte (e o tk dá essas métricas de fonte), encontra o baseline da linha, e dps pra cada palavra, acha a altura a letra tem que começar a ser desenhada
baseline = cursor_y + 1.25 * max_ascent
for x, word, font in line:
  y = baseline - font.metrics("ascent")
110
vitor @vitorsanches.com · 07/11/2024
Adicionar suporte a tamanhos de texto diferentes na mesma linha foi mais tenso do que eu imaginava, pq por padrão vc começa a desenhar a partir do canto superior esquerdo, então as fontes ficam alinhadas ao topo, não à baseline.
letras alinhadas ao topo versus letras alinhadas à baseline
110
vitor @vitorsanches.com · 07/11/2024
Atualização: depois de muito surto, criança chorando, panela batendo, agora o browser wannabe aceita headings, bold e itálico. Tá escalando mal por enquanto, e tá extremamente lento, vamos ver como se desenrola Pra quem tiver interesse, tô seguindo isso aqui: browser.engineering
O texto do website do caralho sendo renderizado com headings
130
vitor @vitorsanches.com · 06/11/2024
Tá desenhando o texto do websitedocaralho.com.br De uma forma muito cagada? Sim. Mas vai vir aí, calma lá kkkkkkk
Janela do tk com o texto do websitedocaralho.com.br
140
vitor @vitorsanches.com · 06/11/2024
Eu decidi ler (e tentar implementar junto) o livro "Web Browser Engineering" e eu tô me sentindo assim:
meme do cachorro de chapéu falando "tá tudo bem" enquanto tudo pega fogo
1150
vitor @vitorsanches.com · 05/11/2024
É que os frameworks SSR são voltados pra serverless/edge né, daí complica tudo. Principalmente o next que é bem acoplado com a vercel. O astro ainda tem umas facilidades pra quem quer usar aws ou cloudflare
adapter pra SST e AWS Amplify no astro
020
vitor @vitorsanches.com · 30/10/2024
Oficialmente um ✨computeiro✨ (pq na minha cabeça esse é o título de quem se forma em ciência da computação)
Eu com meu diploma na mão
4231
vitor @vitorsanches.com · 28/10/2024
não vou nem falar o que eu estava pesquisando, só vou deixar isso aqui 😵‍💫😵‍💫😵‍💫
const { products, getProducts } = DI.resolve("ProductListViewModel")

useEffect(() => {
  getProducts()
}, [])
350
vitor @vitorsanches.com · 27/10/2024
Ontem teve hallowinho
020
vitor @vitorsanches.com · 25/10/2024
Meu bot fez a boa:
Notificação do mensagem no telegram: "Diploma está pronto para ser retirado"
110
vitor @vitorsanches.com · 18/10/2024
esse aqui? nunca ouvi falar
poster de um filme chamado monstros
100
vitor @vitorsanches.com · 09/10/2024
único motivo para abrir o twitter hoje:
captura de tela de dois tweets meus:

primeiro: "Oi gente, continuo no bluesky, me sigam" e minhas duas contas na rede.

segundo: "Larguem essa rede de incel e neonazi, vamos pra rede do paulinho", seguido de uma foto do paulinho com asas de borboleta
0181
vitor @vitorsanches.com · 08/10/2024
gente é cada uma kkkkk
Formulário de aplicação para vaga

10. Você possui parente de até segundo grau (pais, irmãos, avós ou netos) que é ou foi funcionário público, nos últimos 5 anos?  *

11. Se a resposta for: sim. Indique o nome do parente e função:
010
vitor @vitorsanches.com · 06/10/2024
020
vitor @vitorsanches.com · 02/10/2024
btw, por que caralhos eles colocaram o botão de próximo à esquerda do botão de anterior?
Questão do teste, com um botão escrito "próximo" à esquerda do botão escrito "anterior"
000
vitor @vitorsanches.com · 29/09/2024
cebolinha emo
120
vitor @vitorsanches.com · 27/09/2024
É difícil pensar em artistas pq eu sou mais orientado a álbuns Se fossem 4 albuns acho que eu colocaria Mas semana que vem eu já vou pensar diferente, então sei lá kkkkkk
The record - BoygeniusBon Iver - Bon IverClube da Esquina - Milton Nascimento e Lô BorgesThis is Why - Paramore
020
vitor @vitorsanches.com · 27/09/2024
🎶 Seu gosto musical em 4 artistas Tentei não pensar muito kkkk
LinikerBillie Elish segurando quatro grammysBon Iver com uma flor na caraIntegrantes do Paramore com a cara amassada mim vidro todo molhado - Capa do álbum "this is why"
130
vitor @vitorsanches.com · 21/09/2024
pound bakery é um surto
Uma mão segurando uma lata de refrigerante listrada nas cores rosa e branco da marca BARR, sabor American Cream Soda
020
vitor @vitorsanches.com · 20/09/2024
Dei uma roubada. Não consegui fazer a leitura de PDF no go por nada. Criei uma API em node que usa o @langchain/community e tô batendo nela kkkkk se alguém perguntar fala que eh microsserviços kkkkkk
Código em GO que bate na API Node.

func readPdfFromUrl(pdfUrl string) (string, error) {
	url := strings.Join([]string{"http://localhost:3000/", "api/pdf?", "url=", pdfUrl}, "")

	req, error := http.NewRequest("GET", url, nil);
	if (error != nil) { return "", error }

	res, error := http.DefaultClient.Do(req)
	defer res.Body.Close()
	if (error != nil) { return "", error }

	body, _ := io.ReadAll(res.Body);

	var pdfParseResponse PdfParseResponse;
	error = json.Unmarshal(body, &pdfParseResponse)
	if (error != nil) { return "", error }

	return pdfParseResponse.Text, nil
}Código em Node que busca o texto do PDF a partir da sua URL.

const fetchTextFromPdfUrl = async (url: string): Promise<string> => {
  const req = await fetch(url);
  const blob = await req.blob();

  const loader = new WebPDFLoader(blob, {
    parsedItemSeparator: '',
  })

  const docs = await loader.load()
  return docs.map((doc) => doc.pageContent).join('')
}
000
vitor @vitorsanches.com · 20/09/2024
Aleluia. Falta entender como adicionar variáveis de ambiente e dps fazer um deployzinho maroto.
Função main do bot com todas as etapas.
Etapa 1: busca o corpo xml do site da seção técnica de graduação do IGCE
Etapa 2: busca o html que é populado no site
Etapa 3: busca o link do PDF nesse HTML
Etapa 4: lê o texto do PDF a partir desse link
Etapa 5: verifica se o nome do estudante está no texto; caso positivo, envia uma mensagem ao telegram avisando que o diploma está pronto para ser retirado.
100
vitor @vitorsanches.com · 20/09/2024
??????
Copilot:
"I'm sorry, but I prefer not to continue this conversation. I'm still learning so I appreciate your understanding and pacience. 🙏"
120
vitor @vitorsanches.com · 20/09/2024
Foi nesse dia que fizeram aquele quadro a santa ceia
020
vitor @vitorsanches.com · 20/09/2024
atualizações: Fiquei até 1 da manhã tentando fazer a leitura de PDF funcionar, mas não rolava. Fui dormir. Hoje tentei com outro PDF e deu certo, mas com o bendito do pdf de relação de diplomas, não vai. Achei isso aqui numa issue do github. Se for esse o problema mesmo, ferrou legal kkkkk
asticode comentou em 30 de junho de 2018

Oi pessoal,

Eu estava tendo o mesmo problema, mas depois de tentar outra biblioteca, percebi que meu arquivo PDF tinha uma proteção que impedia essa biblioteca de extrair dados.

Depois de convertê-lo com o PDFCreator, a proteção foi removida e eu consegui ler as páginas.

Espero que isso ajude alguém.

Saudações
100