Модульный маразм
От: Vladek Россия Github
Дата: 24.03.16 05:24
Оценка: 27 (12) +1 :))) :))) :))) :))) :))) :))) :)
В двух словах: Контора, работающая над мессенджером kik, решила опубликовать в NPM свой модуль, однако там уже существовал модуль с таким именем и они решили попросить его автора переименовать свой модуль. Автор отказался это сделать и после небольшой переписки, контора обратилась напрямую к NPM с целью получить права над этим именем — NPM это сделал. Автор оригинального модуля kik в отместку удалил из NPM все свои модули.

Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik.

Пост от автора оригинального модуля: https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.mz8576dnq
Пост от главы kik, когда на уши было поставлено всё сообщество NPM: https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d#.kbmohmeiq

Обсуждение в reddit: https://www.reddit.com/r/programming/comments/4bjss2/an_11_line_npm_package_called_leftpad_with_only/

Крайне рекомендую обратить внимание на эту ветку (для лулзов) о модульных зависимостях в JS и содержании этих самых модулей: https://www.reddit.com/r/programming/comments/4bjss2/an_11_line_npm_package_called_leftpad_with_only/d19vysi
Re: Модульный маразм
От: _ABC_  
Дата: 24.03.16 05:50
Оценка: +1 :))
Здравствуйте, Vladek, Вы писали:

V>Крайне рекомендую обратить внимание на эту ветку (для лулзов) о модульных зависимостях в JS и содержании этих самых модулей: https://www.reddit.com/r/programming/comments/4bjss2/an_11_line_npm_package_called_leftpad_with_only/d19vysi


is-positive@3.1.0
What in God's name did versions 1, 2, and 3.0 do?


Дальнейшие описания того, что делали эти версии доставляет еще больше.
Re: Модульный маразм
От: CreatorCray  
Дата: 24.03.16 07:58
Оценка:
Здравствуйте, Vladek, Вы писали:

V>Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik.


Говнофункция left-pad — аж целый модуль, с тоннами зависимостей?
Какой же лютый пц у них там творится.

V>Пост от автора оригинального модуля: https://medium.com/@azerbike/i-ve-just-liberated-my-modules-9045c06be67c#.mz8576dnq

Пафос, много пафоса! Power to the People, yay! La Revolucion, анархия и полный легалайз!

V>Пост от главы kik, когда на уши было поставлено всё сообщество NPM: https://medium.com/@mproberts/a-discussion-about-the-breaking-of-the-internet-3d4d2a83aa4d#.kbmohmeiq

А пламенный борец за свободы таки оказался реальным dick.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: Модульный маразм
От: Sinix  
Дата: 24.03.16 08:33
Оценка: +1 :))) :))) :))) :))
Здравствуйте, _ABC_, Вы писали:

_AB>Дальнейшие описания того, что делали эти версии доставляет еще больше.


Всё-таки JS уникальный язык. По-моему нет ни одного косяка в мире IT, который он бы ещё не позаимствовал.

* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers

, ага.
Re: Модульный маразм
От: Michael7 Россия  
Дата: 24.03.16 09:20
Оценка: +12
Здравствуйте, Vladek, Вы писали:

V>В двух словах: Контора, работающая над мессенджером kik, решила опубликовать в NPM свой модуль, однако там уже существовал модуль с таким именем и они решили попросить его автора переименовать свой модуль. Автор отказался это сделать и после небольшой переписки, контора обратилась напрямую к NPM с целью получить права над этим именем — NPM это сделал. Автор оригинального модуля kik в отместку удалил из NPM все свои модули.


Там все прекрасно.

И юридический маразм, когда действие товарного знака распространяют на все что попало и под это прогибаются. По сути претензии kik примерно так же выглядят как претензии к названиям папок на компьютере в проекте. И наплевательство на права автора модулей. И наплевательство автора модуля в ответ. И сама функция из 11 строк. И то, что ее включили в зависимости в овердохрена других библиотечных. И особо доставляющий архитектурный маразм, когда зависимости при сборке берутся онлайн и это не баг, а так и задумано. Странно только, что подобного факапа после отзыва или правки модуля (этого или другого) еще ранее не случалось.
Re[2]: Модульный маразм
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 24.03.16 09:33
Оценка: +2
Здравствуйте, CreatorCray, Вы писали:

V>>Среди них был модуль в 11 строк кода left-pad (выравнивание строк!), который использовался многими другими популярными проектами. Это и сломало кучу других модулей в NPM, в результате чего у многих веб-разработчиков перестали строиться билды, в том числе и в конторе kik.

CC>Говнофункция left-pad — аж целый модуль, с тоннами зависимостей?

Оформление любой зависимости как модуль — это не проблема. Вот зачем она была им всем нужна в таком виде — интересненько и показывает... мнэээ... особенности JS.

CC>А пламенный борец за свободы таки оказался реальным dick.


По-моему, оба хороши.
The God is real, unless declared integer.
Re[2]: Модульный маразм
От: Sinix  
Дата: 24.03.16 09:40
Оценка: +2 :)))
Здравствуйте, Michael7, Вы писали:

M>Там все прекрасно.



Вишенку на торте пропустили, как эту проблему будут лечить:

We will make it harder to un-publish a version of a package if doing so would break other packages.


Там весь пост великолепен, после фразы

So far, this followed a process that is routine, though rare. What happened next, though, was unprecedented.

восхохотамше под лавкою.

До народа походу не дошло, что реакция на "мы по собственной инициативе вырубили несколько тысяч пакетов на пару часов" немножко не такой должна быть.
Конкурс на фейл года можно завершать досрочно.

UPD. Хотя не, конкуренты не дремлют. Тысяча глаз™.
Re: Напомнило
От: vit0s Австрия  
Дата: 24.03.16 15:44
Оценка:
Никому не верь — и никто не обманет!
Re[3]: Модульный маразм
От: Dair Россия https://dair.spb.ru
Дата: 24.03.16 16:05
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers


Холмс, но как?
Re[4]: Модульный маразм
От: Sinix  
Дата: 24.03.16 16:25
Оценка:
Здравствуйте, Dair, Вы писали:


S>>* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers


D>Холмс, но как?

Юмор это, почитайте табличку версий по ссылке.
Но главная хохма в том, что они таки не шутили:

In 3.0.0, non-number inputs are treated as not positive (instead of as invalid).

Re: Модульный маразм
От: Vladek Россия Github
Дата: 24.03.16 16:29
Оценка: :)
Здравствуйте, Vladek, Вы писали:

V>Автор оригинального модуля kik в отместку удалил из NPM все свои модули.


Сообщество, обеспокоенное потерей столь ценного программного обеспечения, создало замечательный сервис: http://left-pad.io/

Выравнивайте строки без опаски! Теперь это стало как никогда просто:

$ curl 'https://api.left-pad.io/?str=paddin%27%20oswalt&len=68&ch=@'
{"str":"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@paddin' oswalt"}
Re[2]: Модульный маразм
От: maxkar  
Дата: 24.03.16 16:58
Оценка: 3 (1)
V>Теперь это стало как никогда просто:

Да уж. Хороший показатель того, на сколько все хорошо в JS Community

В простейшем случае:
https://api.left-pad.io/?str=v&len=3&ch=aaaa
{"str":"aaaaaaaav"}

Это мне было интересно, что именно значит len (в контексте supplementary characters).

В более сложном случае:
https://api.left-pad.io/?str=v&len=3&ch=%22
{"message": "Could not parse request body into json: Unexpected character (\'\"\' (code 34)): was expecting comma to separate OBJECT entries\n at [Source: [B@6f652c55; line: 4, column: 14]"}


А еще более интересно оказалось:
https://api.left-pad.io/?str=v&len=3&ch={

Пустой ответ. Чем { отличается от " и почему такая обработка ошибок — даже и не представляю.
Re[3]: Модульный маразм
От: B0FEE664  
Дата: 24.03.16 17:39
Оценка: :)
Здравствуйте, maxkar, Вы писали:

M>Да уж. Хороший показатель того, на сколько все хорошо в JS Community

M>В простейшем случае:
M>
M>https://api.left-pad.io/?str=v&len=3&ch=aaaa
M>{"str":"aaaaaaaav"}
M>

M>Это мне было интересно, что именно значит len (в контексте supplementary characters).

Ограничение в 1024 легко обходится:
https://api.left-pad.io/?str=&amp;len=1024&amp;ch=asdfghjkl

И каждый день — без права на ошибку...
Re[3]: Модульный маразм
От: CreatorCray  
Дата: 24.03.16 18:14
Оценка:
Здравствуйте, netch80, Вы писали:

CC>>Говнофункция left-pad — аж целый модуль, с тоннами зависимостей?

N>Оформление любой зависимости как модуль — это не проблема.
Вот если честно: если мне надо будет сделать паддинг строки мне в жизни в голову не придёт искать в интернетах модуль, который это делает.

N>По-моему, оба хороши.

Да, но таки в сильно разной степени.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: Модульный маразм
От: DreamMaker  
Дата: 24.03.16 20:14
Оценка: +1
Здравствуйте, Sinix, Вы писали:


S>Вишенку на торте пропустили, как эту проблему будут лечить:


JS — это вообще какая-то вселенская Катастрофа.

хмм, так что, если автор мегакрутого модуля в 11 строк вместо unpublish сделает апдейт на 110 строк, который не только будет делать то, что делать должен, но и бэкдор откроет — куча проектов это засосут и поимеются? гениальная конструкция.
In P=NP we trust.
Re[4]: Модульный маразм
От: DreamMaker  
Дата: 24.03.16 20:16
Оценка: :))) :))) :)
Здравствуйте, Dair, Вы писали:

S>>* Fixed a bug where JPEGs of small mammals were incorrectly detected as negative numbers


D>Холмс, но как?


как-как. все зависит как детектировались большие mammals. если как положительные числа, то в принципе не баг вовсе, а многофункциональная функция. вполне себе в духе JS.

P.S. по последним данным из МИДа Лавров произнес свою знаменитую фразу когда спеки по JS изучал.
In P=NP we trust.
Re[4]: Модульный маразм
От: Sinix  
Дата: 24.03.16 20:27
Оценка: 3 (1) +1 :)
Здравствуйте, DreamMaker, Вы писали:


DM>хмм, так что, если автор мегакрутого модуля в 11 строк вместо unpublish сделает апдейт на 110 строк, который не только будет делать то, что делать должен, но и бэкдор откроет — куча проектов это засосут и поимеются? гениальная конструкция.


Если я ничего не забыл и оно не поменялось, то от этого спасает не менее гениальное решение:
1. нельзя опубликовать новый код под старой версией
2. хардкод версий в dependencies.

Как этот dll hell разруливается? По топику в принципе можно догадаться, вот как-то так.

Я за этим цирком в основном наблюдаю со стороны, но судя по комментариям, баг возвращается аки кот за сметаной, иногда в особо впечатляющих масштабах.
Re: Модульный маразм
От: alzt  
Дата: 28.03.16 19:58
Оценка:
Здравствуйте, Vladek, Вы писали:

I’ve just unpublished all my modules.


А так можно делать?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.