Category: software

  • maimat: compactação e redimensionamento de imagens em massa

    maimat (Ferramenta de Manipulação de Imagens em Massa) é uma ferramenta de código aberto projetada para processamento de imagens em lote: redimensionamento e compactação. O aplicativo é escrito em Python 3.10+ e usa ImageMagick como mecanismo de processamento.

    Links

    https://github.com/zefir1990/maimat

  • Aleka é um aplicativo de desenho multiplataforma desenvolvido em Flutter

    Aleka é um aplicativo de desenho leve e rápido escrito em Flutter. Funciona em qualquer lugar: no navegador, no desktop (Windows, macOS, Linux) e em dispositivos móveis (iOS, Android).

    Sob o capô está puro Dart, Material 3 e atenção aos detalhes.

    Oportunidades

    • Desenho à mão livre: traços suaves com interpolação quadrática de Bézier.
    • Paleta de 15 cores: seleção rápida com indicação visual.
    • Tamanho do pincel: ajustável com um controle deslizante de 1 a 30 px.
    • Desfazer: retroceda nas pinceladas.
    • Limpe a tela: com um clique.
    • Preenchimento de inundação: BFS com tolerância para bordas suaves.
    • Salvar: formato .aleka (JSON).
    • Carregando: abra os desenhos salvos anteriormente e continue.
    • Exportação PNG: capture tela com resolução 3x.
    • 🎬 Modo de animação: Animação quadro a quadro com linha do tempo:
      • Adicionar e remover molduras, cada uma com seu próprio design.
      • Duração do quadro de 50 ms a 5 s.
      • Alterar FPS: 6, 8, 12, 15, 24, 30 ou 60.
      • Exporte para MP4 (via ffmpeg no desktop, ffmpeg.wasm no navegador).
    • Tema escuro e claro: Material 3, segue o sistema.

    Por que vibrar?

    Flutter permite que você escreva um aplicativo para seis plataformas sem duplicar código. Aleka usa apenas os recursos nativos do Dart e Flutter SDK e um mínimo de dependências de terceiros: file_picker, image para trabalhar com pixels durante o preenchimento, ffmpeg_wasm para exportar vídeo no navegador.

    Arquitetura

    O projeto segue os princípios da arquitetura limpa e SOLID:

    • PaintCanvasController – controla o estado dos traços e preenchimentos através do padrão Ouvinte/Observador.
    • PaintToolbar – componente de UI da paleta, controle deslizante e botões.
    • AlekaFile – serialização/desserialização em JSON, captura PNG.
    • MovieController – modelo de frames e estado de animação.
    • VideoExport – encapsula a lógica de codificação MP4 (desktop/web).

    Funções de E/S (saveStrokes, loadStrokes, capturePng, etc.) são injetáveis ​​- elas podem ser substituídas por simulações durante o teste. O projeto conta com 79 testes: verificação de serialização, cancelamento, carregamento/salvamento, exportação de PNG e vídeo, modelo de quadro e linha do tempo.

    Formato de arquivo .aleka

    O arquivo .aleka é um JSON legível que pode ser aberto em qualquer editor de texto:

      "aleka": "1.0",
      "strokes": [
        {
          "color": 4278190080,
          "strokeWidth": 3.0,
          "points": [[100.0, 200.0], [150.0, 250.0]]
        }
      ]
    }
    

    Cada traço armazena uma cor (ARGB32), uma espessura e uma matriz de pontos. O formato é versionado pelo campo aleka.

    Modo de animação

    Um dos principais recursos é o editor de animação quadro a quadro integrado. Você desenha uma moldura, adiciona uma nova, desenha a próxima e assim por diante. A linha do tempo mostra miniaturas e permite alterar a ordem e a duração dos quadros. A animação finalizada pode ser exportada para MP4.

    O algoritmo de exportação percorre todos os quadros, captura-os via RepaintBoundary, coleta bytes PNG e os transfere para o codificador. Na área de trabalho, o sistema é chamado de ffmpeg, no navegador é usado ffmpeg.wasm – uma porta completa do ffmpeg para WebAssembly, trabalhando diretamente na sandbox do navegador.

    Preenchimento de inundação

    A implementação de preenchimento usa Breadth First Search (BFS) com tolerância de cores (_kFillTolerance = 1000). Isso permite que você processe corretamente as bordas suaves dos traços – o preenchimento não flui além do contorno, mas captura pixels translúcidos na borda. Para uma tela vazia, um preenchimento sólido é criado sem cálculos desnecessários.

    Tente

    Aleka está disponível na web e como aplicativo nativo:

    demensdeum.com/software/aleka/

    O código-fonte está aberto sob a licença do MIT:

    github.com/demensdeum/Aleka

  • Mama Calendar – aplicativo de lembrete multiplataforma

    Mama Calendar é um aplicativo multiplataforma de eventos e lembretes escrito em React Native (Expo) com duas implementações de backend: Node.js + MongoDB e PHP + MariaDB.

    O aplicativo permite criar eventos com categorização de emojis, selecionar o tipo de repetição (uma vez, anualmente, mensalmente, semanalmente, diariamente) e visualizar eventos importantes dos próximos 3 dias em uma aba separada “Eventos Importantes”.

    Pilha de tecnologia

    O frontend é escrito em React Native 0.86 via Expo SDK 57 com TypeScript, Expo Router para navegação e react-native-reanimated para animações. Os símbolos Expo são usados ​​para ícones (símbolos SF no iOS, ícones de materiais no Android/Web).

    O backend é implementado em duas versões:

    • Node.js: Express 4, MongoDB 8 via driver nativo, autenticação personalizada com scrypt + salt, gerenciamento manual de tokens. Docker Compose traz o cliente (nginx), servidor e MongoDB.
    • PHP: PHP 8.2 sem frameworks, PDO + MariaDB 11, bcrypt para hash de senha, roteador próprio e carregamento automático de PSR-4 via Composer.

    Funções do aplicativo

    • Registro e autorização: sistema simples com nome de usuário/senha e tokens ao portador
    • Eventos CRUD: crie, visualize, edite e exclua eventos com data, emoji e tipo de repetição
    • Filtragem inteligente: A guia Eventos Importantes mostra os eventos dos próximos 3 dias, levando em consideração as regras de repetição. Por exemplo, eventos anuais mostram a ocorrência anual mais próxima, mensalmente – por dia do mês, semanalmente – por dia da semana
    • Seletor de emojis: 20 emojis predefinidos para categorização rápida de eventos
    • Destacando os eventos de hoje: os eventos de hoje são destacados com um fundo vermelho (#B71C1C)
    • Tema escuro: Detecção automática do esquema de cores do sistema com paletas separadas para tema claro e escuro
    • Internacionalização: idiomas russo e inglês via React Context
    • Анимации: анимированный сплэш-скрин с Keyframe API и упругой интерполяцией, анимированная иконка приложения с вращающимся свечением
    • Endpoints administrativos: gerenciamento de usuários, tokens e limpeza do banco de dados por meio de tokens mestres

    Por que duas implementações de back-end?

    A versão Node.js é a principal, mas a versão PHP existe como alternativa para uma hospedagem mais clássica. A API é completamente idêntica, o que permite alternar entre elas sem alterar o código do cliente.

    Infraestrutura

    Toda a pilha é levantada através do Docker Compose: o cliente é montado através de uma construção multiestágio (Expo export → nginx alpine), um servidor em Node.js, MongoDB 8. Para a versão PHP há um arquivo compose separado com MariaDB 11 e phpunit para testes.

    A montagem da versão web é automatizada por um script PowerShell que corrige o API_URL antes da expo export e restaura os originais depois.

    Saída

    Mama Calendar é um aplicativo multiplataforma completo que cobre o ciclo completo: desde frontend móvel e web no React Native até duas opções do lado do servidor. O projeto é interessante por sua arquitetura, uso de recursos modernos do Expo SDK e implementação de backend duplo.

    Links

    https://github.com/zefir1990/Mama-Calendar
    https://demensdeum.com/software/mama-calendar/events

  • Teflecher


    Teflecher é um aplicativo de teste rápido, interativo e multiplataforma desenvolvido com base no Kotlin Multiplatform (KMP) e no Compose Multiplatform. Ele permite que os usuários carreguem questionários intuitivamente de arquivos JSON locais ou URLs remotos, respondam a perguntas de múltipla escolha, vejam feedback instantâneo sobre as respostas corretas e rastreiem seus resultados.

    Rede:
    https://demensdeum.com/software/teflecher/

    Github:
    https://github.com/zefir1990/teflecher

    Também um editor de quiz no formato Teflecher Editor baseado em tecnologias Ionic + Capacitor

    Rede:
    https://demensdeum.com/software/teflecher-editor/

    Github:
    https://github.com/zefir1990/teflecher-editor

  • Contatos fantasmas


    Ghost Contacts é um aplicativo da web simples projetado para ocultar seus contatos de APIs de sistema padrão e listas telefônicas. Todas as informações são armazenadas exclusivamente localmente no seu navegador e não são transferidas para servidores externos.

    Principais características

    • Ocultar-se das APIs do sistema:seus contatos não são sincronizados com as APIs de contatos padrão do sistema e com a lista telefônica do dispositivo.
    • Panic Password: Uma senha especial, quando inserida, todo o banco de dados de contatos é excluído instantânea e irrevogavelmente.
    • Importar e exportar: transferência conveniente do banco de dados de contatos por meio de arquivos CSV para criar cópias de backup.

    Inscrição on-line:
    https://demensdeum.com/software/ghost-contacts/

    Github:
    https://github.com/demensdeum/GhostContacts

  • Raiden Video Ripper

    Raiden Video Ripper é um projeto de código aberto projetado para edição de vídeo e conversão de formato. Ele é criado usando Qt 6 (Qt Creator) e permite editar e converter vídeos para os formatos MP4, GIF e WebM. Você também pode extrair áudio de vídeos e convertê-lo para o formato MP3.

    Loja da Microsoft:
    https://apps.microsoft.com/detail/9nvzjs98smgc

    Github:
    https://github.com/demensdeum/RaidenVideoRipper/releases

  • Rádio Ushka

    Ushki-Radio é um reprodutor de rádio multiplataforma para rádio online, feito com foco na simplicidade e no prazer de ouvir. Sem funções desnecessárias, sem interfaces sobrecarregadas – basta ligá-lo e ouvir.


    https://demensdeum.com/software/ushki-radio

    O projeto utiliza o Radio Browser de código aberto, disponibilizando no aplicativo milhares de rádios de todo o mundo. Você pode procurá-los por nome, gênero ou popularidade, adicioná-los aos seus favoritos e retornar rapidamente às suas estações favoritas.

    Ushki-Radio é perfeito para o papel de reprodutor de rádio de fundo: lembra a última estação, permite controlar o volume e não requer configurações complexas. A interface é concisa e intuitiva – tudo é feito para que nada distraia a música, as conversas e a transmissão.

    Tecnicamente, o projeto é construído em React Native e Expo, portanto funciona tanto no navegador quanto como aplicativo nativo. Nos bastidores, o expo-av é usado para reproduzir áudio e as configurações do usuário são armazenadas localmente. Há suporte para vários idiomas, incluindo russo e inglês.

    Ushki-Radio é um bom exemplo do que um reprodutor de rádio moderno na Internet pode ser: aberto, leve, expansível e focado principalmente no ouvinte. O projeto é distribuído sob licença do MIT e é perfeito tanto para uso pessoal quanto como base para seus próprios experimentos com aplicativos de áudio.

    Github:
    https://github.com/demensdeum/Ushki-Radio

    Google Play:
    https://play.google.com/store/apps/details?id=com.demensdeum.ushkiradio

  • Glazki TV: reprodutor moderno para televisão pela Internet

    Glazki TV é um player moderno e de alto desempenho para televisão pela Internet (IPTV), construído com base em React Native e Expo. O projeto está focado na facilidade de uso e rapidez, proporcionando uma interface conveniente para visualização de canais de IPTV tanto em dispositivos móveis quanto no navegador.

    Principais características

    • Navegação por canais: navegue por milhares de canais, categorizados para facilitar a navegação.
    • Pesquisa: encontre rapidamente os canais que você precisa por nome.
    • Favoritos: salve seus canais favoritos para acesso rápido (dados salvos localmente).
    • Deep Linking: compartilhe links diretos para canais que abrem automaticamente.
    • Suporte ao tema: a interface se adapta automaticamente ao tema claro ou escuro do sistema.
    • Suporte Web: O player é totalmente funcional no navegador com sincronização de URL.

    Pilha de tecnologia

    O projeto é baseado em modernas ferramentas de desenvolvimento:

    • Estrutura: React Native + Expo
    • Video Player: expo-video (замена устаревшему expo-av)
    • Kit de ferramentas de IU: react-native-paper
    • Analisador de lista de reprodução: iptv-playlist-parser

    Versão web:
    https://demensdeum.com/software/glazki-tv/

    Versão do Google Play:
    https://play.google.com/store/apps/details?id=com.demensdeum.glazkitv

DemensDeum
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.