Inicio Software 11 líneas de código fuera de NPM que rompieron Internet

11 líneas de código fuera de NPM que rompieron Internet

45
6

Yo se que muchos developers han migrado a “lo más nuevo”, lo hacen siempre, desde que empecé a programar hace como 25 años los programadores van de acá para allá eligiendo distintos frameworks y lenguajes.

Node.js es uno de esos que, a mi entender, subió como una burbuja no por ser mejor que otros, por ser una moda y porque unificó dos ambientes, el frontend y el backend, en un mismo lenguaje, Javascript.

En Node muchas cosas se instalan con NPM, más bien, todo pasa por NPM y esta extrema dependencia hacia un repositorio único nunca me gustó. Okey, soy de la vieja escuela, me gusta tener a mano todo el código que estoy usando y no que cada vez que quiero compilar o ejecutar algo tarde media hora descargando dependencias.

Pero una vez tenía que suceder, once línea de código mataron millones de proyectos en un instante.

Azer Koculu un developer que tiene más de 250 módulos publicados en NPM recibió un estúpido reclamo de copyright por el nombre de uno de los módulos, kik, por parte de unos abogados que representan a un sistema de mensajería llamado igual. Azer rechazó el reclamo y los abogados fueron contra NPM.

Éstos cambiaron el owner del módulo por su cuenta y Koculu se ofendió, con total razón, al punto que bajó todos sus módulos (es su derecho siendo el autor) pero en el camino estaba el módulo left-pad que usan miles de sistemas basados en NPM.

Todo se quebró al instante, no se podía cumplir con la dependencia, ya no estaba en el repositorio!

module.exports = leftpad;

function leftpad (str, len, ch) {
  str = String(str);

  var i = -1;

  if (!ch && ch !== 0) ch = ' ';

  len = len - str.length;

  while (++i < len) {
    str = ch + str;
  }

  return str;
}

La responsabilidad reside completamente del lado de NPM y el mal manejo de la situación, conceder la capitulación ante unos abogados sin siquiera haber defendido un argumento (el nombre solo no es suficiente como para un reclamo de copyright si ni siquiera coincide para qué se está usando), el mismo Koculu dijo:


This situation made me realize that NPM is someone’s private land where corporate is more powerful than the people, and I do open source because, Power To The People.

El aprendizaje obvio es que queda en claro lo dependiente que era toda la estructura hacia un sólo punto, un sólo nodo (juego de palabras fácil), el cual puede ejercer un poder desmedido sobre tu propio software aun cuando ni siquiera tengan una ganancia ante ello.

Estamos hablando de software libre controlado por una sola entidad, no funciona, es igual que cualquier concentrador, poder concentrado es igual a software condicionado.

Ya leí a varios sugiriendo mantener sus propios npm para evitar estas caídas, pero, es esa la solución?


This is not a knee-jerk action. I love open source and believe that open source community will eventually create a truly free alternative for NPM.

Según la gente de Kik ellos no habían pedido volar nada, simplemente que cambie el nombre del módulo porque querían subir el propio. Pero en el interín se cargaron a media Internet.

Hasta la gente de Kik se dio cuenta de que había un problema cuando sus propios proyectos empezaron a fallar por la falta de left-pad.

Muchos podrán acusar a Azer de ser un pendejo cabeza dura y cabrón, puede ser, pero es el autor de esos 250 módulos y como tal tiene derecho a hacer con ellos lo que quiera, también la comunidad a reemplazarlos y dejar de necesitar de él, pero el punto es otro, la infraestructura de todo un framework sobre el que miles de sitios y software de todo tipo se basa está parándose en pies de barro y quedó en evidencia.

Via The Register

6 COMENTARIOS

  1. Lo fantástico de JavaScript es que está en todos lados, en todos los browsers, hasta en los servidores.
    Lo tenebroso de JavaScript es que está en todos lados, en todos los browsers, hasta en los servidores. :chock:

  2. gorlok dijo:
    [quote]Toda una infraestructura parada en pies de barro. Sip. Y estoy absolutamente de acuerdo en todo.
    PD: vengan de a uno. :D[/quote]
    Yo también estoy de acuerdo. Me estoy riendo al recordar el consultor que nos sugirió pasar todo a Node y le dijimos que no. 😀

  3. Danbat dijo:
    [quote]gorlok dijo:
    [quote]Toda una infraestructura parada en pies de barro. Sip. Y estoy absolutamente de acuerdo en todo.
    PD: vengan de a uno. :D[/quote]
    Yo también estoy de acuerdo. Me estoy riendo al recordar el consultor que nos sugirió pasar todo a Node y le dijimos que no. :D[/quote]

    parecemos viejos conservadores, pero decime qué server PHP/Java/C#/Python o lo que fuere cayó porque un pendejo se ofendió en un repo lejano

    todo lo que depende de un framework que se importa al momento de ejecutar está jodido, hasta yo me bajo los jquery.js en vez de correrlos desde la cdn de ellos, prefiero que esté acá y no allá, ya me reventaron sitios por cometer ese error

  4. Fabio Baccaglioni dijo:
    [quote]Danbat dijo:
    [quote]gorlok dijo:
    [quote]Toda una infraestructura parada en pies de barro. Sip. Y estoy absolutamente de acuerdo en todo.
    PD: vengan de a uno. :D[/quote]
    Yo también estoy de acuerdo. Me estoy riendo al recordar el consultor que nos sugirió pasar todo a Node y le dijimos que no. :D[/quote]

    parecemos viejos conservadores, pero decime qué server PHP/Java/C#/Python o lo que fuere cayó porque un pendejo se ofendió en un repo lejano

    todo lo que depende de un framework que se importa al momento de ejecutar está jodido, hasta yo me bajo los jquery.js en vez de correrlos desde la cdn de ellos, prefiero que esté acá y no allá, ya me reventaron sitios por cometer ese error[/quote]

    Y no es solo una cuestión de disponibilidad, sino también de seguridad. Por más que el CDN sea de Google o quien sea… ¿y si les inyectan algo? Si vulneran tu sitio/server, fuiste, pero que te caguen tan infantilmente por usar el CDN gratarola de otro… qué se yo. 🙁
    Y cuando el usuario está detrás de un proxy laboral (y pasa mucho) donde los pelotudos que gestionan el proxy bloquearon direcciones a lo bestia… me ha pasado que bloquearon los CDN de Google (bien de idiotas, por querer bloquear gmail u otra cosa) y era impresionante la cantidad de sitios que fallaban (sitios supuestamente importantes… y son los peores), porque ni siquiera pusieron una p*ta linea de JS para que se carguen desde su server local como medida de contingencia mínima. En fin… :rolleyes:

  5. Fabio Baccaglioni dijo:
    [quote]Danbat dijo:
    [quote]gorlok dijo:
    [quote]Toda una infraestructura parada en pies de barro. Sip. Y estoy absolutamente de acuerdo en todo.
    PD: vengan de a uno. :D[/quote]
    Yo también estoy de acuerdo. Me estoy riendo al recordar el consultor que nos sugirió pasar todo a Node y le dijimos que no. :D[/quote]

    parecemos viejos conservadores, pero decime qué server PHP/Java/C#/Python o lo que fuere cayó porque un pendejo se ofendió en un repo lejano

    todo lo que depende de un framework que se importa al momento de ejecutar está jodido, hasta yo me bajo los jquery.js en vez de correrlos desde la cdn de ellos, prefiero que esté acá y no allá, ya me reventaron sitios por cometer ese error[/quote]

    Si vamos al caso con Maven (o gradle o sbt o lo que fuere) tambien te pueden dar de baja una dependencia en los repositorios y a menos que tuvieras una copia local te jodes. En serio te bajas todas las dependencias a mano (resolviendo cuales dependen de cuales y en que version)? ¯\_(ツ)_/¯

DEJA UNA RESPUESTA

Por favor ingrese su comentario!
Por favor ingrese su nombre aquí