Рубрика «node.js»

Релиз Node.js 10 и NPM 6 - 1

Сегодня состоялся двойной релиз Node.js v10 (LTS) и NPM v6. Данное событие особенно важно, оно знаменует собой новую веху для всей платформы и привносит много значимых изменений и улучшений во всей кодовой базе Node.js. В сфере безопасности появилась поддержка новых форматов шифрования.

Читать полностью »

Задача: обойти блокировку Телграма для бота, крутящегося на NodeJS на Raspberry Pi
Устанавливаем Tor
apt-get install tor

Открываем конфиг tor, расположенный по адресу: /etc/tor/torrc
И убеждаемся, что там есть такие строки
SocksPort 127.0.0.1:9050
А вот эту строку надо «закомитить», т.е. она должна выглядеть так
# SocksPolicy accept
Это означает, что мы принимаем все запросы, ничего не отфильтровывая.Читать полностью »

До этого я никогда не сталкивался с CRM "Мегаплан" и не знал, что она существует. Один мой хороший знакомый предложил мне подработку, сказал, что один его знакомый ищет программиста, чтобы написать небольшую программу или скрипт для автоматизации работы.
Было сказано, что нужно из какой-то системы получить данные по API, обработать их и вывести в XLS. Мне предложение показалось интересным, я созвонился с Заказчиком и договорился о встрече.

Сразу хочу сказать, что я никак не связан с самим Мегапланом и не собираюсь его рекламировать.

Постановка задачи

Заказчик — предприятие, в котором примерно 50 сотрудников.

Сотрудники, проекты и задачи заведены в CRM.

Сотрудники выполняют поставленные задачи. При этом в комментариях к задаче они указывают количество отработанных часов. Кроме того, при выполнении задачи тратятся "ядро-часы" (часы машинного времени).

Они также указываются в каждой задаче в отдельном поле.

Заказчику нужно формировать отчёт в XLS по данным из Мегаплана за указанный временной период.

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

Т.е. затраты группируются вначале по проектам, далее по задачам, потом уже по каждому сотруднику.

Примерный вид отчёта представлен на рисунке ниже.

image

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

Срок: 1 неделя.
Цена: 20 тыс.руб.

Бюджет небольшой, информации в Интернете об опыте использования Мегаплан API — ещё меньше. Нашёл здесь, на Хабре, вот эту статью, и она совсем не вызывала оптимизма. Пахло проблемами, деньги были не сильно нужны, но было интересно и хотелось помочь людям в их рутине. Я согласился.

Читать полностью »

Вы как-нибудь задумывались, сколько версий одной и той же библиотеки затягивает ваша клиентская или серверная сборка? Мне вот в какой-то момент стало интересно. Навскидку найти для этого готовый инструмент не получилось, а смотреть глазами package-lock слишком утомительно. Как мы знаем — в любой непонятной ситуации нужно писать свой npm пакет, поэтому я именно это и сделал… Дальше в посте я рассмотрю результат анализа живого проекта и сделаю пару спорных выводов.

Ну и никак нельзя обойтись без этой классической картинки:

Ещё один инструмент для проверки ваших npm зависимостей — wtfwith - 1

Читать полностью »

Асинхронные циклы и Stream API в Node.js 10 - 1

В этом месяце выходит десятая версия Node.js, в которой нас ждет изменение поведения потоков (readable-stream), вызванное появлением асинхронных циклов for-await-of. Давайте разберемся что это такое и к чему нам готовиться.

Читать полностью »

Реестр пакетов на Ethereum - 1

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

Читать полностью »

Есть небольшая вентсистема, которую нам поручили когда-то запустить, а сегодня я пользуюсь ей как онлайн-термометром. Как так получилось? То был первый шкаф автоматики, принятый сразу же после согласия работать.
Читать полностью »

Приветствую!

Как вы думаете, можно ли создать полноценную операционную систему на языке программирования JavaScript, с которой можно загружаться?

Правильный ответ — можно!

image

Сегодня я хочу рассказать вам про проект JsOS.

Читать полностью »

Разработка AI для пошаговой игры на Node.js (часть 1) - 1
Всем привет!
Прошло целых полтора года с момента написания моей первой статьи на Хабре. С тех пор проект FOTM претерпел ряд изменений. В начале пройдёмся вкратце по всем модернизациям, а затем перейдём к детальному разбору основной фичи — AI.Читать полностью »

Что такое CI

Continuous Integration — это практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в общую основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем. В обычном проекте, где над разными частями системы разработчики трудятся независимо, стадия интеграции является заключительной. Она может непредсказуемо задержать окончание работ. Переход к непрерывной интеграции позволяет снизить трудоёмкость интеграции и сделать её более предсказуемой за счет раннего обнаружения и устранения ошибок и противоречий. Основным преимуществом является сокращение стоимости исправления дефекта, за счёт раннего его выявления.

Если вы не знаете как настроить CI в своем проекте, я приглашаю вас "под кат"

Читать полностью »