React и Redux, в последнее время одни из самых популярных buzz-words в мире фронтенда. Поэтому когда мне потребовалось сделать веб-приложение, которое бы отображало данные, полученные с сервера, а также позволяло бы ими манипулировать (создавать, удалять и изменять), я решил построить его на основе связки React и Redux. Множество getting-started руководств покрывают только функционал создания компонентов, action creators и reducers. Но как только дело касается обмена с сервером, начинаются сложности — растет количество необходимых action creator, редьюсеров. Причем они очень похожи друг на друга, с миниальными отличиями. В большинстве случаев — только в типе (имени) активности. После того, как я создал третий одинаковый набор креаторов и редьюсеров, то появилось желание что-то изменить. Так родилась идея реализации redux-redents.
Рубрика «npm» - 8
Redux-Redents — (еще) один модуль для работы с серверными данными из React-Redux приложений.
2016-07-07 в 10:38, admin, рубрики: front-end development, front-end разработка, javascript, node.js, npm, React, ReactJS, redux, Разработка веб-сайтовТайпосквоттинг в репозиториях Python, Node.JS и Ruby
2016-06-13 в 13:59, admin, рубрики: node.js, npm, Npmjs.com, open source, PyPi, python, ruby, rubygems.org, urllib2, информационная безопасность, Программирование, тайпосквоттинг, метки: PyPiЭффективность атаки доказана при распространении вредоносного кода через репозитории PyPi (Python), Npmjs.com (Node.js) и rubygems.org (Ruby)
Оказывается, тайпосквоттинг подходит не только для регистрации доменных имён. Немецкий специалист по безопасности Николай Чахер (Nikolai Tschacher) продемонстрировал, насколько легко распространять вредоносный код через PyPi — каталог программного обеспечения, написанного на языке программирования Python, а также через репозитории NodeJS (Npmsjs.com) и Ruby (rubygems.org).
Итак, публикуем пакет с опечаткой в названии — и ждём, пока кто-нибудь допустит опечатку в своей консоли…
> sudo pip install reqeusts
Во время небольшого эксперимента Николай в целях исследования инфицировал 17 000 компьютеров, причём 43,6% установок были совершены с правами администратора, в том числе на серверах в правительственных доменах .gov и .mil.
Читать полностью »
Фиеричная система счисления, или почему 1 + 10 = 100
2016-05-31 в 8:45, admin, рубрики: javascript, npm, phaser.js, курить бамбук нагибая дубы, математика, системы счисления«10.01 х 10.01 = 1000.1001»
Джордж Оруэлл. «1010001001001000.1001001000100001»

Существует ли позиционная система счисления с иррациональным основанием, в которой все натуральные числа записываются конечным числом цифр? В которой число больше единицы, не имеющее цифр после запятой, наверняка не целое и даже не рациональное? В которой 1 + 10 = 100, а 1 + 1 = 10.01?
Читать полностью »
Уменьшаем размер публикуемых npm модулей
2016-05-16 в 8:31, admin, рубрики: Git, javascript, node.js, npm, Блог компании Voximplant, Программирование, Разработка веб-сайтовПо умолчанию npm публикует в registry весь модуль целиком. За исключением явно указанных в .gitignore файлов. Это отбрасывает зависимости, но все равно позволяет куче не очень нужных файлов просочиться в опубликованное. После чего благодарные пользователи ждут, пока все это скачается. Для grunt, кстати, ждать придется порядка 6 мегабайт. А он такой обычно не один.
Я решил разобраться, как измерить размер своих модулей после публикации и, по возможности, этот размер уменьшить. В качестве примера буду использовать модуль check-more-types, который содержит всего несколько файлов. Плюс юнит тесты и документацию, которая собирается в README markdown файл.
Читать полностью »
Используем Webpack вместо Sprockets в Ruby on Rails
2016-04-27 в 9:15, admin, рубрики: npm, ruby on rails, sprockets, webpackЗа работу frontend части приложения в Ruby on Rails отвечает библиотека Sprockets, которая не дотягивает до потребностей современного frontend приложения. В чем именно не дотягивает можно почитать, например, здесь и здесь.
Хотя уже есть достаточно статей на тему связки webpack+rails и даже специальный гем есть, предлагаю посмотреть на еще один велосипед, умеющий также деплой делать.
NPM запретил отзывать без разрешения open-source модули старше 24 часов
2016-03-30 в 13:06, admin, рубрики: babel, javascript, left-pad, Node, node.js, npm, open source, React, Веб-разработка, зависимости, пакетный менеджер Пакетный менеджер NPM на прошлой неделе стал причиной сумятицы в связи с исчезновением маленького модуля left-pad, на который были установлены зависимости в Node, React, Babel и тысячах других пакетов. Чтобы не допустить такого в будущем, сейчас администрация NPM внесла изменения в правила. По новым правилам, автоматический отзыв модуля возможен только в течение 24 часов после публикации на сервере NPM. После этого времени отзыв допускается только с разрешения администрации.
Читать полностью »
Node.js вещает: Google инженеры нашли уязвимость в NPM скриптах
2016-03-29 в 22:43, admin, рубрики: Google, javascript, node.js, npm, безопасность, информационная безопасность, Программирование Node.js разработчики, запускайте команду `npm install` на свой страх и риск и помните, что само-распространяющийся червь свободно гуляет по экосистеме.
Никогда нельзя полагать, что скачанный из интернета файл является безопасным. Это справедливо и для NPM, стандартного менеджера пакетов Node.js. Уязвимость при установке скриптов позволяет атакующему создать само-распространяющегося червя, который может проходить сквозь NPM пакеты.
Читать полностью »
Поговорим о том, как сломать Интернет
2016-03-24 в 20:39, admin, рубрики: kik, npm, а ведь могли бы купить за $30000, вежливые люди, Законодательство и IT-бизнес, никто не читает теги, патентные войны, патентование, тем более на МегамозгеНедавно произошел инцидент, из-за которого сломались множество пакетов NPM. Причиной стал отзыв своих модулей одним из разработчиков на почве конфликта с компанией-производителем ПО, которая отобрала приглянувшееся имя пакета. Точку зрения разработчика можно почитать здесь (англ.). А под катом находится ответ менджера компании Kik.Читать полностью »
NPM и left-pad: мы разучились программировать?
2016-03-24 в 13:37, admin, рубрики: javascript, npm, Веб-разработка, зависимости, пакетный менеджер, ПрограммированиеАвтор — Дэвид Хейни (David Haney), ведущий инженер-программист Stack Overflow
Итак, разработчики, время для серьёзного разговора. Вы уже наверное в курсе, что на этой неделе React, Babel и куча других популярных пакетов на NPM сломались. Причина довольно удивительная.
Простой пакет NPM под названием left-pad был установлен как зависимость в React, Babel и других пакетах. Модуль, который на момент написания этого поста, имеет 11 звёзд на Github (сейчас 323 — прим.пер). Весь пакет состоит из 11 простых строчек, которые реализуют примитивную функцию вставки пробелов в левой части строк. Если какие-то из ссылок когда-нибудь умрут, вот его код:
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;
}
Что меня беспокоит, так это такое большое количество пакетов, где установлена зависимость от простой функции набивки строки пробелами, вместо того чтобы потратить 2 минуты и написать эту базовую функцию самому.
Читать полностью »
Один разработчик чуть не «сломал» пакетный менеджер NPM
2016-03-23 в 16:56, admin, рубрики: javascript, kik, node.js, npm, open source, пакетный менеджерВеб-разработчик Азер Кочулу (Azer Koçulu), автор более 250 модулей для Node.js, попал в неприятную ситуацию. В своём блоге он пишет, что несколько недель назад получил письмо от юриста компании Kik (мессенджер) с требованием отозвать модуль с аналогичным названием kik из пакетного менеджера NPM (Node Package Manager).
Программист отказался, тогда юрист обратился напрямую в NPM, и администрация проекта удовлетворила его требование, сменив владельца модуля kik без разрешения автора.
Азер Кочулу был крайне недоволен этим. Настолько недоволен, что решил в ответ «освободить» (то есть отозвать) все свои модули — более 250 модулей NPM. К сожалению, среди них оказался и left-pad — маленький модуль из 11 строк кода на JavaScript. Он используется при установке зависимостей между пакетами через NPM, в том числе в Node.js, JavaScript-транскомпиляторе Babel и огромном количестве других билдов. Только за прошлый месяц left-pad скачали 2 486 696 с сервера NPM, по их статистике.
Читать полностью »