7 puntos por GN⁺ 2023-12-23 | 1 comentarios | Compartir por WhatsApp
  • Heynote es un scratchpad tipo búfer de texto persistente que mantiene en un solo lugar textos temporales dispersos durante el desarrollo, respuestas de API, notas de reuniones y listas de tareas
  • La unidad de trabajo es el bloque; puedes crear un bloque nuevo con ⌘-Enter y seleccionar rápidamente solo el contenido del bloque actual con ⌘-A
  • Aplica resaltado de sintaxis y formato automático según la configuración de lenguaje de cada bloque, como JavaScript, JSON o Markdown
  • Los bloques Math procesan variables, funciones, conversiones de unidades e incluso conversiones de moneda, para que puedas continuar cálculos simples dentro del contexto
  • Ofrece múltiples búferes de notas, organización por directorios, correspondencia con archivos, imágenes inline y funciones de anotación, con foco en reunir el espacio de trabajo temporal de los desarrolladores en una sola app

Scratchpad basado en bloques

  • La estructura básica de Heynote es un gran búfer de texto persistente dividido en varios bloques
  • Puedes crear un bloque nuevo con ⌘-Enter y, al presionar ⌘-A dentro de un bloque, se selecciona solo el contenido del bloque actual, no todo el documento
  • Está pensado para pegar rápidamente materiales que no conviene dejar en otro lugar de forma temporal
    • Borradores de mensajes de Slack que no quieres enviar por accidente
    • Respuestas JSON de una API en la que estás trabajando
    • Notas de reuniones
    • Lista diaria de tareas

Funciones de bloques para código y documentación

  • Cada bloque puede tener su propia configuración de lenguaje, como JavaScript, JSON o Markdown
  • Según la configuración de lenguaje, se aplica resaltado de sintaxis y también se admite el formato automático por bloque
  • Soporta varios lenguajes de programación, lo que permite trabajar con fragmentos de código y notas de documentación dentro del mismo búfer

Bloques Math para usar como calculadora

  • Un bloque Math puede usarse como scratchpad de calculadora para cálculos simples
  • Soporta variables, funciones y conversiones de unidades; las conversiones de unidades incluyen también conversiones de moneda
  • Está pensado para hacer “cálculos de servilleta” rápidos dentro del flujo de notas

Múltiples búferes y organización de archivos

  • Además del búfer Scratch predeterminado, puedes crear tantos búferes de notas como quieras
  • Los principales atajos para trabajar con búferes son los siguientes
    • ⌘-N: crear un nuevo búfer
    • ⌘-S: mover el bloque actual a un nuevo búfer
    • ⌘-P: cambiar rápidamente entre búferes
  • Los búferes se pueden organizar en directorios y cada búfer corresponde a un archivo en el disco

Imágenes y anotaciones

  • Heynote soporta imágenes inline
  • Puedes pegar imágenes desde el portapapeles o arrastrar y soltar archivos de imagen en un búfer
  • Puedes seleccionar y redimensionar imágenes dentro del editor, y también volver a colocar rápidamente una imagen en el portapapeles del sistema
  • Con una herramienta ligera de dibujo integrada, puedes agregar anotaciones a mano alzada sobre las imágenes
  • Una imagen anotada puede actualizarse como una nueva versión en el portapapeles con un solo clic o una tecla, para pegarla en otro lugar

Descarga

  • La versión estable más reciente es 2.9.0
  • Las descargas compatibles se ofrecen como Mac Universal, Mac Arm, Mac Intel, Windows, AppImage y Snap
  • También se ofrece la versión beta 2.9.1-beta
  • Puedes consultar todos los lanzamientos en All releases

1 comentarios

 
GN⁺ 2023-12-23
Opiniones de Hacker News
  • Realmente excelente. Es casi exactamente lo que esperaba de un scratchpad.
    Si pudiera agregar una solicitud de funcionalidad, me gustaría que soportara un flujo “inverso”, donde los bloques nuevos se agreguen al principio de la página en vez de abajo. El scratchpad siempre se abre arriba y, con el tiempo, los bloques más viejos se “hunden” hacia abajo, de modo que lo más relevante queda arriba.
    Esto encaja mejor con mi forma de pensar. Dicho eso, como mencionan otros en este hilo, también estoy a favor de ignorar la mayoría de estas solicitudes de funcionalidades y conservar la simplicidad de lo que ya crearon. Incluida mi propia solicitud.

    • Me alegra que te guste :)
      Entiendo la idea “inversa”. Me pregunto si bastaría con que C-Enter pudiera configurarse para insertar un bloque nuevo antes del bloque actual, y que Heynote, al iniciarse, ponga el cursor al inicio del búfer en lugar de al final como hace ahora.
    • A mí también me gusta este enfoque. Aunque creo que sería distractor ver cómo se mueven todos los bloques debajo del cursor cada vez que se crea una línea nueva.
      La UX ideal sería agregar un búfer nuevo arriba, pero con suficiente padding como para llenar la ventana y que no se vea el movimiento de los bloques anteriores mientras escribes.
      Todavía no he descargado la app, pero quizá ya se comporte de forma parecida. Se ve bien y tengo ganas de probarla.
    • Esta funcionalidad adicional me parece muy útil. Ya uso ese orden de toma de notas en documentos Markdown.
    • Creé una app de notas con un enfoque similar. Las notas se agregan arriba y, si editas una nota, vuelve a “subir” al principio: https://thinktype.app/
    • Con esta función también estaría bueno usarla como registro diario.
  • Probablemente pagaría por esto si tuviera: atajos de teclado de vi, que muestre la ubicación del archivo para poder moverlo o sincronizarlo/respaldarlo entre varios dispositivos, y orden inverso.
    Está muy, muy bueno.

  • Se ve genial. Me gusta la idea de los bloques, así que voy a descargarlo y probarlo.
    Como siempre, hay mucha charla sobre Electron, así que si todavía no lo viste, quería mencionar Tauri. Es una herramienta similar a Electron basada en Rust, y en lugar de Chromium usa el webview del sistema, lo que reduce bastante el tamaño del paquete y el uso de memoria.
    Viendo el código, no parece haber muchísimo código específico de Electron, así que si te interesa probar Rust, quizá no sea tan difícil reemplazarlo. Una app de edición de video que estaba creando empezó con Electron y luego la cambié a Tauri a mitad de camino, y fue bastante bien.
    No es una solicitud, puedes ignorarlo sin problema.

    • Evalué Tauri al inicio del proyecto. Elegí Electron por su madurez y su gran base de usuarios.
      Después de probar otras herramientas multiplataforma para mobile tenía expectativas muy bajas, pero en la práctica trabajar con Electron fue muy cómodo y no me arrepiento de la elección. Casi no hubo bugs, el ecosistema es grande, y me gustó que fuera fácil automatizar builds para varias plataformas y actualizaciones automáticas.
    • Lo que no me gusta de Tauri es que en Linux usa WebKitGtk2. Desde el punto de vista del rendimiento es bastante malo, y también tiene menos soporte de funcionalidades que WebKit en macOS o Webview2 en Windows.
    • Leí que la parte de Rust es incómoda de usar. Me da curiosidad si Tauri te pareció productivo.
  • Me encanta. Es simple y está implementado de forma sólida. Hace tiempo quería crear algo parecido; quizá haga un fork y juegue un poco con esto.
    Ahora estaba usando algo similar en Obsidian, creando una nota nueva cada día y separando “bloques” con líneas horizontales de Markdown (---), pero esto es mucho más limpio.
    La fortaleza de este enfoque es que hace que capturar sea extremadamente fácil. Creas un bloque nuevo y escribes de inmediato, sin preocuparte por dónde ponerlo ni cómo encaja en la estructura existente. Cuando te pones a pensar en eso, a veces pierdes la idea mientras buscas dónde colocarla.
    La desventaja, por supuesto, es volver a encontrar las cosas. Estaría bueno poder poner etiquetas o títulos a los bloques y buscar por etiqueta/título. Más ambicioso aún, sería interesante experimentar con LLMs y embeddings para etiquetar, resumir, clasificar y agrupar bloques automáticamente.
    Hay muchas direcciones posibles, pero también coincido con quienes dicen que no conviene agregar demasiadas funciones y perder la simplicidad que lo hace atractivo. También me da curiosidad cómo manejan el rendimiento cuando el búfer crece mucho.

    • No es open source. Usa Commons Clause, que limita mucho lo que se puede hacer. El nombre se presta a confusión.
    • El rendimiento lo maneja en gran parte CodeMirror(https://codemirror.net/), el editor en el que se basa Heynote. Parece manejar bien búferes bastante grandes.
      Dicho eso, vi pequeños problemas de rendimiento al manejar bloques muy grandes en ciertos modos de lenguaje.
    • Uso Obsidian para notas de programación, registros de resolución de problemas, pensamiento “sobre papel”, escritura y validación de hipótesis. Es muy potente y el rendimiento es bastante bueno. Pregunta lo que quieras.
  • Acabo de descargarlo e instalarlo, y es realmente impresionante. Me gustó el concepto de bloques matemáticos, pero me tomó unos segundos descubrir cómo convertir un bloque nuevo en un bloque matemático.
    El texto de arriba ⌘ + L Change block language no me llevó de inmediato a pensar en “cambiar el tipo de bloque”. Estaría bueno ajustarlo un poco, por ejemplo: ⌘ + L Change block language (Math, Markdown, etc.).
    Por lo demás, me parece un proyecto excelente que resuelve justo una necesidad concreta.

    • Buena sugerencia, lo cambiaré
  • Me gusta. Es justo lo que necesitaba. Hasta ahora usaba para esto un grupo de WhatsApp en el que solo estoy yo
    Mis solicitudes de funciones son: paquete para Arch, que los resultados matemáticos se incluyan en buffer.txt y en el contenido copiado después de Ctrl+a, cambiar la fuente y el tema de colores, soporte de imágenes y medios en bloques Markdown, marcas de tiempo por bloque, recargar archivos y posibilidad de uso móvil
    En particular, para los colores me gustaría que se mantuvieran mínimos como ahora, pero que en lugar de CSS personalizado se pudieran configurar solo algunos colores. Para pegar imágenes, me gustaría que fuera como en Markdown de VS Code: al insertar una imagen con Ctrl+v, se inserta el Markdown y la imagen se guarda como archivo. Una vista previa de Markdown también estaría bien, aunque entiendo si consideran que queda fuera del alcance
    Las marcas de tiempo me vendrían especialmente bien si se guardaran createdAt y updatedAt en la línea de buffer.txt que tiene el símbolo de infinito, porque así podrían extraerse fácilmente con grep y cut. Más abajo dijeron que están trabajando en recargar archivos para poder respaldarlos con Git o algo similar, y también espero eso con ganas

    • Creo que sería posible agregar el resultado del cálculo a las líneas que se copian desde un bloque matemático, y a mí también me gusta la idea
      Coincido en que estaría bueno que el resultado también quedara en buffer.txt, pero por detalles de implementación parece más difícil
      En cuanto a configurar fuentes y temas de color, por ahora me inclino por reducir la cantidad de opciones configurables, así que es muy probable que no lo agregue
      Las marcas de tiempo por bloque están en la lista de pendientes, igual que la recarga de archivos. Lo móvil probablemente sea difícil
    • Vi que más abajo dijeron que planean agregar una versión PWA con almacenamiento local. Entonces pueden ignorar la solicitud móvil; en su lugar, estaría bueno tener un botón de descarga en móvil para poder sincronizar con el escritorio mediante Git, Drive o algo parecido
    • Como está hecho con Electron, podrían permitir agregar CSS a la página HTML y así implementar fuentes y colores
      Eso también permitiría usar CSS llamativo en algunas notas
  • Es realmente, realmente bueno. Enseguida se ganó un lugar permanente en mi Dock
    Tengo una petición por la que estaría dispuesto a pagar: me gustaría que se pudieran ejecutar bloques de código y generar salida. Suelo abrir la consola del navegador para probar JS, y sería fantástico poder hacerlo justo al lado de otras notas

  • Me recuerda mucho al org-mode de https://orgmode.org/. Me pregunto si hay planes de agregar funciones parecidas a org, como la evaluación de bloques de código
    Personalmente no creo que vaya a dejar org-mode, pero estaría bueno tener algo que recomendarles, aunque sea como app independiente, a quienes son reacios a usar Emacs

    • Nunca he visto orgmode, así que no sé qué funciones tiene. Salvo por los bloques matemáticos, no planeo agregar evaluación de bloques de código porque aumentaría mucho la complejidad
  • Excelente. Para este tipo de uso siempre terminaba volviendo a TextEdit, pero ahora voy a probar Heynote y ver qué tal
    Me gusta ver cosas así en HN, como en los viejos buenos tiempos. Me pregunto si hay planes de soportar atajos de vi

    • Se ve genial, pero sin atajos de vi me resulta poco práctico
      Ahora me pregunto si podría conseguir algo parecido con un plugin de Vim o hacerlo yo mismo. Si estuviera dentro de la terminal, tendría la ventaja de poder dejarlo en una sesión persistente de tmux y acceder de forma remota
    • Estoy de acuerdo. Estaría bueno tener atajos vi/vim
  • También me gustaría recibir feedback :)
    Repositorio de Heynote en GitHub: https://github.com/heyman/heynote

    • Buena app. Siempre tuve a mano algún scratch pad para este uso, pero nunca una solución realmente buena. Soulver es bueno, pero está demasiado enfocado en matemáticas; las pestañas de VS Code también sirven, pero es molesto administrar varios buffers según el lenguaje. Me gusta el conjunto de funciones que hay acá
      Tengo algunos comentarios para mejorar o aclarar cosas. No encontré el atajo para cambiar de lenguaje hasta pasar el mouse sobre el elemento de la barra de estado, así que debería haber una opción de menú que muestre el atajo
      El cambio entre modo claro/oscuro y la comprobación de actualizaciones no suelen estar en la barra de estado en otras apps, así que parece mejor moverlos a configuración. También debería seguir por defecto el modo claro/oscuro del sistema, con la opción de sobrescribirlo por app si se quiere
      Si no hay suficiente contenido para poner en la barra de estado, quizá convendría eliminarla por completo. Ahora se siente como si hubieran reunido varias cosas ahí para justificar la barra de estado
      El branding verde está bien, pero la app tiene una personalidad bastante fuerte. Vale la pena pensar si la app debería tener una identidad tan marcada. Podrían considerar una paleta más neutra que encaje mejor con macOS, o varias opciones de color de acento que incluyan una neutra
      427 MB es mucho. Por suerte no consume tanta memoria con documentos pequeños, pero el bundle es demasiado grande para algo de esta escala. Me pregunto por qué incluye ffmpeg, si realmente necesita GLES y si el framework base de Electron de verdad supera los 300 MB
      Hay una opción de keymap, pero cuando borré el contenido inicial perdí el mapa de teclas real. Estaría bien tener una referencia de ayuda dentro de la app o, al menos, una página de documentación vinculada desde el menú de ayuda
      También estaría bueno poder cambiar la fuente. Tampoco entiendo el modelo de guardado. Me pregunto dónde se almacenan los datos, si puedo controlarlo, si hace falta guardar manualmente o cada cuánto se persisten. Quisiera saber si se puede poner en almacenamiento en la nube para sincronizar entre dispositivos y, si ya lo hace, si se puede desactivar
      Personalmente no me gusta que el ícono de la app incluya el nombre de la app. La mayoría de las apps no lo hacen, así que sugeriría un ícono más sutil
    • Una pequeña sugerencia: estaría bueno tener un atajo para insertar la fecha/hora actual
      O también una opción para rastrear la hora de creación de cada bloque y mostrarla en pequeño en alguna parte de la UI del bloque. Tener fechas es muy útil cuando uno vuelve a buscar notas antiguas
    • Me pregunto si se puede usar una fuente de ancho variable. Solo viendo el sitio web no queda claro. Para mí es una función imprescindible
    • Me pregunto si existe la posibilidad de tener un build arm64 para Linux. Podría compilarlo yo mismo, pero sería bueno no tener que hacerlo
    • Me gusta muchísimo. La idea es buena y está implementada de forma limpia. Mi instalación en macOS arm ocupa menos de 100 MB
      Vi que alguien pidió pestañas, pero a mí me gustaría poder abrir varias ventanas