Para quien programa de noche y comparte lo que rompe

Si tu editor está abierto a las dos de la mañana, el shader no compila y aun así sigues ajustando el hash, este es tu sitio. Aquí se publican los fragmentos a medio camino, los errores que se repiten y las decisiones que tomamos cuando el resultado todavía no se parece a nada.

Lo que encontrarás si programas por gusto y no por encargo

Esta página es para quien llega después de un día de trabajo y todavía abre el editor. No hay roadmap de producto ni promesas de empleo: hay retos, código comentado y gente que discute por qué un bucle for rinde distinto según cómo ordenes los ejes del array.

Retos semanales por dificultad

Cada lunes se publica un enunciado con nivel marcado: iniciación, intermedio o sin red. Los de iniciación se resuelven en una tarde con JavaScript o Python; los avanzados piden shaders, WebGL o procesado de audio y suelen ocupar el fin de semana.

Fragmentos comentados, no snippets sueltos

Publicamos el código con las decisiones explicadas: por qué se usa una función hash de tres pasos en lugar de una textura precalculada, por qué el heap parcial gana a quickselect solo a partir de cierto k. También los errores frecuentes al portar GLSL a WebGL2.

Galería de resultados de la comunidad

Cada reto cierra con una galería donde conviven enfoques muy distintos: quien resuelve con canvas 2D y quien lo hace con un fragment shader. Se ven los tiempos de ejecución medidos y las capturas de perfilado, no solo el resultado bonito.

Hilos de revisión de código

Antes de publicar tu solución puedes abrir un hilo y pedir revisión. La norma es comentar el cómo y el por qué, no reescribir el código de otro. Sirve igual para una kata de algoritmos que para una demo de audio reactivo con AnalyserNode.

Recursos para empezar con criterio

Rutas de entrada para JavaScript, Python y Processing, con ejercicios cortos y lecturas que no asumen experiencia previa en gráficos. Si vienes de backend y nunca tocaste un canvas, aquí hay por dónde arrancar sin perder el hilo.

Herramientas pequeñas y en abierto

Utilidades de línea de comandos que salen de los propios retos: generadores de paletas, conversores de formatos de audio, scripts para medir tiempos de ejecución en Node. Todo con licencia abierta y sin dependencias innecesarias.

Si quieres ver cómo se aplica todo esto en un caso concreto, el desglose del shader de ruido Perlin en el primer post del blog es un buen punto de partida. Para dudas sobre cómo participar o proponer un reto, escríbenos desde la página de contacto.

Aclaraciones antes de participar

Qué cuenta como solución y qué no

Si vienes de un entorno donde todo se mide por entregables cerrados, aquí conviene ajustar la expectativa. Estas son las reglas que aplicamos cuando revisamos envíos, cuando decidimos qué publicamos en la galería y cuando alguien pregunta por qué su propuesta quedó fuera del hilo semanal.

Código propio, aunque sea feo

Aceptamos fragmentos incompletos, funciones sin refactorizar y nombres de variable mejorables. Lo que no aceptamos es pegar bloques generados sin entenderlos. Si no puedes explicar por qué tu bucle termina, no es una solución: es una captura de pantalla.

Lenguaje libre, dependencias acotadas

JavaScript, Python y Processing son la base, pero no cerramos la puerta a Rust, Lua o GLSL puro. Lo que sí pedimos es declarar las librerías externas al inicio del envío. Un shader con three.js encima no compite igual que uno escrito a mano, y queremos saberlo antes de comparar.

Los tiempos se miden, no se estiman

Cuando un reto pide rendimiento, adjunta el entorno: navegador, versión de Node, hardware aproximado. Un "va rápido en mi máquina" no sirve para comparar enfoques. Preferimos un número incómodo con contexto que una cifra redonda sin respaldo.

La revisión no es un juicio

Los hilos de revisión señalan decisiones, no personas. Si alguien reescribe tu función con otra estructura, no significa que la tuya esté mal: significa que hay más de un camino. Puedes defender tu enfoque o cambiarlo, pero no borramos comentarios técnicos por incomodidad.

Plazos flexibles, publicación no

Los retos semanales tienen fecha orientativa, pero aceptamos envíos tardíos si el trabajo lo justifica. Lo que no hacemos es publicar una solución sin revisión previa. Si envías algo a medias, te lo decimos y esperamos; si envías algo cerrado, entra en el siguiente ciclo.

Sin métricas de vanidad

No puntuamos por estrellas, likes ni seguidores. La galería ordena por fecha y por dificultad declarada, no por popularidad. Si tu objetivo es acumular visibilidad rápida, este colectivo probablemente no sea el sitio. Si tu objetivo es entender mejor lo que escribes, sí.

Estas condiciones se aplican a retos, katas, demos de audio reactivo y herramientas de línea de comandos por igual. Si algo no encaja en ninguna categoría, escríbenos antes de enviarlo y lo hablamos sin compromiso.

Lo que te llevas si programas por gusto y no por encargo

Esta página es para quien ya tiene un trabajo, un proyecto o una carrera que no siempre deja espacio para experimentar. Aquí no hay que justificar por qué dedicas un sábado a un shader que no va a producción.

Retos semanales con dificultad declarada

Cada reto viene etiquetado por nivel y por tiempo estimado. Sabes de antemano si es una tarde de katas o un fin de semana entero peleándote con un fragment shader.

Fragmentos comentados, no repositorios mudos

Publicamos el código con las decisiones explicadas: por qué un hash de tres pasos en vez de una textura, por qué quickselect en vez de ordenar todo. Los errores frecuentes también van documentados.

Hilos de revisión entre iguales

Subes tu solución, alguien la lee y comenta. Sin jerarquías ni pull requests corporativos: se discute el enfoque, no el estilo de indentación.

Galería de resultados reales

Canvas, shaders, demos de audio reactivo y herramientas de línea de comandos que la gente ha terminado y compartido. Sirve para ver hasta dónde llega cada reto antes de empezarlo.

Punto de entrada para JavaScript, Python o Processing

Si vienes de otro lenguaje o llevas años sin tocar gráficos, hay rutas de recursos ordenadas por lenguaje y por objetivo. No hace falta saber GLSL para empezar.

Comparar enfoques con otros desarrolladores

Un mismo kata resuelto con heap parcial, con quickselect o con una solución que nadie esperaba. Ver las alternativas es la parte que más se aprovecha.

Si quieres ver cómo se documenta un reto antes de unirte, en el desglose del shader de ruido Perlin tienes el proceso completo. Y si prefieres empezar por una kata más corta, la comparativa de quickselect y heap parcial es un buen punto de entrada.

Configuracion de cookies

Usamos cookies para mantener el sitio estable, recordar opciones basicas y entender que paginas resultan utiles. Puedes aceptar, rechazar o revisar la configuracion antes de continuar.