суббота, 26 марта 2016 г.

Поучительно

Интересное событие, которое наверняка заставило взвыть множество "хипстеров", случилось на днях. Выразилось оно в том, что внезапно множество проектов, использующих пакетный менеджер npm, из-за очень специфического сбоя превратилось в... ну, скажем так, в тыкву.

Так что же там такое произошло?



Жил да был на свете программист Азер Кочулу, писал свой код и отправлял его к ребятам из NPM. Эти ребята предоставляют сервис по доступу к разным компонентам кода Javascript для веб-программистов (в основном) по всему миру, причем совершенно бесплатно.

На него-то мигом и подсели ленивые "хипстеры" - как же, ведь чертовски удобно: заколотил программист команду npm [чего-то там], нажал Enter, а дальше программа сама лезет в интернет, выкачивает оттуда все необходимое и устанавливает в готовом к работе виде на компьютер. Ляпота!


Так вот, пришел как-то раз Азеру емэйл от Боба, менеджера по патентам из компании Kik, которая выпускает какой-то популярный мессенджер (ежели по-русски - "болталку"). Не понравилось компании, что один из пакетов Азера носит название kik, похожее на имя их знаменитого продукта. И предложил тот менеджер спорный пакет Азеру как-нибудь переименовать, потому что компания как раз собиралась выложить собственный код для NPM, а имя, как назло, оказалось занято.

В конце письма Боб ненавязчиво намекнул, что если программист не согласится, то компания спустит с цепи своих голодных юристов, которые вломятся к Азеру в дом, положат его мордой в пол и обдерут до нитки. Азер был парень мирный, но намек ему очень не понравился, а потому он незатейливо послал Боба лесом, наградив напоследок парой ласковых эпитетов.


Ранимый Боб очень расстроился. Он искренне хотел решить вопрос по-хорошему, чтобы Азера никто не клал мордой в пол. Поэтому менеджер обратился за помощью напрямую к ребятам из NPM, сославшись на полную невменяемость и несговорчивость Азера.

Один из главных в той шарашке компании, парень по имени Лори, после неудачной попытки лично уговорить Азера решил все-таки помочь Бобу и передал - без согласия автора - права на пакет под названием kik фирме Kik.

Разозленный таким свинским отношением к себе Азер написал Лори гневное письмо, что ноги его теперь в этом гадюшнике не будет, а потому не мог бы Лори аннулировать все, что Азер написал для NPM?


Не вопрос - в два счета все было обстряпано, и весь мир был об этом благополучно оповещен. Одно только Лори не учел: за долгое время Азер успел понаписать для NPM без малого 300 пакетов (273, если точнее), и многие из них использовались в куче проектов по всему миру.

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


После этого тысячи проектов "хипстеров" по всему миру (в том числе крупные - Babel, React.js, Node.js) повалились, из-за чего сразу поднялся страшный вой. Разбуженный воем Лори быстро понял, где и по какой причине у народа подгорает. Недолго думая, он во второй раз не спросив разрешения автора, самовольно "восстановил" вычищенный было пакет left-pad.

"Хипстеры" на время успокоились, а разгневанный Азер громко потребовал, чтобы кто-нибудь построил ему такой же NPM, только без свиней внутри. А пока никто такого не построит, будет хранить свои работы... на Гитхабе.


Мораль истории: Интернет штука удобная, но только до поры. Держать нужные для работы инструменты где-то в сети - ослепительно чистое и незамутненное безумие. Граждане, держите все свои рабочие инструменты под рукой!

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

На этом, пожалуй, точка.

Комментариев нет:

Отправить комментарий