LINUX.ORG.RU
ФорумTalks

О тяжелой жизни жаваскриптеров

 ,


7

0

Великолепная драма развернулась сегодня вокруг npm и его публичного репозитория.

Один разработчик держал на npm гору своих модулей, один из которых по случаю назывался так же как и какой-то никому не нужный instant messenger: kek kik. Юристы компании, владеющей этим IM, потребовали убрать модуль, а после того как автор отказался, нажаловались администрации NPM. Те струхнули и убрали модуль сами.

Автор обиделся и удалил в отместку все остальные свои пакеты, среди которых затесался 10-строчный скриптик для добавления к строке слева нулей или пробелов. От этого скриптика, как оказалось, зависят тысячи проектов, включая node и babel. И так как npm любит ходить в интернет, тысячи проектов немедленно сломались.

Админы npm испугались еще раз и вручную удаленный модуль восстановили, опять же не советуясь с автором. А освобожденные имена от других пакетов оказались заняты подозрительными лицами (неймспейсов нет, имена раздаются по принципу first come-first serve)

Мне кажется, это прекрасно.

★★★★★

Последнее исправление: Midael (всего исправлений: 2)
Ответ на: комментарий от Deleted

С npm тебе тоже никто не мешает поднять локальный registry. Некоторые так и делают.
Правда что с apt-get, что с npm тебе так или иначе придется зеркалировать официальные репозитории. Так что от ситуации из топика репозиторий на тостере тебя не спасет.

unikoid ★★★
()
Ответ на: комментарий от vostrik

return toString.call(arr) == '[object Array]';

А я еще надеялся, что жабоскриптомакак можно вылечить... Да тут даже эвтаназепам не поможет - проще сразу в печь.

Не, я уважаю модульность. Но, блин, всему надо знать меру!

Pinkbyte ★★★★★
()
Ответ на: комментарий от Deleted

Нюанс аптгета в том, что репозиторий может быть у меня на тостере

а вот npm?

Manhunt коварно втянул меня в оффтопик о cargo, репы которого можно зеркалить. Впрочем, репы npm тоже.

tailgunner ★★★★★
()

даже не юристы компании, владеющей этим IM, вежливо попросили убрать модуль

исправил, не благодари.

В ответ были грубо посланы.

Потом полюбовно всё решили с npm. А автор обиделся и решил сделать плохо всем. И модуль его - говнокод жуткий, хотя и 11 строк. Как впрочем и весь npm.

suuaq
()
Ответ на: комментарий от Esteban_Garcia

Тут причем, что какие-то мудаки пытаются утвердить своё авторское право на сочетание трех символов стандартной латиницы, а другие мудаки им в этом потакают.

Где ж ты был, когда гном у групона сочетание пяти символов стандартной латиницы отбивал? Потакал небось?

suuaq
()
Ответ на: комментарий от Esteban_Garcia

Почему если юристы не научились разрешать конфликты имен, то это должно волновать программистов.

Юристы давно научились. Называется закон о товарных знаках, либо в зависимости от государства ещё как-то. Там и про словарные слова сказано, и кто чего может запретить.

А программистов это должно волновать, потому что если они договориться не сумеют, это будут делать юристы, но платно.

suuaq
()
Ответ на: комментарий от Vit

Серьезные компании (с) для этого имеют специального релиз-инженера, который сидит и этим занимается full time :)

Когда-то лет шесть назад начинал тестировщиком, именно этим и занимался, параллельно с написанием автотестов, креативом документации, сборкой инсталляторов, итп.

Да собственно и сейчас 50% разработки - это починка фреймворков. Спринг, Хибернейт и прочее разваливается даже если не менять их версию -)

stevejobs ★★★★☆
()
Ответ на: комментарий от Esteban_Garcia

Но тут вон ребята из npmjs решили что сами знают как правильно

Почему нет? Если очевидно, что это торговая марка, и что автор всё равно права на неё не получит, чего ждать? Автор бы своё поделие ещё майкрософтом обозвал.

Надо полагать, что между автором и npmjs был какой-то договор и автор с ним согласился. Если автор считает, что его права нарушены, он тоже может обратиться к юристам, это не привилегия корпораций.

suuaq
()
Ответ на: комментарий от Esteban_Garcia

Нафига им судиться, если торговая марка зарегистрирована открыто и честно? Всё соль ситуации в том, что это не у автора увели имя, а автор сам увёл имя чужого проекта. Чего тут ещё рассусоливать то?

suuaq
()
Ответ на: комментарий от arturpub

Автора почеловечески попросили, а он рогом уперся и сделал большую пакость. Да, его тоже можно понять, пакость нпмщики сделали и ему. Короче в этой истории самой невиновной выглядит компания, пилящая мессенджер.

drull ★☆☆☆
()
Ответ на: комментарий от Manhunt

Хотя я уже понял одну из проблем, ipns — это динамический контент, то есть автор может подменить зависимости (но автор, владелец приватного ключа, а не абы кто). Но в ipfs есть и статический контент. Жаль адреса не отличаются визуально.

Esteban_Garcia
()
Ответ на: комментарий от Esteban_Garcia

Ну то что у многих людей все медным тазом накрылось - таки пакость. И пакость более злая чем переименование проекта в репозитории.

drull ★☆☆☆
()
Ответ на: комментарий от drull

Не сейчас так потом. А так бы в тихую npm этим пользовался для внедрения своих троянов. Пакость — это скрывать проблему.

Esteban_Garcia
()
Ответ на: комментарий от suuaq

а кто первый создал продукт с таким именем? Как то тема совсем не раскрыта.

И вообще, если Вася создает товар с названием X, но не регистрирует торговую марку, а Петя создает свой товар с тем же названием, и регистрирует, это что получается, Вася должен переименовать теперь?

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от drull

Я не понимаю претензий к автору вместо регистри.

Vit ★★★★★
()

это как раз показательный пример, почему «резервную копию» всех депендов надо хранить у себя в репозитории. об этом был срач в треде про go. все кто доверяет свой продакшен сервисам наподобие npm — ссзб.

waker ★★★★★
()
Ответ на: комментарий от waker

Можно пометить зависимости как bundled, чтобы включились в опубликованный пакадж. Копии в репе неудобно.

Vit ★★★★★
()
Ответ на: комментарий от dexpl

Сегфолт? Если malloc() не может выделять память, то как в такой среде могут работать новые процессы вообще? Конечно, можно добавлять проверки на каждую возможную проблему, чтобы красиво об этом уведомлять юзера, но... Это не совсем Unixway. Если «нет проблем - нет и причин чтобы засорять информационное пространство юзера», то и «если проблема не в самой программе, то она и не обязана подробнейшим образом дебажить систему, и одного краткого системного сообщения о сегфолте более чем достаточно».

saahriktu ★★★★★
()
Последнее исправление: saahriktu (всего исправлений: 1)
Ответ на: комментарий от Vit

Никто не мешает выпусить обновление с разломанным кодом.

Так ответственность за это будет на авторе уже, а не на репозитории.

Далеко не все намертво фиксируют зависимости.

Вот и научатся.

Wizard_ ★★★★★
()
Ответ на: комментарий от Wizard_

Так ответственность за это будет на авторе уже, а не на репозитории.

Результат-то одинаковый :)

Вот и научатся.

Это имеет смысл только для деплоя, и то под вопросом. Если прибить версии гвоздями, пролетаем с багфиксами.

Vit ★★★★★
()
Ответ на: комментарий от bl

я считаю что тысячи постадавших должны судиться с кик

Ога. Добить его окончательно и всем станет хорошо.

ashot ★★★★
()

Обидеть программиста может каждый, а вот предвидеть последствия ...

ashot ★★★★
()
Ответ на: комментарий от cvs-255

Емнип зависит от законов страны но в общем есть «право первой публикации», однако у нас например, оно было (лет эдак 10 назад) завязано на печатные издания

Deleted
()
Ответ на: комментарий от Vit

Можно пометить зависимости как bundled, чтобы включились в опубликованный пакадж. Копии в репе неудобно.

что такое «опубликованный пакадж»?

копии в репе нормально. неудобства случаются, но редко (далеко не в каждом проекте).

waker ★★★★★
()
Последнее исправление: waker (всего исправлений: 1)
Ответ на: комментарий от Esteban_Garcia

Если ты начнёшь производить бульдозеры под маркой Kik, то тебе претензий предъявить не смогут, так как вероятность что пользователь что-то спутает и вместо мессенджера Kik купит бульдозер равна нулю.

suuaq
()
Ответ на: комментарий от Vit

Напиши программу с названием ворд, потом расскажешь об успехах.

suuaq
()
Ответ на: комментарий от entefeed

И откуда то они денег на юристов то взяли?
Не было ли тут спонсорской деятельности конкурентов яваскрипта?

torvn77 ★★★★★
()
Ответ на: комментарий от cvs-255

Да, получается так, и это так есть безобразие.

torvn77 ★★★★★
()
Ответ на: комментарий от waker

что такое «опубликованный пакадж»?

Когда через npm публикуешь, можно сделать так чтобы node_modules в архив включились.

Vit ★★★★★
()
Ответ на: комментарий от Vit

хм.. по-моему я вообще не в теме. мне даже в голову не приходило что-то публиковать куда-то, и уж тем более через npm. ты ведь не о deploy щас говоришь?

waker ★★★★★
()
Ответ на: комментарий от waker

Речь именно о публичных пакетах, которые потом юзаются другими. Можешь посмотреть, сам npm тащит за собой встроенные модули, вместо того чтобы скачивать.

Для деплоя можно зафризить зависимости через shrinkwrap https://docs.npmjs.com/cli/shrinkwrap. Правда, от делистинга не спасет.

Vit ★★★★★
()
Ответ на: комментарий от Vit

угу, а я как раз о деплое говорил.. я не занимаюсь публикацией пакаджей.

waker ★★★★★
()
Ответ на: комментарий от dexpl

Вот что происходит с кодом после устранения наследия прошлого:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int main(int argc, char **argv)
{
        if (argc < 4) {
                printf("usage: leftpad string length char\n");
                return 1;
        }
        long i, al = atol(argv[2]);
        if (al < 0)
                al = 0;
        char *buf = (char *)malloc((al + 1 + strlen(argv[1])) * (sizeof(char)));
        if (buf == NULL)
                return 1;
        for (i = 0; i < al; i++)
                buf[i] = argv[3][0];
        printf("%s\n", strcat(buf, argv[1]));
        free(buf);
        return 0;
}

saahriktu ★★★★★
()
1 ноября 2017 г.
Ответ на: комментарий от Manhunt

требование обязательной доступности сети вызывает неприятие не только у меня

«Когда ты объясняла, за что любишь Интернет, ты сказала, что с ним теперь никто не одинок. [...] Хочешь инсценировать Бостонское чаепитие в костюмах имперских штурмовиков? Ты найдешь еще десять человек, которые об этом мечтают» (ц)

Для протокола: обеими руками за offline mode. Правда, зеркало она не заменяет, а вот зеркало ее - вполне.

tailgunner ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.