Ferramentas que usam no vosso dia a dia como informáticos – 1 de ….

Olá a todos!

Esta semana, enquanto estava a fazer uma conversão rápida de base64 para texto (sim, daquelas coisas que fazemos várias vezes ao dia), apercebi-me de algo: há quanto tempo é que não abro o Google para procurar “online base64 decoder”? E sabe porquê? Porque descobri já a algum tempo o IT-Tools, e honestamente, esta ferramenta mudou completamente o meu workflow diário.
Antes de continuarmos, deixem-me explicar uma coisa: não estou a falar de mais um site cheios de ads, pop-ups, e trackers que tentam vender time sharing no Algarve, enquanto fazem uma simples operação de hash. Estou a falar de uma ferramenta open-source, self-hostable, rápida como tudo, e que resolve literalmente dezenas daqueles problemas irritantes que enfrentamos todos os dias como profissionais de IT.

Mas Então Que Raio É o IT-Tools?

O IT-Tools é essencialmente uma coleção massiva de ferramentas úteis para developers e profissionais de IT, todas numa única interface limpa e intuitiva. Imaginem ter acesso instantâneo a conversores, geradores, formatadores, encoders, decoders, e muito mais – tudo sem ter de abrir o browser, procurar no Google, e rezar para não apanhar um site suspeito.
E a melhor parte? É completamente gratuito, open-source, e podem fazer self-host na vossa própria infraestrutura. Sim, leram bem. Nada de depender de serviços externos que amanhã podem desaparecer ou começar a cobrar. É vosso, para sempre.
O projeto foi criado pelo Corentin Thomasset, e quando digo que ele percebe o que os developers precisam, não estou a brincar. Esta ferramenta tem uma UX que faria inveja a muitos produtos pagos. É rápida, responsiva, e intuitiva. Zero tempo de aprendizagem e é daquelas pequenas ferramentas que já não passo sem elas.

Porque É Que Isto Me Mudou a Vida (Não, Não Estou a Exagerar)

Vamos ser honestos: quantas vezes por dia fazem operações simples mas essenciais? Converter timestamps, gerar UUIDs, fazer encode/decode de URLs, validar JSON, calcular hashes… A lista é interminável. E cada uma destas operações normalmente envolve o seguinte ciclo:

  • Abrir o browser
  • Procurar “online [ferramenta]”
  • Clicar num link (provavelmente no StackOverflow)
  • Esperar que o site carregue (e os 47 trackers associados)
  • Fazer a operação
  • Fechar o tab
  • Rinse and Repeat daqui a 10 minutos

Agora imaginem ter todas estas ferramentas num único lugar, carregando instantaneamente, sem ads, sem tracking, e completamente offline se quiserem. É literalmente ter um canivete suíço digital sempre à mão.

A Panóplia de Ferramentas Que Vos Vai Fazer Questionar Como Viveram Sem Isto

O IT-Tools tem mais de 80 ferramentas diferentes (e o número está sempre a crescer graças à comunidade). Deixem-me partilhar as que uso diariamente:

Crypto e Hashing

  • Hash Generator: MD5, SHA1, SHA256, SHA512… todas as variants que possam imaginar
  • UUID Generator: Porque quem é que ainda cria IDs à mão?
  • Token Generator: Para quando precisam de criar tokens aleatórios seguros
  • Base64 Encoder/Decoder: A ferramenta que provavelmente vou usar daqui a 5 minutos

Estas ferramentas são especialmente úteis quando estamos a trabalhar com APIs, sistemas de autenticação, ou simplesmente a validar dados. E sim, funcionam todas completamente offline no browser – os vossos dados nunca saem da vossa máquina.

Converters e Formatters

  • JSON Formatter/Validator: Quantas vezes já receberam JSON mal formatado e tiveram de o limpar?
  • YAML to JSON Converter: E vice-versa. Porque trabalhar com diferentes formatos de config é o pão nosso de cada dia
  • SQL Formatter: Para quando o vosso colega vos envia queries numa linha só
  • Date Converter: Timestamps Unix, ISO 8601, e todos os formatos de data que alguma vez precisaram

A quantidade de tempo que poupei só com o JSON formatter é ridícula. Já não me lembro da última vez que tive de ir ao jsonlint.com ou similar.

Network e Web

  • URL Encoder/Decoder: Porque às vezes precisamos mesmo de saber o que está naquele %20
  • JWT Parser: Validar e inspeccionar JWTs sem ter de ir ao jwt.io
  • QR Code Generator: Criar QR codes on-the-fly
  • IP Info: Ver informação sobre IPs rapidamente

A ferramenta de JWT parsing salvou-me inúmeras vezes em debugging. Poder inspeccionar rapidamente um token e ver os claims sem ter de depender de serviços externos? Priceless.

Development Tools

  • Regex Tester: Testar expressões regulares com highlighting em tempo real
  • Cron Expression Parser: Porque ninguém se lembra da sintaxe do cron perfeitamente
  • Color Converter: RGB, HEX, HSL… todas as conversões de cores
  • Lorem Ipsum Generator: Para quando precisamos de texto placeholder rapidamente

O regex tester é particularmente útil. Quantas vezes já se perderam em regex101.com ou similares? Agora têm tudo local, rápido, e sem latência de rede.

Text e String Manipulation

  • Case Converter: camelCase, snake_case, UPPER_CASE, todos os casos
  • String Obfuscator: Para quando precisam de ofuscar dados sensíveis
  • Text Diff: Comparar textos lado a lado
  • Word Counter: Contar palavras, caracteres, linhas

Estas ferramentas parecem simples, mas quando estamos no flow de desenvolvimento, ter acesso instantâneo a elas faz toda a diferença.

Math e Logic

  • Number Base Converter: Binário, octal, decimal, hexadecimal
  • Percentage Calculator: Cálculos rápidos de percentagens
  • Roman Numeral Converter: Ok, esta não uso todos os dias, mas é fixe tê-la

E Muito, Muito Mais…

A lista continua: geradores de passwords, conversores de imagens, ferramentas de compressão, calculadoras especializadas, e por aí fora. E a comunidade está constantemente a adicionar novas ferramentas. Se precisam de algo que não existe, podem até contribuir com a vossa própria ferramenta – o projeto é completamente open-source.

Self-Hosting: Porque Adoramos Ter Controlo

Como é hábito neste blog, não posso falar de uma ferramenta fantástica sem mostrar como fazer self-host dela. E o IT-Tools torna isto ridiculamente simples. E é tao leve e simples de ter localmente.

Deploy com Docker (O Método Mais Rápido)

A forma mais simples de começar é com Docker. Se já têm Docker instalado (e hoje em dia, quem não tem?), basta executar:

docker run -d \
  --name it-tools \
  --restart unless-stopped \
  -p 8080:80 \
  corentinth/it-tools:latest

E pronto. Literalmente isso. Abram o browser em http://$ip:8080 e têm acesso a todas as ferramentas. Zero configuração, zero complicações.

Se preferem usar a imagem do GitHub Container Registry:

docker run -d \
  --name it-tools \
  --restart unless-stopped \
  -p 8080:80 \
  ghcr.io/corentinth/it-tools:latest

Docker Compose: Para os Organizados

Se são como eu e preferem ter tudo organizado em docker-compose files, aqui está um exemplo completo:

version: '3.8'

services:
  it-tools:
    image: corentinth/it-tools:latest
    container_name: it-tools
    restart: unless-stopped
    ports:
      - "8080:80"
    networks:
      - tools_network
    labels:
      - "com.centurylinklabs.watchtower.enable=true"

networks:
  tools_network:
    driver: bridge

Guardem isto num ficheiro docker-compose.yml e executem:

docker-compose up -d

A vantagem desta abordagem é que fica mais fácil gerir, fazer backup, e integrar com outras ferramentas do vosso stack.

Integração com Reverse Proxy (Nginx/Traefik)

Claro que não vamos expor isto diretamente na internet sem um reverse proxy, certo? Aqui está um exemplo com Traefik (para o Miguel 😉

version: '3.8'

services:
  it-tools:
    image: corentinth/it-tools:latest
    container_name: it-tools
    restart: unless-stopped
    networks:
      - traefik_network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.it-tools.rule=Host(`tools.yourdomain.com`)"
      - "traefik.http.routers.it-tools.entrypoints=websecure"
      - "traefik.http.routers.it-tools.tls=true"
      - "traefik.http.routers.it-tools.tls.certresolver=letsencrypt"
      - "traefik.http.services.it-tools.loadbalancer.server.port=80"

networks:
  traefik_network:
    external: true

Para quem prefere Nginx, aqui está uma configuração básica:

server {
    listen 443 ssl http2;
    server_name tools.yourdomain.com;

    ssl_certificate /path/to/cert.pem;
    ssl_certificate_key /path/to/key.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

Casos de Uso Reais: Quando o IT-Tools Me Salvou o Dia

Como em todo o lado, a utilidade numa coisa está no uso que lhe damos. O IT-Tools não diferente, portanto deixem-me partilhar algumas situações reais onde o IT-Tools foi absolutamente essencial:

Debugging de APIs
Estava a trabalhar num projeto onde um  API externo estava a retornar tokens JWT que pareciam estar corrompidos. Em vez de ter de instalar uma biblioteca de JWT parsing ou ir a um site externo, simplesmente colei o token no IT-Tools JWT Parser e imediatamente vi que o problema era o timestamp de expiração que estava em milissegundos em vez de segundos. Problema resolvido em 30 segundos.

Conversão de Timestamps
Num projeto de análise de logs, tinha timestamps em vários formatos diferentes: Unix timestamps, ISO 8601, formatos customizados… O IT-Tools Date Converter permitiu-me converter rapidamente entre formatos e identificar discrepâncias nos dados. Poupei horas de trabalho manual com excel.

Validação de Configurações
Quantas vezes já receberam um ficheiro de configuração YAML ou JSON mal formatado que implodiu com o vosso deployment? Com o IT-Tools, valido sempre as configs antes de fazer commit. O feedback instantâneo e a formatação automática preveniram inúmeros problemas.

Geração de Dados de Teste
Quando estamos a bater codigo, frequentemente precisamos de dados de teste: UUIDs para IDs, hashes para passwords, tokens aleatórios… O IT-Tools torna trivial gerar este tipo de dados rapidamente e em quantidade.

Performance: Rápido. Como o Faisca MacQueen.

Uma das coisas que mais me impressiona no IT-Tools é a performance. A aplicação é construída com Vue.js e é extremamente leve. Carrega praticamente instantaneamente, mesmo em conexões lentas.
E porque todas as ferramentas correm no browser (client-side), não há latência de rede. Inserem o input, obtêm o output. Zero delay. É especialmente notável quando comparado com ferramentas online que precisam de fazer round-trips ao servidor para cada operação.
O footprint de memória é igualmente muito reduzido. Podem ter a aplicação aberta o dia todo sem se preocuparem com consumo de recursos. É ligeira, eficiente, e não abranda o vosso sistema.

Segurança e Privacy: Os Vossos Dados Ficam Vossos

Sabiam que isto vinha ai… Num mundo onde parece que toda a gente quer os nossos dados, o IT-Tools destaca-se por fazer exactamente o oposto. Todas as operações são feitas localmente no browser. Os vossos dados nunca são enviados para qualquer servidor externo.
Isto é especialmente importante quando estamos a trabalhar com dados sensíveis: tokens de autenticação, dados de clientes, informação confidencial de projetos… Podem usar o IT-Tools com confiança total de que os dados ficam na vossa máquina.
E se fizerem self-host, têm controlo total sobre a infraestrutura. Querem ter isto numa rede isolada sem acesso à internet? Sem problema. Querem adicionar autenticação extra? É só configurar no vosso reverse proxy. Controlo total.

A Comunidade: Open Source no Seu Melhor

Uma das coisas que mais aprecio no IT-Tools é a comunidade activa à sua volta. O projeto está constantemente a evoluir, com contribuições regulares de developers de todo o mundo que adicionam ao código de forma a melhor a ferramenta.

Se sentirem que falta alguma coisa, podem:

  • Submeter um feature request
  • Contribuir com a vossa própria ferramenta (há até um script que gera o boilerplate)
  • Ajudar a melhorar ferramentas existentes

O código é limpo, bem estruturado, e documentado. Se têm interesse em contribuir, é um projeto óptimo para começar. E a equipa de manutenção é muito receptiva a pull requests e sugestões.

Comparação com Alternativas

Claro que o IT-Tools não é a única solução neste espaço. Há outras ferramentas e websites que oferecem funcionalidades similares. Mas há algumas diferenças chave que fazem o IT-Tools destacar-se:

Versus Websites Individuais

Usar sites como base64decode.org, jsonlint.com, etc., é funcional mas tem problemas:

  • Cada ferramenta está num site diferente
  • Dependem de conexão à internet
  • Muitos têm ads e tracking
  • Podem desaparecer a qualquer momento
  • Performance inconsistente
  • Os vossos dados estão a viajar pela internet

O IT-Tools resolve todos estes problemas num único package.

Versus CyberChef

O CyberChef é uma ferramenta fantástica que tambem uso e em breve irei fazer um post sobre ela, especialmente para operações de criptografia complexas e análise forense. Mas tem um foco diferente:

  • CyberChef é mais focado em security e análise
  • IT-Tools é mais orientado para desenvolvimento do dia-a-dia
  • IT-Tools tem uma UI mais simples e directa
  • Ambos podem coexistir perfeitamente no vosso toolkit

Versus Ferramentas CLI

Muitas destas operações podem ser feitas via command line (e eu adoro a CLI). Mas há situações onde uma GUI é simplesmente mais prática e mais eficiente:

  • Quando precisamos de ver o output visualmente
  • Para operações que não fazemos frequentemente (não queremos memorizar o comando)
  • Quando estamos a colaborar com colegas menos confortáveis com CLI
  • Para prototipagem rápida e experimentação

O IT-Tools complementa as ferramentas CLI, não as substitui.

Casos de Uso Avançados

Para além do uso básico, há alguns casos de uso mais avançados que tenho vindo a descobrir ao longo do tempo que tenho usado este software:

Integração em Workflows

Embora o IT-Tools seja principalmente uma ferramenta de UI, algumas das operações podem ser replicadas programaticamente. Por exemplo, se descobrirem que precisam frequentemente da mesma operação, podem automatizá-la usando as mesmas bibliotecas que o IT-Tools usa internamente.

Ambiente de Teste Isolado

Para tarefas/projetos que trabalham com dados sensíveis, podem fazer deploy do IT-Tools numa rede completamente isolada, sem acesso à internet. Isto garante que nenhum dado pode acidentalmente ir parar onde não deve.

Training e Onboarding

O IT-Tools é uma ferramenta excelente para training de novos developers e estagiários. Em vez de terem de mostrar dezenas de sites diferentes, podem simplesmente apontar para o IT-Tools e dizer “tudo o que precisas está aqui”.

Roadmap e Futuro

O projeto está em constante evolução. Algumas das features que estão no roadmap incluem:

  • Mais ferramentas específicas para diferentes linguagens de programação
  • Capacidades de scripting para automatizar operações complexas
  • Themes customizáveis
  • Histórico de operações
  • Bookmarks de ferramentas favoritas

E claro, a comunidade está sempre a adicionar novas ferramentas. O ritmo de desenvolvimento é impressionante.

Limitações: Porque Honestidade É Importante

O IT-Tools não é perfeito. Algumas limitações que devem ter em conta se pensarem fazer um deployment dele em larga escala.:

  • Não É Para Operações em Batch: Se precisam de processar milhares de ficheiros ou fazer operações em massa, as ferramentas CLI são mais apropriadas. O IT-Tools é óptimo para operações individuais e interativas.
  • Limitações de Browser: Algumas operações têm limitações impostas pelo browser. Por exemplo, processar ficheiros muito grandes pode ser problemático devido a limites de memória.
  • Não Substitui Ferramentas Especializadas: Para análise muito específica ou avançada, ferramentas dedicadas podem ser mais apropriadas. O IT-Tools é fantástico para 90% dos casos de uso, mas há sempre aqueles 10% que precisam de algo mais específico.

E eis nos no fim de mais um post semanal. Depois de largas dezenas de meses a usar o IT-Tools diariamente, não consigo imaginar o meu workflow sem ele. É uma daquelas ferramentas que resolve problemas que nem sabíamos que tínhamos – ou melhor, problemas que aceitávamos como inevitáveis.
A quantidade de tempo que poupa, a conveniência de ter tudo num só lugar, a paz de espírito de saber que os dados não saem da nossa máquina… É difícil quantificar o valor, mas é enorme.
E o melhor? É completamente gratuito, open-source, e self-hostable. Não há catch, não há upsells, não há versões premium. É simplesmente uma ferramenta fantástica feita por alguém que percebe as necessidades dos developers.
Se ainda não experimentaram, façam um favor a vós próprios e testem. Podem começar com o deploy simples via Docker que mostrei acima, ou simplesmente ir a it-tools.tech e experimentar a versão hosted.
Garanto que daqui a uma semana vão estar a perguntar-vos como é que viveram tanto tempo sem isto. Eu certamente pergunto-me.
Como sempre, se implementarem o IT-Tools ou encontrarem casos de uso interessantes, façam favor de partilhar. Adoro saber como as ferramentas que recomendo estão a ser usadas na prática.

E se contribuírem para o projeto – seja com código, tradução, ou simplesmente reportando bugs – estão a fazer o ecossistema open-source melhor para todos. É este tipo de colaboração que faz da nossa indústria algo especial.

Abraço, Nuno

P.S.: Se decidirem fazer self-host e configurarem algo particularmente interessante (tipo integração com SSO, dashboards personalizados, ou ferramentas customizadas), partilhem! A comunidade agradece, e eu adoro ver implementations criativas de ferramentas que recomendo.

P.P.S.: Sim, estou a escrever isto enquanto tenho o IT-Tools aberto noutro tab. Acabei de usar o JSON formatter há literalmente 2 minutos. Caso provado.