The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Инцидент с захватом прав на NPM-модуль привёл к сбою в работе проектов, использующих NPM

24.03.2016 09:41

В сообществе разработчиков на языке JavaScript, использующих пакетный менеджер NPM, произошёл инцидент с необоснованным захватом прав на один из модулей, размещённых в репозитории NPM. В последующем, реакция автора захваченного модуля привела к нарушению работы ряда крупных проектов, в том числе Node и Babel.

Конфликт развернулся вокруг размещённого в репозитории NPM модуля kik, предоставляющего инструменты для быстрого создания новых проектов на языке JavaScript. С автором модуля связался юрист компании Kik Interactive Inc, развивающей программу для мгновенного обмена сообщениями Kik и потребовал удалить или переименовать модуль, так как его имя пересекается с зарегистрированной торговой маркой. Автор модуля (Azer Koçulu) отказался, так как имя модуля основано на термине "Kickstart", функциональность не имеет ничего общего с обменом сообщениями, а сервис Kik.com запущен уже после создания модуля kik.

После отказа юрист обратился к администраторам репозитория NPM, которые не стали вступать в конфликт и передали права на модуль компании Kik Interactive Inc, которая намерена заменить kik на одноимённый собственный модуль с реализацией API для доступа к её системе обмена сообщениями. Автор оригинального модуля потерял веру в открытость проекта NPM и, после продемонстрированного пренебрежения к нему, как к участнику проекта, удалил все свои разработки из NPM. Проблема в том, что Azer Koçulu является достаточно известным разработчиком, подготовившим 273 модуля для NPM. Так как многие модули используются в различных проектах, из-за потери зависимостей возможность сборки этих проектов при помощи NPM была блокирована.

Особенно существенные проблемы возникли из-за удаления модуля left-pad, который выполняет простейшую функцию добавления лидирующих пробелов для доведения строки до заданного размера и содержит всего 11 строк кода. В феврале было загружено около 2.5 млн копий left-pad, а среди зависимых от него разработок оказались тысячи проектов, в том числе Node, React и Babel. Неработоспособность многих крупных проектов подтолкнула администраторов NPM совершить второе злоупотребление - они восстановили left-pad в репозитории, вопреки решению автора модуля.

Удалением известных модулей также воспользовались предприимчивые деятели, которые разместили в NPM собственные подставные модули с именами, совпадающими с удалёнными модулями. Не исключено, что эти модули совершают скрытую вредоносную активность.

Итогами инцидента стали размышления о степени независимости NPM и необходимости создания действительно свободной альтернативы. Кроме того, привлечено внимание к порочности практики необдуманного использования модулей, в условия продемонстрированной простоты захвата контроля над разработкой и зависимости от решений автора модуля, который может удалить свой модуль и нарушить необходимую для сборки цепочку зависимостей. Вопросы также вызывает целесообразность использования простейших модулей, написание функциональности которых занимает несколько минут. Например, модуль isArray содержит всего одну строчку кода, но используется в 72 других пакетах и бешено популярен, например, только в течение февраля он загружен более 18 млн. раз.

  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Компания WhatsApp добилась блокирования 38 открытых проектов, размещённых на GitHub
  3. OpenNews: MPAA добилась блокировки на GitHub программы для просмотра видео через BitTorrent
Лицензия: CC-BY
Тип: Тема для размышления
Короткая ссылка: https://opennet.ru/44104-npm
Ключевые слова: npm
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (160) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 11:03, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Взять и отобрать.
     
  • 1.2, Йух (??), 11:04, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +25 +/
    Так и надо хипсторам.

    Развели, панимаешь, тут модно,стильно,молодежно...

     
     
  • 2.185, Аноним (-), 13:53, 27/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Пакетный менежер по обезьяньи. Кто следующий? Питон? Go? Ruby? Rust? Кто там еще местное подобие пакетного менеджера притаскивает?
     
     
  • 3.186, Аноним (-), 15:09, 27/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Пакетный менежер по обезьяньи. Кто следующий? Питон? Go? Ruby? Rust? Кто там
    > еще местное подобие пакетного менеджера притаскивает?

    И правда, лучше по старинке, ручками зависимости собирать.
    Или, на худой конец, велосипедным скриптом автора софтины.

     

  • 1.3, Нанобот (ok), 11:07, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +77 +/
    админы npm прогнулись под копираста и сломали всю инфраструктуру. сами виноваты.
     
     
  • 2.7, Аноним (-), 11:10, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Сломали уверенность в жепосрипте, теперь надо весь проект npm заменять на человеческую альтернативу без копирастических шавок в администрации и с подписями пакетов.
     
     
  • 3.22, RomanCh (ok), 12:00, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Кто ж его тогда оплачивать будет на регулярной основе?..

    PS А вообще JS в топку надо бы запихать целиком.

     
     
  • 4.162, Аноним (-), 10:02, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Кого оплачивать? Альтернативу npm? А кто npm оплачивает?
     
  • 2.35, Michael Shigorin (ok), 12:50, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > админы npm прогнулись

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

     
     
     
    Часть нити удалена модератором

  • 4.102, Например (?), 16:32, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    что нового? в 3-м рейхе людей убивали потому что "исполняли приказ". добро позаловать в реальный мир
     
     
  • 5.104, RomanCh (ok), 16:44, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да собственно ничего нового совершенно. Я лишь говорю уважаемым коллегам играющим в дартаньяна, что "тут дартаньянов немае, все в этом самом по самую маковку".
     

  • 1.4, Аноним (-), 11:08, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > привела к нарушению работы ряда крупных проектов, в том числе Node и Babel.

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

     
     
  • 2.77, nekrolik (?), 15:24, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Вот, теперь я понял почему в Enterprise не используют maven и все библиотеки не меняют версии годами, если в них нет критических уязвимостей.
     
     
  • 3.91, Аноним (-), 16:02, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +13 +/
    Если есть уязвимости тоже не меняют.
     
  • 3.115, freehck (ok), 17:07, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > в Enterprise не используют maven и все библиотеки не меняют версии годами

    Ах если бы. ;)

     
  • 3.141, Dzmitry (??), 21:07, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ага, только Maven вылез из IBM, который самый что ни на есть enterprise.
     
     
  • 4.159, Аноним (-), 09:34, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    И ещё имеет неплохие возможности настройки, в части версий и их обновлений, и не потрёт вам библиотеку если она вдруг пропала в репозитории :)
     
  • 3.154, Аноним (-), 00:15, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    У нас в ынтырпрайзе Gradle, с нами что-то не так? И да, чтоб девы не тянули левого г-на с инторнетов есть Nexus, Artifactory, etc.
     
  • 3.190, Вареник (?), 18:39, 03/04/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> Enterprise не используют maven

    Что за глупость. Более чем использует.

     

  • 1.5, Anonimka (?), 11:09, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +8 +/
    Хваленый JavaScript и его инфраструктура - не нужен, что мы и видим на этом примере.
     
  • 1.6, 1 (??), 11:10, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    "Из жизни хомячков"

    Особенно порадовала "зависимость от модуля в 11 строк"

     
     
  • 2.10, angra (ok), 11:19, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Это ты не дочитал про модуль из 1 строки с 18 млн загрузок.
     
     
  • 3.57, 1 (??), 14:43, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    ну может там строка из 65535 символов ?
     
     
  • 4.62, Аноним (-), 14:52, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > ну может там строка из 65535 символов ?

    [code]
    var toString = {}.toString;

    module.exports = Array.isArray || function (arr) {
      return toString.call(arr) == '[object Array]';
    };
    [/code]

     
  • 2.80, nekrolik (?), 15:27, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Проблема не в зависимости, а в источнике модуля.
     
     
  • 3.150, Иван (??), 23:55, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    В блокчейне держать нужно?
     

  • 1.8, anonymous (??), 11:15, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    А ведь Столлман предупреждал.
     
     
     
    Часть нити удалена модератором

  • 3.63, Aleks Revo (ok), 14:53, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Сорь, npmjs.com - это про бизнес. А бизнес всегда на стороне правообладателей.
    > Если GNU/Бомжи сами не в состоянии поддерживать свою инфраструктуру для распространения
    > пакетов, то кто им виноват?

    Автор пакета kik - не правообладатель?

     
     
  • 4.73, Аноним (-), 15:17, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Кто первым зарегистрировал трейдмарк и отвалил за это бабла с целью защитить свой бизнес - тот и правообладатель.
     
     
  • 5.78, Аноним (-), 15:24, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    > Кто первым зарегистрировал трейдмарк и отвалил за это бабла с целью защитить
    > свой бизнес - тот и правообладатель.

    Марка зарегистрирована в узкой области, которая не касается кикстарта проектов. Азер их правильно послал, и суд признал бы его правоту. Но NPM перепугались и сдались без сопротивления. Закон нарушили они.

     
  • 5.93, Michael Shigorin (ok), 16:09, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > и отвалил за это бабла с целью защитить свой бизнес

    Не смешите мои тапочки своей доверчивостью.

    PS: поскольку в халупах вряд ли лекции по "ИС" читают -- тот, кто проводил экспертизу проекта ТЗ, спорол лажу и, по-хорошему, должен бы за это быть наказан.  Другое дело, что с трёхбуквенными обозначениями хлопот при проверке по уму не оберёшься... ну так и не брался бы.

     
  • 5.107, Uri (??), 16:46, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Хрен там.

    В европе продаются женские трусики Microsoft. И как вы думаете, кто правообладатель, Microsoft?

    А вот и нет - области не пересекаются, поэтому MS идет лесом.

     
     
  • 6.114, Аноним (-), 17:05, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > В европе продаются женские трусики Microsoft. И как вы думаете, кто правообладатель,
    > Microsoft?

    А вот этот линукс ставят на/под стиральные машинки, да еще и обзывают "микро&cофтным":
    http://www.source-center.de/forum/attachment.php?s=bfa6e5a5d8be4c3d601d927529

     
  • 3.66, anonymous (??), 14:55, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Отчего тогда CPAN, PECL, RubyGems, PyPi коммерческими не стали?
     
     
  • 4.75, Аноним (-), 15:22, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Оттого, что проектами руководят некоммерческие организации? Опять же, кто вам виноват, что Joyent Inc. и прочие занимаются развитием проекта Node.js? Поднять и поддержать некоммерческую инфраструктуру кишка тонка?
     
     
  • 5.92, Michael Shigorin (ok), 16:08, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Оттого, что проектами руководят некоммерческие организации? Опять же, кто вам виноват,
    > что Joyent Inc. и прочие занимаются развитием проекта Node.js? Поднять и
    > поддержать некоммерческую инфраструктуру кишка тонка?

    Ну я поднимал и поддерживал.  И _такого_ мы ни разу за десять лет себе не позволяли.

    Вы всерьёз не понимаете, что защищать тут нечего, т.к. продолб примерно такого же плана, что у нас в альте не так давно с той самой лицензией был, только с гораздо более серьёзными _прямыми_ последствиями?  Или раз околоSun, надо набрасываться на амбразуру?

     
     
  • 6.101, Аноним (-), 16:30, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Я всерьез не понимаю, чего многие раскудахтались, что NPM плохой, если знали, что проект поддерживается коммерческой организацией. Раз организация коммерческая - следовательно, она будет преследовать свои интересы в первую очередь. Или наивные розовые слоники считали, что если в NPM можно хостить щвабодный код, то им до самой смерти жаваскрипта будут попки подтирать?
     
     
  • 7.105, Michael Shigorin (ok), 16:44, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Раз организация коммерческая - следовательно,
    > она будет преследовать свои интересы в первую очередь.

    Вы хоть раз вообще пытались эти самые интересы организации преследовать, не говорю уже балансировать?  Да что там -- хотя бы осознать и сформулировать, что организации хорошо, что плохо, а что -- смерти подобно?

     
  • 3.74, Аноним (-), 15:21, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Это модель бизнеса "наш клиент всегда виноват". GoDaddy этим славится. Большинство компаний при обвинениях третьей стороны хотя бы исходят из презумпции невиновности клиента.

    Имеет смысл завалить NPM претензиями на имена, якобы пересекающиеся с торговыми марками. И утопить эту ошарашенную контору пока они ещё больше вреда не принесли.

     
     
  • 4.160, Аноним (-), 09:43, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Это модель бизнеса "наш клиент всегда виноват". GoDaddy этим славится. Большинство компаний
    > при обвинениях третьей стороны хотя бы исходят из презумпции невиновности клиента.

    В святейшей демократии, что в северной америке, законы не позволяют мелким компаниям рисковать попасть под судебный наезд, до окончания суда большинство не доживёт, т.к. дорого, вот и выходит что ради хоть какой-то возможности заниматься своим делом они вынуждены выбирать ту или иную линию поведения в таких случаях. По сути дилема тут в основном - быть под юрисдикцией святейшей демократии и надеяться что тебя не затронут такие претензии, быть готовым к долгим судам и тяжбам ( иметь штат юристов и деньги ) либо менять юрисдикцию.

     
     
  • 5.166, Аноним (-), 13:36, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Red Hat в 2000 году были большой компанией, или мелкой? Они уже тогда обеспечивали защиту клиентов от наездов потенциальных правообладателей.
     
  • 2.56, anonimous (?), 14:42, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Ага, и Нострадамус предсказал.
     

  • 1.9, Аноним (-), 11:15, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Всегдя удивляло: обычный проект на node.js тянет в зависимости 50-70 разных пакетов. Это ж охренеть! Когда за ними всеми следить?
     
     
  • 2.12, Аноним (-), 11:21, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Всегдя удивляло: обычный проект на node.js тянет в зависимости 50-70 разных пакетов.
    > Это ж охренеть! Когда за ними всеми следить?

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

     
  • 2.13, angra (ok), 11:25, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Ну так node.js относительно молодой проект, столько граблей еще впереди. А учится на чужом опыте они не хотят.
     
     
  • 3.14, Аноним (-), 11:38, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –8 +/
    Ещё один школьник слышал звон? mirror.yandex.ru это дебиян или центось?
     
     
  • 4.20, EuPhobos (ok), 11:57, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Это арч
     
  • 4.36, Michael Shigorin (ok), 12:52, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    > Ещё один школьник слышал звон?

    Если Вы школьник и слышали звон, вовсе не обязательно об этом сообщать здесь.

    > mirror.yandex.ru это дебиян или центось?

    Вероятно, федора (судя по tigro).

     
     
  • 5.116, freehck (ok), 17:17, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> mirror.yandex.ru это дебиян или центось?
    > Вероятно, федора (судя по tigro).

    Ну точно не debian. В debian nginx версии 1.8.1 нету.
    А tigro - это tigro.info имеется в виду?

     
     
  • 6.123, Michael Shigorin (ok), 17:37, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > А tigro - это tigro.info имеется в виду?

    Угу.

     
  • 6.142, dotpot (?), 21:20, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    в чём проблема nginx-репу подключить?
     
  • 4.134, www2 (ok), 18:34, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Какая взаимосвязь между node.js, npm и mirror.yandex.ru?
     
  • 2.16, pkdr (ok), 11:44, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Сколько я сталкивался с теми, кто делает что-то с нодой они этим и не парятся, раз кое как запустилось то всё нормально, шевелиться начнут только когда что-то отвалится.
     
  • 2.24, АнонимХ (ok), 12:09, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +11 +/
    Что там мне говорили: релизы либ не нужны, требование версии либы не нужно? И в сишечку тянут свои холёные хипстерские ручонки. Сидите в своем js, пилите однодневки, и не суётесь в нормальную разработку.
     
  • 2.32, Аноним (-), 12:34, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    это вы еще, батенька, руби на рельсах не видели -- там обычное дело иметь неколько сотен внешних модулей
     
     
  • 3.161, Аноним (-), 10:00, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > это вы еще, батенька, руби на рельсах не видели -- там обычное
    > дело иметь неколько сотен внешних модулей

    К сожалению и Rust туда-же будет...

     

  • 1.15, saahriktu (ok), 11:39, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Утилита leftpad на Си: gopher://sdf.org/0/users/saahriktu/filez/utils/leftpad.c .
     
     
  • 2.28, A.Stahl (ok), 12:15, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >gopher

    Скажи, а быть сумасшедшим весело?

     
     
  • 3.33, saahriktu (ok), 12:38, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы так говорите, как будто это я сам один пилю такие проекты как gofish, geomyidae, gophernicus, bucktooth, pygopherd, OverbiteFF (плагин к Firefox'у),... и т.д., а также сам своими руками впилил поддержку gopher'а в curl и lynx, поднял полторы сотни gopher серверов по всему миру, и сам единолично всё это юзаю. http://gopher.floodgap.com/overbite/relevance.html

    У gopher'а своя ниша. В т.ч. и среди юзеров lynx'а. Конечно, http в lynx'е тоже текстовый, но многие сайты, разумеется, заточены совсем не под текстовые консоли, а потому перегружены лишними элементами. gopher ресурсы, наоборот, выглядят красиво и аккуратно.

     
     
  • 4.38, омномномнимус (?), 13:03, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    >полторы сотни gopher серверов

    слишком много

     
  • 4.67, Stax (ok), 14:56, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Эм. А что это FF из коробки gopher не открывает? Обычный lynx и то умеет, а тут такой жирный браузер - и никакой тебе поддержки...

    Эдак они ftp следующим шагом удалят. Скажут мол, древний стандарт, с кодировками проблема, преимуществ перед http нет - выкидываем.

     
     
  • 5.71, saahriktu (ok), 15:15, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да, из коробки не умеет. Потому и существует такой плагин - https://addons.mozilla.org/ru/firefox/addon/overbiteff/ .
     
  • 5.81, Аноним (-), 15:28, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Эм. А что это FF из коробки gopher не открывает? Обычный lynx
    > и то умеет, а тут такой жирный браузер - и никакой
    > тебе поддержки...

    Был же шум не так давно, что выбросили в плагин.

    > Эдак они ftp следующим шагом удалят. Скажут мол, древний стандарт, с кодировками
    > проблема, преимуществ перед http нет - выкидываем.

    Когда его популярность упадёт до сотни-другой серверов на весь мир -- удалят.

     
  • 4.84, nekrolik (?), 15:36, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Забавно и не более. На практике всем от домохозяек до крутых разработчиков операционных систем удобнее использовать обычный web (ftp, http, https). А хороших дизайн и динамическое скрытие элементов (реакции на события) сильно повышают удобство чтения и использования. Если так нужно избавиться от "лишнего" проще просто отключить js в браузере.
     
     
  • 5.94, saahriktu (ok), 16:11, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Напоминаю, что я говорил про lynx, в котором JavaScript а и так нет И не в случ... большой текст свёрнут, показать
     
  • 5.132, Аноним (-), 18:17, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Да-да, об этом твердят чуть ли не с двухтысячных А на деле давно пихают js повс... большой текст свёрнут, показать
     
     
  • 6.139, nekrolik (?), 20:57, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Будь то админы, разработчики и т.д. они носят с собой ноуты. А не смотрят доку на тех же машинах что и обслуживают. Факт в том, что кое-кто занимается бессмысленной работой откапывая труп мертвой технологии, которой есть адекватная замена. Не хотите js? Ну и бог с вами, сделайте сайт без него и открывайте. Вообще чистый .txt файл напишите и на сервер положите, эффект будет тот же.
     
     
  • 7.147, None (??), 22:47, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Глядя на hp.com и пытаясь выдернуть из него нужные дрова под нужную ось мысль одна - "лучше бы txt положили". Ибо было бы, действительно, проще.
     
     
  • 8.158, Ged (??), 09:11, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    100 500 ... текст свёрнут, показать
     
  • 7.155, Аноним (-), 00:34, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Причем тут это Ну, вот демка http pygments org demo http pygments org dem... большой текст свёрнут, показать
     
  • 7.157, Аноним (-), 01:07, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Вообще чистый .txt файл
    > напишите и на сервер положите, эффект будет тот же.

    Прикольно – нагромоздили со временем прямо таки гигантскую кучу костылей и подпорок по названием "молодежный веб". Да так, что поддерживать нормальный веб-движок стало делом далеко не тривиальным – остались лишь гугл, мозилла (далеко не мелочь, с парой сотен миллионов зелененьких в год), эппл и МС.
    Изобрели супер-пупир джиты, оптимизации в браузерах, обмазались расширениями (вспомним флэш) и т.д. и т.п.

    А в реальности любая обвязка на простом питоне и гтк/qt  даст фору  "вээб приложениям" и по потреблению ресурсов и по общей шустрости и по простоте написания и поддерживания.


     
  • 4.90, snmp agent (?), 16:01, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    $ curl gopher://sdf.org/0/users/saahriktu/filez/utils/leftpad.c
    curl: (7) Failed to connect to sdf.org port 70: Время ожидания соединения истекло

    Интересно, как удивятся админы, если я к ним пойду просить открыть порт для gopher :)

     
     
  • 5.95, saahriktu (ok), 16:14, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > curl gopher://sdf.org/0/users/saahriktu/filez/utils/leftpad.c > leftpad.c

      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100   537    0   537    0     0    666      0 --:--:-- --:--:-- --:--:--   671

     
  • 5.109, Uri (??), 16:58, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > $ curl gopher://sdf.org/0/users/saahriktu/filez/utils/leftpad.c

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

    char *buf;

    char *leftpad(char *str, unsigned int len, char ch){
            unsigned int i;
            buf = (char *) malloc ((len + 1 + strlen(str)) * (sizeof(char)));
            for(i = 0; i < len; i++) buf[i] = ch;
            return strcat(buf, str);
    }

    int main(int argc, char **argv){
            if(argc < 4){
                    printf("usage: leftpad string length char\n");
                    return 1;
            }
            unsigned int al = (unsigned int) atol(argv[2]);
            printf("%s\n", leftpad(argv[1], al, argv[3][0]));
            free(buf);
            return 0;
    }

     
     
  • 6.119, Аноним (-), 17:23, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > sizeof(char)

    ясно, понятно.

     
  • 6.126, Аноним (-), 17:48, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    atol, strlen, sizeofchar, strcat …
    *facepalm.jpg*
    О таких мелочах как глобальная переменная на ровном месте или отсутствие каких-либо проверок и говорить не стоит.
     
  • 6.148, Аноним (-), 22:52, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    программисты с опытом, объясните пожалуйста: зачем писать функцию, которую нельзя вызвать дважды? зачем автору кода переменная buf нужна именно глобальная, а не s = leftpad(...); printf("%s\n", s); free(s); ?
     
     
  • 7.151, saahriktu (ok), 00:06, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Несмотря на малый размер кода, это ещё то legacy. Но, рабочее. Сначала появился просто демонстрационный набросок функции для примера, к которому был прикручен main() кусок для теста. А потом я левой пяткой допилил до полноценной утилиты и пофиксил пару указанных багов. Поскольку, строку нужно возвращать, то почистить буфер можно только после его использования. А это в main(). Вот для этого и пришлось вынести указатель. Можно было этого и не делать, но, видите ли, утечка памяти.
     
  • 7.152, dlazerka (ok), 00:06, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > программисты с опытом, объясните пожалуйста: зачем писать функцию, которую нельзя вызвать
    > дважды? зачем автору кода переменная buf нужна именно глобальная, а не
    > s = leftpad(...); printf("%s\n", s); free(s); ?

    Это Java-ненавистники экономят память я так думаю.

     
  • 6.164, snmp agent (?), 12:39, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    $ ./leftpad 'crash please' -1 ' '
    Segmentation fault
     
  • 6.171, saahriktu (ok), 08:06, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    После устранения наследия прошлого код стал таким:
    // v0.2 by Saahriktu
    #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;
    }

     
     
  • 7.173, Аноним (-), 15:32, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > (sizeof(char)

    www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf
    ---------
    > 2 The sizeof operator yields the size (in bytes) of its operand
    >
    > 3 When applied to an operand that has type char, unsigned char, or signed char, (or a qualif ied version thereof) the result is 1.

    --------
    > strcat(buf, argv[1]));

    man malloc
    > The malloc() function allocates size bytes and returns a pointer to the allocated memory.
    > [b]The memory is not initialized.[/b]

     
     
  • 8.175, saahriktu (ok), 16:26, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    1 Зато так будет работать и в нестандартных средах 2 И Это тоже самое, что и... текст свёрнут, показать
     
     
  • 9.178, Аноним (-), 16:52, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А ноль в конце buf, для перед strcat, Александр Сергеевич добавлять будет ... текст свёрнут, показать
     
     
  • 10.179, saahriktu (ok), 17:19, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    А, Вы про это Для надёжности добавить можно, да Другой вопрос, что при использ... текст свёрнут, показать
     
     
  • 11.180, Аноним (-), 18:39, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, во первых 8211 вы уж определитесь, работать в нестандартных ситуациях и... большой текст свёрнут, показать
     
     
  • 12.183, saahriktu (ok), 20:18, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Перечесал код до версии 0 6 В соседнем комментарии ... текст свёрнут, показать
     
     
  • 13.184, dlazerka (ok), 11:52, 27/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот для того чтобы не заниматься несколько дней причёсыванием люди и импортят ст... текст свёрнут, показать
     
  • 7.174, oopsy (?), 16:21, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Основная ошибка этого кода - это то, что он решает какую-то задачу, заметно отличающуюся от задачи которую решал lefp_pad на js.

    Исходный left_pad вписывал строку в поле заданной ширины, заполняя пространство слева указанными символами (или пробелами). Представленный код добавляет в начало строки заданное количество символов.

    Ещё есть главная ошибка - представленный код на C не будет правильно работать в случае если для кодирования текста используется UTF-8.

     
     
  • 8.176, saahriktu (ok), 16:31, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще-то, первая версия кода потому и была такой кривой, что являлась портом ор... текст свёрнут, показать
     
     
  • 9.177, saahriktu (ok), 16:49, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хех Присмотрелся к оригинальному коду ещё раз Да, проморгал один момент, но ра... текст свёрнут, показать
     
     
  • 10.182, saahriktu (ok), 20:16, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вот эта версия теперь работает как положено v0 6 by Saahriktu include stdi... текст свёрнут, показать
     
  • 4.124, freehck (ok), 17:38, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > У gopher'а своя ниша. В т.ч. и среди юзеров lynx'а. Конечно, http
    > в lynx'е тоже текстовый, но многие сайты, разумеется, заточены совсем не
    > под текстовые консоли, а потому перегружены лишними элементами. gopher ресурсы, наоборот,
    > выглядят красиво и аккуратно.

    Неужели где-то ещё есть web без js? Спасибо. Сегодня вечером обязательно посмотрю. Я-то думал, что оно мёртво, а оказывается ещё шевелится.

     
     
  • 5.137, _ (??), 19:22, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    мах 150 сайтов на весь Ынтернет ... если это не мёртвое, то смерти нет вообще ...
     
  • 3.96, Аноним (-), 16:15, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Иметь протокол, который естественным образом фильрует контингент (просто браузером не зайдешь) - бесценно.
     
     
  • 4.138, _ (??), 19:26, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Жто заменитель девушек для ботанов с ЧСВ, чего бы они не говорили :) Так что "в гофер!" :)))
     

     ....большая нить свёрнута, показать (39)

  • 1.17, kleem_head (?), 11:54, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Развалилась чья-то маркетинговая фантазия.
     
  • 1.18, Bullshit bingo (?), 11:55, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    А чо он на гитхабе библиотеки разместил? Забыл что ли историю с WhatsApp? Им самое место на savannah.gnu.org, раз он такой принципиальный.
     
  • 1.19, ananim (?), 11:56, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    весеннее  обострение
     
  • 1.21, pkunk (ok), 11:59, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    http://left-pad.io/
     
     
  • 2.26, АнонимХ (ok), 12:13, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > http://left-pad.io/

    Характерненько :)

    > ## Can I buy an enterprise license?
    > Yes. Email <> with your account and ABA routing numbers.

     
  • 2.165, ZloySergant (ok), 13:26, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >http://left-pad.io/

    Спасибо, поржал. Ребятки оказывается с юморком. Особенно хорошо про третий квартал 17 года.

     

  • 1.23, meequz (ok), 12:06, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Походу надо в списке зависимостей проекта жёстко прописывать не только версию пакета, но и его контрольную сумму.
     
     
  • 2.131, Аноним (-), 18:15, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Guix?
     

  • 1.25, Аноним (-), 12:10, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Рано или поздно нечто подобное должно было случиться. Я фанат ноды, но эти проблемы с npm были вполне очевидны.
     
  • 1.27, Аноним (-), 12:15, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Юристы совсем обнаглели. Хочешь вредить людям и оставаться чистым перед законом? Становись юристом.
     
     
  • 2.129, Аноним (-), 18:04, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Лучше законотворцем.
     

  • 1.29, SpiritOfStallman (ok), 12:19, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Отойдя от темы "жавоменеджер провалился, амыжговорили!!111", за автора (пусть и семнадцатистрочников) очень обидно, когда вот так твоим вкладом в сообщество подтираются.
     
     
  • 2.40, Аноним (-), 13:15, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Пусть скажет спасибо, что с ним хотя бы разговаривать начали. В гитхабе(кстати, где он сейчас и держит свои пакетики) удаляют репозитории молча и без разбору по желанию правообладателей.
     
     
  • 3.44, Аноним (44), 13:29, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    >Пусть скажет спасибо, что с ним хотя бы разговаривать начали.

    Разве? Вроде же точно так же отрубили. Просто, в отличии от гитхаба, у него была возможность ответить им асимметрично. :)
    Ну и ответ привлек внимание.

     
  • 3.58, SpiritOfStallman (ok), 14:44, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Поспорю.
    На одну нашу поделку подала репорт какая-то большая айтишная компания из англии, что бы им отдали бразды, мол название их и код их.
    Репу сразу заблочили, да. Но не отдали. Всё что нужно было, это написать в гитхаб около буквально "не-а, мы не согласны", на что был получен ответ в стиле "ну поскольку ситуация неясная, репу разблокируем, а "истец" пусть предоставит вывод суда на этот счёт". Всё.
     
     
  • 4.79, Аноним (-), 15:25, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    То есть позорные истории с WhatsApp и Qualcomm уже все забыли? Значит не так много денег было у той вашей "большой организации".
     
  • 3.85, Нимано (?), 15:39, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Из принципа ничего не читаем при регистрации https help github com articles g... большой текст свёрнут, показать
     

  • 1.30, fail (?), 12:24, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ...

    > Конфликт развернулся вокруг размещённого в репозитории NPM модуля kik (https://github.com/starters/kik),
    > предоставляющего инструменты для быстрого создания новых проектов на языке Ja..

    ...

    Вот интересено,
    когда в бpayзерах появятся вcтpoeнные мeнeджepы js (вроде apt-js, yum-js, etc),
    со всеми "плюxaми старших кoмpaдов": repami, цифровыми подписями и прочими поэтессами...

    ???

     
     
  • 2.98, Michael Shigorin (ok), 16:17, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > когда в бpayзерах

    Это серверное.

     
     
  • 3.103, fail (?), 16:43, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >> когда в бpayзерах
    > Это серверное.

    Эт-то, не совсем порядок:

    - подгружаемые/запускаемые/.. js - скрипты из неведомо каких источников(похлеще Active-X и пр.)
    - скрипты не сертефицированы ни в одной из гос. структур и/или ни одним из уполномоченных юр.лиц
    - опять таки, встает ребром вопрос "монетизации":
       1. права на вождения интepнетoфф
       2. обязательно полис ОСИГО(ОСАГО) на 50,100, 1000 js - как на клиентской так и на серверной части
       ...
       N

    ... в порядке юмора.

     

  • 1.31, Аноним (-), 12:32, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Это просто праздник какой-то! ©
     
  • 1.34, Аноним (-), 12:46, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    И всё это только ради того, чтобы какой-то копираст мог вводить npm install kik вместо npm install kik-messenger
     
     
  • 2.55, linux10 (ok), 14:16, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Так этот копираст даже иска не предъявлял, npm сам любезно прогнулся, [!] дважды.
     
  • 2.97, Michael Shigorin (ok), 16:17, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > И всё это только ради того, чтобы какой-то копираст мог вводить npm
    > install kik вместо npm install kik-messenger

    Скорее всего, даже не так -- лоер тупо вбил в гугль и пошёл ковровой бомбардировкой cease'n'desist-ить.

     
     
  • 3.167, kravich (ok), 14:10, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    this
     

  • 1.37, Genby (?), 12:53, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    тут прикол ещё в том, что новые средства разработки для броузеров Mozilla  - основаны на node.js https://developer.mozilla.org/en-US/Add-ons/SDK/Tools/jpm
     
  • 1.39, Аноним (-), 13:09, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –9 +/
    Драчек какой-то психанул. Просто бы узнал когда зареган этот kik, если не раньше чем его модуль, то написал бы про это на тематических ресурсах про опенсорс и ноде.жс. Они бы сами потом извинялись и бабло платили.

    P.S. возможность удалять что-то самому из нпм ввели относительно недавно. И зря.

     
     
  • 2.45, КО (?), 13:32, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Если автор против того, чтобы ты что-то из его творчества распространял, а ты продолжаешь, то может возникнуть юридический казус похлеще произошедшего.
     
     
  • 3.69, Аноним (-), 15:08, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Если автор против того, чтобы ты что-то из его творчества распространял, а
    > ты продолжаешь, то может возникнуть юридический казус похлеще произошедшего.

    Мда, вот такой вот опенсорс у тебя в голове?

     
  • 3.122, Аноним (-), 17:32, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если автор против того, чтобы ты что-то из его творчества распространял, а
    > ты продолжаешь, то может возникнуть юридический казус похлеще произошедшего.

    Он распространяет в соответствии с лицензией выданной автором всем. Автор не может её обратно забрать и сказать что передумал.

     
  • 2.48, Genby (?), 13:46, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Драчек какой-то психанул. Просто бы узнал когда зареган этот kik, если не
    > раньше чем его модуль, то написал бы про это на тематических
    > ресурсах про опенсорс и ноде.жс. Они бы сами потом извинялись и
    > бабло платили.
    > P.S. возможность удалять что-то самому из нпм ввели относительно недавно. И зря.

    на каких таких тематических ресурсах писать? сегодня большинство посетителей таких ресурсов - это глупый планктон мнящий себя ит-шниками. у меня, вот, сегодня удалили тему на реддиде, в которой я написал, что у странички нет https аналога http://ftp.openbsd.org/pub/OpenBSD/OpenSSH/portable/

     
  • 2.59, Andrey Mitrofanov (?), 14:47, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Драчек какой-то психанул. Просто бы узнал когда зареган этот kik, если не
    > раньше чем его модуль, то

    И тебе, и автору новости выще сообщаю: в _торговых_марках_ приоритет не у "того, кто раньше", а у "того, кто раньше _зарегистрировал_".

    Система работает на то, чтобы тот, у кого много денег, "зарабатывал" их ещё больше.

     
     
  • 3.68, Аноним (-), 15:05, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >инцидент с необоснованным захватом прав

    Тогда новость вводит в заблуждение. Можно было бы и исправить, а не писать желтизну. Не все тут юристы и знают законы юса.

     
  • 3.86, nekrolik (?), 15:42, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Я тебе сообщаю. Торговая марка работает только в той сфере деятельности в которой она зарегистрирована. Цели у модулей разные, а значит могут иметь одно название.
     
  • 3.99, Michael Shigorin (ok), 16:20, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > И тебе, и автору новости выще сообщаю: в _торговых_марках_ приоритет не у
    > "того, кто раньше", а у "того, кто раньше _зарегистрировал_".

    Тем не менее формальные стопоры (как вот "широко известное" уже существующее) есть.

    > Система работает на то, чтобы тот, у кого много денег, "зарабатывал" их
    > ещё больше.

    Это да, вся т.н. "интеллектуальная собственность" сильно напоминает ещё один пузырь для расчёта дутого ВВП одной страны, прошляпившей даже то, что в это было поверили другие...

     
  • 3.146, Михрютка (ok), 22:26, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    осталось понять какое отношение торговая марка сосальной сети имеет к имени модуля на жабаскрипе. этак и к oracle.h домотаться можно.
     

  • 1.46, Аноним (-), 13:34, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я задаюсь вопросом: что лучше, "изобретать велосипед" или использовать готовый из 4-х строк? )
     
     
  • 2.47, Аноним (-), 13:45, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Развивать стандартную библиотеку Javascript.
     
     
  • 3.50, Genby (?), 13:49, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Развивать стандартную библиотеку Javascript.

    и сколько времени, по-вашему, заняли бы все прения по включению этого кода в стандарт? - то-то, а людям работать надо!

     
     
  • 4.53, Аноним (-), 14:00, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Да я, в общем, не против. Работайте, страдайте. Только на Javascript потом не пеняйте, лады?
     
  • 4.89, roman (??), 15:59, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Array.isArray давно уже включен включен в стандарт
    https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/
     
     
  • 5.140, nekrolik (?), 21:03, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Array.isArray давно уже включен включен в стандарт
    > https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/

    А ещё стоит напомнить про существование полифилов.

     
  • 2.49, Uri (??), 13:47, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Пошли, однако, "программисты" - четыре строки у них уже велосипед.
     
     
  • 3.51, Genby (?), 13:51, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –6 +/
    > Пошли, однако, "программисты" - четыре строки у них уже велосипед.

    это дубляж кода. такое даже в Питоне порицается

     
     
  • 4.54, angra (ok), 14:01, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    К чему приводит бездумное следование паттерну можно посмотреть на примере этой новости. Неужели никогда не слышали такую замечательную житейскую мудрость как "все хорошо в меру"?
     
     
  • 5.60, Andrey Mitrofanov (?), 14:50, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >бездумное следование [I]ритуалу[/I] можно посмотреть на примере этой новости.

    Можешь благодарить --> [+]

     
  • 4.181, djbaldey (ok), 19:59, 26/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Вы превратно понимаете "питоновый" принцип DRY, рекомендую перечитать PEP20 вдумчиво.
     
  • 2.52, angra (ok), 13:58, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    В вопросе уже есть ответ. Когда некая функциональность реализуется несколькими сотнями строк обычного кода или парой десятков хитрого кода, то лучше оформить ее в отдельный модуль. Если же она может быть реализована без проблем рядовым программистом в десятке строчек, то ее лучше встраивать в основной код. Также хорошим вариантом явлется собрать несколько десятков таких простеньких, но часто нужных функций и оформить в один модуль.
     

  • 1.76, anonchik (?), 15:23, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    http://left-pad.io/
     
     
  • 2.113, Аноним (-), 17:05, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Еще одни пижоны коварные!

    ## Can I buy an enterprise license?

    Yes. Email root@… with your account and ABA routing numbers.

     

  • 1.82, loskiq (ok), 15:32, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Блин, плохо. Че делать теперь?
     
     
  • 2.88, loskiq (ok), 15:55, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Блин, плохо. Че делать теперь?

    Лучше переписать проект под другой язык )0))

     

  • 1.110, dr Equivalent (ok), 16:58, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Мораль сей басни такова: прогибаться под корпорации и посылпть нахй мейнтейнеров - может плохо кончиться.
     
  • 1.111, Аноним (-), 17:02, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Рассадник вирусов как и SourceForge... без подписей и баланса
     
  • 1.112, Sailfish (ok), 17:04, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Вообще, давно пора бы что-то человеческое на замену сделать. Есил верить главной странице сайта, сейчас там 258300 модулей. Вот вы с ходу найдёте нужный вам модуль, и поймёте его отличия от 100500 модулей с подобной функциональностью? И у вас есть какие-нибудь гарантии, что модуль и дальше будет поддерживаться?
     
     
  • 2.145, dlazerka (ok), 22:23, 24/03/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вообще, давно пора бы что-то человеческое на замену сделать. Есил верить главной
    > странице сайта, сейчас там 258300 модулей. Вот вы с ходу найдёте
    > нужный вам модуль, и поймёте его отличия от 100500 модулей с
    > подобной функциональностью? И у вас есть какие-нибудь гарантии, что модуль и
    > дальше будет поддерживаться?

    В интернете много сайтов разных, вот вы сходу найдёте нужный? Давно пора бы что-то человеческое на замену сделать.

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

     

  • 1.143, Аноним (-), 22:08, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "...Не исключено, что эти модули совершают скрытую вредоносную активность."
    Также не исключено, что любой другой модуль не от "предприимчивых деятелей" может совершать скрытую вредоносную активность.
     
     
  • 2.156, Аноним (-), 00:44, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Редактор Atom аттакует сайт Правительства, качает порно и заказывает пиццу за одно обновление.
     
     
  • 3.168, kravich (ok), 14:15, 25/03/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Фичасто...
     

  • 1.144, dlazerka (ok), 22:14, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Maven пошёл по правильному пути -- кому принадлежит домен, тот и хозяин.
     
  • 1.149, Аноним (-), 23:49, 24/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну вот, пора io.js из закромов доставать.
     
  • 1.169, lucentcode (ok), 19:14, 25/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Печальная история. Копирасты(что ожидаемо), повели себя крайне не корректно. Но основная вина за данный инцидент должна быть возложена на юристов npm, Inc так как именно они безосновательно передали права на репу kik копирастам. Наличие торговой марки ничего не означает, так как она применима только к какой-то области(в данном случае к захудалом мессенджеру), и её действие не может распространяться на продукты, не связанные с их сферой деятельности. Надеюсь доверия к нехорошим людям из npm, Inc у сообщества станет меньше и оно начнёт создавать альтернативу npm, не привязанную к одному вендору.
     
  • 1.170, pony (?), 03:50, 26/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Демагогия
    а корпорасты понимают только
    Silent enim leges inter arma(Законы молчат во время войны) — Цицерон
     
  • 1.172, Сергей (??), 11:04, 26/03/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вообще-то честно говоря, эта история высветила очень интересную особенность программирования, как сферы деятельности человека и его авторских прав, а именно, написанный вами код может быть уже кем то создан, и вы об этом даже не догадываетесь, и кто вы после этого, когда это вскроется, воришка или честный человек...
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру