2 pontos por GN⁺ 2024-03-10 | 1 comentários | Compartilhar no WhatsApp
  • Monodraw é um editor de arte ASCII para Mac que permite desenhar diagramas, fluxogramas e estruturas de dados em texto simples, para que possam ser lidos diretamente em documentação técnica e no código
  • Como o resultado é texto, é fácil copiar e colar; quando necessário, também é possível gerar imagens com exportação para PNG e SVG
  • Com suporte a mapas mentais, diagramas ER e criação de banners, o foco é mais em visualizações para documentação do que em simples edição de texto
  • Oferece FIGlet, 148 fontes padrão e recursos como linhas, retângulos, guias de alinhamento, grupos e atalhos, reduzindo o trabalho repetitivo de arte em texto
  • Requer macOS 11 Big Sur ou superior; a ferramenta de linha de comando deve ser baixada diretamente do site e só está incluída na versão comprada pela loja

Ferramenta de visualização em texto para Mac

  • Monodraw é um editor para criar arte ASCII no Mac
  • Permite criar estruturas baseadas em texto, como diagramas, layouts e fluxogramas
  • É usado para organizar visualmente objetos difíceis de entender apenas pelo código, como algoritmos, estruturas de dados e formatos binários
  • Como o resultado é texto simples, pode ser inserido praticamente sem alterações em documentos, código e especificações
  • Quando uma imagem é necessária, é possível exportar para PNG e SVG

Documentação técnica e representação de modelos de dados

  • Diagramas em texto incluídos em código e especificações servem para ajudar a entender estruturas rapidamente
  • A visualização de estruturas de dados, algoritmos e formatos de dados é importante para que o leitor compreenda relações e fluxos
  • Como se passa mais tempo lendo código do que escrevendo, diagramas em texto podem ajudar na manutenção e em revisões
  • Mapas mentais

    • Combina a simplicidade do texto simples com a abordagem de mapas mentais
    • Permite mover o texto para qualquer posição em uma tela infinita
    • Não fica preso à estrutura linear de um arquivo de texto
  • Diagramas ER

    • Visualiza modelos de dados como diagramas simples de entidade-relacionamento
    • Oferece suporte à notação Crow’s Foot em 3 variações

Recursos para criação de arte em texto

  • Banners podem ser criados com um único clique
  • FIGlet vem integrado, com 148 fontes incluídas por padrão
    • Também oferece suporte a fontes personalizadas
    • Redimensionamento de caixas de texto, troca de fonte e ajuste de alinhamento podem ser feitos interativamente, sem usar o terminal
  • A ferramenta de texto funciona com um mecanismo de texto personalizado baseado em CoreText
    • Permite ajustar alinhamento, posição, direção de avanço das linhas e deslocamento de linhas
    • Adiciona uma borda ao redor do texto com um único clique
  • A ferramenta de linha facilita a conexão de formas e oferece suporte a linhas ortogonais e em degraus
    • É possível definir o padrão tracejado das linhas
    • Linhas podem ser anexadas dinamicamente a outras formas por meio de pontos de conexão, reduzindo o esforço de reposicionamento após mover formas
  • A ferramenta de retângulo serve para criar caixas usadas com frequência em arte em texto
    • Bordas e plano de fundo podem ser definidos com poucos cliques
    • É possível adicionar sombras
    • Pontos de conexão personalizados permitem anexar linhas a posições exatas

Recursos auxiliares para reduzir o trabalho na tela

  • As ferramentas de desenho básicas incluem Pencil, Eraser, Bucket Fill e Picker
    • É possível sobrepor uma imagem à tela para usá-la como referência de traçado
  • O recurso de grupos permite agrupar várias formas em uma só, facilitando duplicação e movimentação
  • Guias de alinhamento evitam a necessidade de contar caracteres manualmente ao posicionar e redimensionar conteúdo
  • O recurso de foco permite bloquear ou ocultar as demais formas ao se concentrar em uma parte específica da tela
    • É possível ampliar para se concentrar nos elementos atualmente visíveis
  • Todos os recursos podem ser acessados por atalhos de teclado
    • As ferramentas podem ser selecionadas rapidamente com uma única tecla, sem teclas modificadoras

Suporte a macOS e condições da ferramenta de linha de comando

  • Monodraw foi projetado como um aplicativo nativo para macOS, do mecanismo de layout de texto à interface
  • A arte em texto pode ser exportada copiando e colando no editor de texto desejado
  • O requisito de sistema é macOS 11 Big Sur ou superior
    • Em versões mais antigas do macOS, é possível usar o Monodraw v1.3, que requer macOS 10.10 Yosemite ou superior
    • O Monodraw v1.5 requer macOS 10.14 Mojave ou superior
  • A interface de linha de comando está incluída apenas na versão baixada diretamente
    • Ela vem na versão baixada diretamente do site e comprada na loja
    • A versão da Mac App Store não pode incluir ferramentas de linha de comando devido às restrições do App Sandbox
    • Pode ser usada, por exemplo, com hooks de controle de versão para gerar documentação automaticamente ao fazer commits
    • Também oferece suporte a saída JSON, facilitando o uso por programas
  • Monodraw afirma não coletar nenhum dado

1 comentários

 
GN⁺ 2024-03-10
Opiniões no Hacker News
  • No fim, sempre acabo voltando para o Monodraw
    Outros apps têm tantas opções de recursos e estilos que fica difícil focar no conteúdo em si, mas o Monodraw não distrai
    Ainda assim, ele tem recursos suficientes para criar bastante coisa, e gosto especialmente das âncoras: https://tamasruss.com/articles/monodraw-anchors

    • É um pouco irônico dizer que outros apps impedem você de focar no conteúdo, mas mexer em separadores responsivos e pontos de âncora no Monodraw ser aceitável
      Mesmo assim, a técnica em si é elegante
    • As caixas UML para classes são realmente úteis, e o tutorial também é bom
  • Esta ferramenta é um dos meus apps favoritos, e paguei por ela assim que foi lançada
    Usei várias vezes para escrever documentação como esta: https://github.com/ivank/potygen/blob/main/packages/potygen/...
    ASCII é tão versátil que permite inserir ilustrações bonitas em lugares inesperados, facilitando a compreensão

    • Esses cantos parecem caracteres de bloco Unicode
    • Este exemplo é uma ótima ilustração que mostra de imediato o apelo do software, dá vontade de dar uma olhada por conta própria
    • O diagrama "With Expression" na linha 656 parece bom no emacs, mas ao abrir o link real no Chrome, todo o lado direito parece quebrado
      Os caracteres estão corretos, mas parece que a escolha de fonte do GitHub não lida bem com os “espaços significativos” da parte estendida
    • Seria melhor selecionar as linhas que você quer mostrar e criar um link direto para essa posição
  • Mantenho uma lista de ferramentas de texto para diagramas baseadas na web: https://xosh.org/text-to-diagram/
    Como alternativas web a esse tipo de ferramenta de desenho ASCII, há https://fsymbols.com/draw/, https://textik.com/, https://asciiflow.com/#/, https://web.archive.org/web/20210503172024/https://fatiherik..., https://app.monosketch.io, entre outras

    • Vale considerar também o Pikchr para a lista
      É uma ferramenta criada pelo autor do SQLite: https://pikchr.org/home/doc/trunk/doc/userman.md
    • Pelo critério dos diagramas que fiz à mão recentemente, as ferramentas dessa lista não tinham todos os recursos que eu queria
      Entre as da lista, parece que só https://textik.com/ lida com diagonais, e mesmo assim não parece ter recurso de preenchimento
      E o diagrama que eu estava tentando desenhar era deste tipo: https://pastebin.com/NPXFS1Fi
      No textik.com, consegui fazer a caixa e o triângulo, mas precisei corrigir manualmente vários cantos e preencher o interior à mão
      Mesmo que o Monodraw custe só 10 dólares, por ser um app nativo exclusivo para Mac, não sei se eu pagaria
      Trabalho muito na web e uso vários dispositivos, e só desenho diagramas algumas vezes por ano, então uma solução web ou um plugin para VSCode parece melhor
    • Também vale conferir as listas em https://fmhy.net
      Pode haver ferramentas interessantes por lá
    • Outra ferramenta que poderia entrar na lista é https://mbarkhau.github.io/asciigrid
    • Alguns anos atrás, criei uma ferramenta simples e ela ainda está hospedada em https://letterbrush.com
  • Gosto muito desta ferramenta
    Usei para criar diagramas do Mapless: https://sebastianconcept.github.io/Mapless/guides/2024/01/28...
    E também a usei para documentar a configuração do builder de Pharo VM Plugin: https://github.com/sebastianconcept/PharoPluginBuilder

    • Então você criou um diagrama de texto com uma ferramenta de desenho ASCII, tirou um screenshot dele e colocou no site?
      Parece um caminho muito indireto só para desenhar alguns retângulos; não haveria uma forma mais fácil?
    • Uso para documentar código-fonte, e é ótimo poder visualizar buffers ou layouts de structs dentro do código
  • Seria muito bom se isto fosse multiplataforma
    Eu gostaria de usar no Linux também
    Entendo o esforço necessário para criar um app bem-acabado, mas gostaria que as ferramentas de apps desktop mirassem melhor Linux, Windows e Mac
    Talvez esse seja um grande motivo para haver cada vez mais apps baseados na web

    • Acho um pouco surpreendente que Qt não seja mais usado em aplicações desktop
      Ele combina muito bem com esse tipo de app
  • Ferramenta excelente
    Como alternativa em versão web, há https://github.com/tuanchauict/MonoSketch, feito por um amigo em Kotlin
    Eu também fiz uma versão menos completa em Rust: https://github.com/huytd/ascii-d

  • Parece bom
    https://asciiflow.com/ é uma alternativa baseada na web e é a ferramenta que uso principalmente há 10 anos

    • Uso ASCIIFlow o tempo todo
      Só que ainda não descobri como fazer o navegador renderizar corretamente uma fonte monoespaçada
      Basta ver o diagrama de exemplo desta página: http://uggly.bytester.net/#how-it-works
    • Parece que leitores de tela não conseguem ler o texto desses diagramas
  • Essa ferramenta é o tipo de app que você compra e mantém guardado, mesmo que use só de vez em quando

    • Fico curioso se você a usa há muito tempo ou se está apenas supondo que é o tipo de software de que gostaria
      Se já usou, também gostaria de saber como aproveitou os diagramas que criou
      Consigo imaginar screenshots dos diagramas, mas o texto original parece grande demais para colocar em lugares como um terminal
    • O design do site também é limpo
  • Este app entrou em modo de manutenção em 2018; mudou alguma coisa desde então? https://blog.helftone.com/monodraw-maintenance-mode/

    • Sou o desenvolvedor do Monodraw
      Agradeço a boa recepção ao app
      Estou com uma falta extrema de tempo, por isso não consigo lançar mais atualizações
      Estou trabalhando em alguns recursos bastante solicitados, mas não posso prometer quando serão lançados
      Normalmente avanço um pouco durante as férias
      Mesmo assim, pretendo continuar corrigindo quebras causadas por upgrades do sistema operacional e manter o produto funcionando
    • Pelo https://x.com/Monodraw, parece que de fato houve atualizações
    • A resposta no fim do FAQ é meio estranha
      Ela cita que manter um projeto open source é um grande fardo e que, se um produto acabado for publicado como open source, podem acabar vendendo clones para clientes desavisados
      Mas, ao publicar como open source, contribuidores poderiam assumir parte do trabalho, e certas licenças podem impedir a venda desses clones
  • Usei no passado e gostei
    Pelo que lembro, uma reclamação era que, para manter recursos bacanas como âncoras ou caixas redimensionáveis, era preciso usar o formato de arquivo interno próprio
    Apontar diretamente para um desenho ASCII dentro de um documento Markdown não faz todos os recursos aparecerem automaticamente
    Se alguém realmente quisesse, acho que algoritmos inteligentes e LLMs poderiam resolver isso até certo ponto; de fato, usei bastante LLMs para rascunhar diagramas ASCII, com algum sucesso
    Mas ainda não encontrei um bom equilíbrio entre manutenibilidade — isto é, tratar caixas como caixas, e ao movê-las as linhas de conexão acompanharem — e portabilidade — isto é, tudo ser texto puro
    Se o Monodraw atual for diferente, ou se outra ferramenta resolver isso, eu adoraria saber
    Pelo menos, o Monodraw combinou melhor comigo do que o artist mode do Emacs

    • Ponto de vista interessante
      Fico curioso se você tem muitos diagramas existentes que quer gerenciar
      Se eu fosse criar do zero, eu até esperaria ter esse tipo de formato de arquivo abstrato, e gostaria de vê-lo como a relação entre um original tipo PSD e um resultado renderizado tipo PNG
      Ou algo parecido com a relação entre código-fonte e binário
      Acho difícil fazer de forma perfeita o parsing de um artefato de saída de volta para uma forma abstrata significativa