Привет, читатели!
В этой статье я познакомлю вас с фреймворком Comedy — реализацией акторов в Node.JS.
Акторы позволяют масштабировать отдельные модули вашего Node.JS приложения без изменения кода.
Привет, читатели!
В этой статье я познакомлю вас с фреймворком Comedy — реализацией акторов в Node.JS.
Акторы позволяют масштабировать отдельные модули вашего Node.JS приложения без изменения кода.
JS-разработчики порой творят друг с другом страшные вещи. Нет бы мирно кодить и радоваться каждому коммиту! Но в ряды травоядных мирных программистов затесался злодей, подкинувший в репозиторий npm пачку вредоносных пакетов. npm – стандартный менеджер пакетов в Node.js, и обладает облачным репозиторием, полным всяких полезнейших пакетов.
Негодяй, скрывающий свое бесчестное имя под ником HuskTask рассудил так, что людям свойственно ошибаться, и нет ничего естественнее, чем, например, пропустить дефис в cross-env. И залил в репозиторий свой пакет с именем crossenv. И еще несколько, именованных по тому же принципу. В результате какое-то количество пользователей загрузили в свои проекты пакеты от HuskTask, понятия не имея, что там за код внутри.
Один из пользователей таки заглянул в crossenv и побежал в твиттер бить тревогу. Как оказалось, этот пакет содержит скрипт, который добывает из переменных окружения важную информацию (например, учетные данные от npm), кодирует ее в строку, и отправляет POST-запросом на сервер npm.hacktask.net.
Читать полностью »
Однажды я отправился на поиск учебных руководств по аутентификации в Node.js/Express.js, но, к сожалению, не смог найти ни одного, которое меня бы полностью устроило. Некоторые были неполными, некоторые содержали ошибки в сфере безопасности, вполне способные навредить неопытным разработчикам.
Сразу скажу, что я всё ещё нахожусь в поиске надёжного, всеобъемлющего решения для аутентификации в Node/Express, которое способно составить конкуренцию Devise для Rails. Однако, удручающая ситуация в сфере руководств подвигла меня на подготовку этого материала. Тут я разберу некоторые наиболее распространённые ошибки в области аутентификации и расскажу о том, как их избежать.
Спасибо всем, кто уже принял участие в нашем конкурсе по программированию! Мы получили 60 решений от 34 уникальных участников. До конца конкурса осталась одна неделя (до 17 августа 2017, 23:59:59 UTC), и мы публикуем последние предварительные результаты.
Читать полностью »
В начале августа в нескольких десятках npm-пакетов был обнаружен вредоносный код. Администрация npmjs.com оперативно на это отреагировала и тут же подготовила отчёт о предпринятых мерах. Позже Доминик Кундел из twilio.com поделился советами о том, как найти проекты, «заражённые» подобными пакетами. Представляем вашему вниманию рассказ об этих событиях.
Друзья, добро пожаловать! Ниже вас ждет история о том, как было проанализировано 20 миллионов доменных имен и что из этого вышло. Результаты можно посмотреть скачав csv-файл или восстановив дамп базы данных в PostgreSQL.
Вообще я стараюсь не писать статьи и комментарии не на технические темы, но коль скоро появились не совсем технические по духу статьи JavaScript как явление и JavaScript как праздник, я счел нужным принять участие в дискуссии.
Читать полностью »
Эта пятничная статья будет ответом на статью JavaScript как явление, в которой некий пользователь (видимо по случаю прошедшего дня ВДВ) решил избить JavaScript. Лично я пишу на JavaScript уже 15 лет, искренне считаю его одним из самых мощных ЯП на сегодняшний день, поэтому не позволю его обижать. В статье будет, по возможности, аргументированная позиция относительно основных тезисов критики. По правде, вышеупомянутая статья не стоит того, чтобы на неё отвечать, но у новичков действительно часто возникают проблемы с JavaScript. Вводит в заблуждение приставка Script и несерьёзный имидж языка, а не деле обнаруживается, что язык применяется от front-end и back-end до дескопных и мобильных приложений, программирования интегральных микросхем, обработки видео и в множестве других сфер. Я давно хотел раскрыть частые заблуждения про JavaScript, а тут как раз появился повод, поэтому welcome под кат.
Читать полностью »
Node.js, с момента появления, зависит от JS-движка V8, который обеспечивает исполнение команд языка, который мы все знаем и любим. V8 — это виртуальная машина JavaScript, написанная Google для браузера Chrome. С самого начала V8 создавали для того, чтобы сделать JavaScript быстрым, по крайней мере — обеспечить большую скорость, чем конкурирующие движки. Для динамического языка без строгой типизации достижение высокой производительности — задача непростая. V8 и другие движки развиваются, всё лучше решая эту задачу. Однако, новый движок — это не просто «рост скорости исполнения JS». Это — и необходимость в новых подходах к оптимизации кода. Не всё то, что было сегодня самым быстрым, будет радовать нас максимальной производительностью в будущем. Не всё, что считалось медленным, останется таким.
Как характеристики TurboFan V8 повлияют на то, как будут оптимизировать код? Как техники, считающиеся оптимальными сегодня, покажут себя в недалёком будущем? Как ведут себя «убийцы производительности V8» в наши дни, и чего от них можно ожидать? В этом материале мы постарались найти ответы на эти и многие другие вопросы.
Перед вами — плод совместного труда Дэвида Марка Клементса и Маттео Коллины. Материал проверили Франциска Хинкельманн и Бенедикт Мейрер из команды разработчиков V8.
Сообщество nodejs безумно, и судя по тому что в 2016-2017 годах в различных рейтингах JavaScript брал первое место по популярности вытеснив оттуда с небольшим отрывом Java — безумие в последнее время действительно станосится массовым. Казалось бы — не хочешь не кушай, пиши на своём любимом Elixir / Erlang / Lisp / Haskell / любом другом языкое с хорошим дизайном и в ус не дуй, но в текущей ситуации к сожалению это правило перестаёт работать и приходится прилагать некоторые усилия чтобы его соблюдать.
В чём причина популярности такого реально хренового языка как JavaScript? В принципе в том же в чём и причина популярности Java, да и вообще почти всех явлений культуры и общества Читать полностью »