- Dwitter es una plataforma donde puedes crear y compartir demos visuales con código JavaScript de hasta 140 caracteres
- Cada publicación se llama “dweet” y muestra, junto con el código, una animación gráfica que se ejecuta al instante
- Los usuarios interactúan mediante comentarios, remixes y hashtags, y hay mucha actividad de variación y recreación del código
- Se puede explorar contenido popular con varios criterios de ordenamiento como hot, new, top (semana/mes/año/todo)
- Es un espacio de experimentación de programación creativa donde se logran efectos visuales complejos con código corto
Resumen de Dwitter.net
- Dwitter.net es una plataforma web para crear demos visuales con código JavaScript limitado a 140 caracteres
- Cada demo se llama “dweet” y genera gráficos animados que se ejecutan de inmediato en el navegador
- Tras iniciar sesión, el usuario puede escribir un nuevo dweet o hacer remix de trabajos existentes
- El sitio permite explorar contenido popular con distintos criterios de ordenamiento, como hot, new, top (semana/mes/año/todo)
- Cada dweet incluye funciones de compartir, pantalla completa, reportar y comentar
Ejemplos destacados de dweets
- “Bubble universe colour expansion” es valorado por sus colores variados y su efecto visual bien definido
- En los comentarios aparecen reacciones como “A whole universe!”
- “Ants! 🐜” representa una colonia de hormigas con código breve y ha recibido elogios como “god level dweetage!”
- “Trees, shadows, hills.” es una animación que retrata árboles, sombras y colinas, y obtuvo reacciones como “Amazing stuff!”
- “Flight Over Destroyed City ✈️” recrea una escena de vuelo sobre una ciudad destruida
- En los comentarios siguieron respuestas humorísticas como “i love the smell of sulfur and uranium in the morning”
- “Solar Orbit ☀️🌘” implementa una órbita planetaria dentro de 140 bytes, provocando asombro con comentarios como “How did you fit a whole planetary system in 140 BYTES OF JAVASCRIPT!?!?”
Actividad de la comunidad y cultura del remix
- Cada dweet puede remixarse a partir del código de otros usuarios, y se indica el enlace al original
- En los comentarios se mezclan retroalimentación técnica, impresiones y humor, creando un ambiente comunitario muy activo
- Con la función de hashtags se puede explorar por temas como #space, #galaxy, #lighting, #scene
Características técnicas
- La mayor parte del código está comprimida en formas como eval(unescape(escape
...)), buscando lograr el máximo efecto visual dentro del límite de 140 caracteres
- Dentro del código predominan las expresiones de formas, color y movimiento usando la Canvas API
- Cada dweet indica la longitud del código (por ejemplo, “// 136/140”), por lo que las técnicas de optimización y compresión son un elemento importante
Un espacio para la experimentación creativa en programación
- Dwitter combina el code golf con el arte visual, fomentando una competencia creativa entre desarrolladores
- El proceso de crear resultados visuales complejos con código simple se valora como una forma de estética de la programación
- La plataforma funciona como un espacio experimental para explorar la frontera entre la expresión artística y la compresión técnica
2 comentarios
Es realmente asombroso.
Comentarios en Hacker News
Perdón por tener que reiniciar el servidor un momento. Gracias a la lección que aprendí la vez pasada que pasó algo parecido, ajusté el tamaño del droplet de DigitalOcean
Por ejemplo, algo como
eval(unescape(escape\<<97 wide characters>>`.replace(/u../g,'')))`, donde 97 caracteres Unicode se restauran como 194 ASCIIPreferiría que hubiera un acuerdo tipo la conversación entre Ford Prefect y Mr Prosser de “digamos que metimos 194 caracteres en 140 y simplemente mostrémoslo”
Es una lógica parecida a la del límite de 4096 bytes en las demoparties, donde en la práctica se comprimen 12~20 KB con Crinkler para que entren
Busqué una entrevista vieja y está interesante: entrevista en Medium
La verdadera magia está en la comunidad: comunidad en Discord
GIF animado
Para más detalles, ver publicación en el foro de Autohotkey
Cuando hay restricciones, la diversidad explota. Ilusiones visuales, frases cortas, experimentos en direcciones inesperadas
Las restricciones ayudan a enfocarse y reducen el costo del fracaso, lo que fomenta la experimentación
La mayoría de las plataformas intentan expandir la creatividad agregando funciones, pero terminan volviéndose más complejas
A menudo pienso en la regla de que las restricciones crean diversión
Me da curiosidad saber cuándo las restricciones han producido mejores resultados, y cuándo se sienten como algo artificial
Esa experiencia cambió por completo mi forma de pensar el código
En una comunidad pequeña compartíamos técnicas para ahorrar bytes e hicimos desde renderizado de Mandelbrot hasta solvers de Sudoku
Diez años después me sorprendió muchísimo encontrar una implementación de UUID que había hecho en ese entonces dentro del codebase de mi empresa
Enlaces relacionados: video de YouTube, Byte-saving techniques, UUID gist
js_funcse llama como tagged template literalAhora voy a empezar a usar cosas como
console.log\weeee``Por ejemplo: htm, lit.dev
Guardé pequeños datos SVG en código inline e hice un sampler de 13 KB
Enlace de ejemplo
Por ejemplo:
evalEn cambio, estaría bien que agregaran más atajos. Por ejemplo,
ssignificaMath.sign, pero se podría ampliar másSi se cambia después, desaparece el objetivo fijo y pierde parte de su encanto
beta.dwitter.net mejora la accesibilidad del encoding y aun así mantiene un objetivo fijo
Excepciones como Math.sin o el codificador de colores CSS se agregaron por razones prácticas
En Dwitter 2 también se habló de incluir más caracteres predefinidos para que los usuarios pudieran extenderlos por su cuenta
Al final, lo importante es la creatividad. Incluso torcer las reglas es en sí mismo un acto creativo
evalse resolvería de raízTodavía se podría comprimir datos con literales de cadena, pero se reduciría la compresión del código completo
eval. Las reglas son las reglas (o no hay reglas)