snippets herramientas bug game retos personajes confesiones github
encontramos lo que otros ignoran

código,
bugs
y humor.

Scripts, herramientas, retos y confesiones para los devs que sobreviven a producción todos los días. Sin filtros.

bavs-dev ~ bugfalso LIVE
repos
confes.
bugs
live
tip: valida siempre los inputs antes de confiar en el usuario confesión: alguien hizo deploy en viernes a las 6pm. Otra vez. reto nuevo: optimiza una query con 200k registros sin índice bug clásico: off-by-one en el loop de producción — 2 años sin detectar snippet: Singleton pattern para conexión SQL en Java tip: valida siempre los inputs antes de confiar en el usuario confesión: alguien hizo deploy en viernes a las 6pm. Otra vez. reto nuevo: optimiza una query con 200k registros sin índice bug clásico: off-by-one en el loop de producción — 2 años sin detectar snippet: Singleton pattern para conexión SQL en Java
snippets & scripts

código que funciona.

Java

Conexión SQL reutilizable — Singleton

Patrón Singleton para una sola conexión a BD. Evita abrir conexiones innecesarias en producción.

public class DBConnection {
  private static Connection conn = null;
  // URL de tu base de datos
  private static final String URL =
    "jdbc:mysql://localhost/mydb";

  public static Connection getConn()
    throws SQLException {
    if (conn == null)
      conn = DriverManager.getConnection(URL);
    return conn;
  }
}
Kotlin / Android

RecyclerView Adapter limpio

Adapter correcto con patrón ViewHolder. El snippet más descargado del canal.

class MyAdapter(
  private val items: List<Item>
) : RecyclerView.Adapter<MyAdapter.VH>() {

  inner class VH(view: View) :
    RecyclerView.ViewHolder(view)

  override fun onCreateViewHolder(
    parent: ViewGroup, type: Int
  ) = VH(inflate(R.layout.item, parent))
SQL

Paginación eficiente — cursor-based

LIMIT + OFFSET se destruye en millones de filas. Cursor-based es O(log n) con índice.

-- ✗ MAL: lento en tablas grandes
SELECT * FROM users
  LIMIT 20 OFFSET 50000;

-- ✓ BIEN: cursor-based, siempre rápido
SELECT * FROM users
  WHERE id > :last_id
  ORDER BY id LIMIT 20;
Java 11+

Leer archivo completo en una línea

No más BufferedReader con 10 líneas. Java 11 lo resuelve limpiamente.

// Archivo completo como String
String txt = Files.readString(
  Path.of("archivo.txt")
);

// Como lista de líneas
List<String> lines = Files.readAllLines(
  Path.of("archivo.txt"),
  StandardCharsets.UTF_8
);
mini herramientas web

corre en tu navegador.

Generador de contraseñas

Passwords seguros con longitud y caracteres personalizados. 100% local.

Formateador de JSON

Pega tu JSON roto, lo formateamos y validamos errores al instante.

Conversor UNIX timestamp

Timestamps a fechas legibles. Zona horaria CDMX y contador en vivo.

Encode / Decode Base64

Convierte texto a Base64 y de vuelta. Para tokens, headers y auth.

herramienta
¿encuentras el bug?

cada día un reto nuevo.

Reto #47 — SumaArray.java — nivel medio
01:30
1public int sumar(int[] nums) {
2  int total = 0;
3  for (int i = 0; i <= nums.length; i++) {
4    total += nums[i];
5  }
6  return total;
7}

// ¿en qué línea está el bug y por qué falla en runtime?

reto anterior: 78% lo encontraron
ejercicios & retos

practica con código real.

FizzBuzz en SQL purofácil

El clásico, pero en una sola query. Más difícil de lo que parece sin IF en SELECT.

SQL
Optimiza esta query lentamedio

Un SELECT que tarda 4 segundos en 100k registros. Arréglalo sin cambiar los datos.

SQL
CRUD en Java sin frameworksdifícil

Sin Spring, sin JPA, sin nada. Java puro y JDBC. Diseña la arquitectura completa.

Java
Palíndromo recursivofácil

Detecta si un string es palíndromo usando recursión. Sin reverseString() permitido.

Java
App Android offline-firstmedio

Crea una app que funcione sin internet y sincronice cuando vuelva la conexión.

Android
Deadlock en SQLdifícil

Dos transacciones bloqueadas mutuamente. Detéctalo y resuélvelo sin matar procesos.

SQL
los personajes

¿a cuál conoces?

El Dev Senior
10+ años de bugs
"Eso ya lo hice en 2009 pero mejor y sin librerías externas."
El QA
enemigo público nº1
"Funciona en tu máquina? Raro. En la mía falla absolutamente todo."
El PM
ideas sin límite
"¿Y si quitamos la base de datos? ¿Eso haría la app más rápida?"
El Cliente
visión ilimitada
"Es sencillo, solo cambia el color... y todo lo demás también."
confesiones anónimas

todos lo hemos hecho.

cargando confesiones...
proyectos en github

código abierto.

cargando repositorios de github.com/bavs-dev...
ver todos en github
Open Source
Todos los snippets y proyectos disponibles en GitHub. Forkea, mejora y contribuye sin pedir permiso.
100% Anónimo
Las confesiones se guardan sin ningún dato personal. Solo tu texto y cuántos devs se identifican con él.
Herramientas en vivo
Todas las herramientas corren en tu navegador. Sin servidores, sin cuentas, sin instalar nada.