Установка свежей версии Node.js за минуту
Бывает такое, что на сервере или в docker контейнере устанавливается старая версия Node.js, а для корректной работы скриптов нужна свежая. Так случилось и у меня - в docker по умолчанию ставилась 10я версия node, а нужна была минимум 12!
После недолгого "гугления" нашел лучший, на мой взгляд, вариант, которым и решил поделиться. Для этого мы будем использовать утилиту nvm - Node Version Manager. Инструкцию пишу под linux. Итак, в консоли запускаем команду:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
После этого устанавливаем желаемую версию node, например 14.17.0:
nvm install v14.17.0
В случае успеха мы увидим что-то вроде этого:
Now using node v14.17.0 (npm v6.14.13)
Вот и все) Теперь мы можем использовать свежую версию Node.js🤟
Бывает такое, что на сервере или в docker контейнере устанавливается старая версия Node.js, а для корректной работы скриптов нужна свежая. Так случилось и у меня - в docker по умолчанию ставилась 10я версия node, а нужна была минимум 12!
После недолгого "гугления" нашел лучший, на мой взгляд, вариант, которым и решил поделиться. Для этого мы будем использовать утилиту nvm - Node Version Manager. Инструкцию пишу под linux. Итак, в консоли запускаем команду:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
После этого устанавливаем желаемую версию node, например 14.17.0:
nvm install v14.17.0
В случае успеха мы увидим что-то вроде этого:
Now using node v14.17.0 (npm v6.14.13)
Вот и все) Теперь мы можем использовать свежую версию Node.js🤟
Такими темпами скоро от программистов совсем откажутся 😁
https://tproger.ru/news/ii-pomoshhnik-dlja-razrabotchikov-predstavila-microsoft/
https://tproger.ru/news/ii-pomoshhnik-dlja-razrabotchikov-predstavila-microsoft/
Tproger
Бесплатный ИИ-помощник от Microsoft подсказывает, как лучше писать код. Вот, где его можно протестировать
Microsoft и OpenAI запустили сервис GitHub Copilot. Это ИИ-инструмент для разработчиков, который подсказывает, как лучше писать код.
Привет, друзья! Стыдно, что совсем забил на блог, но так сложились обстоятельства.
За это время много всего изменилось в моей жизни. Из глобального - переезд в другой город, другую страну. Теперь я живу в Питере и кайфую от этого города. После моего родного провинциального Тирасполя, тут я почувствовал себя живым😊 Ритм жизни совершенно иной, много интересного вокруг - красивые места, развлечения.
Но есть и обратная сторона медали - расстояния.. Когда тебе куда-то нужно поехать, это занимает достаточно много времени. И этого времени постоянно не хватает. А писать сюда просто так, для галочки, или постоянно делиться контентом из других каналов - это не мое.
За это время было много интересных проектов, постоянно приходится обучаться новому и расти. Не будешь следить за тенденциями - вылетишь нафиг с трассы😄 Из-за пандемии количество желающих войти в айти увеличилось, из-за чего увеличился и демпинг. А клиент не всегда понимает, чем час условного сеньора стоимостью за 2к отличается от часа джуна за 700 р.
За этот год суммарное количество пользователей моих ботов переросло 100к и это очень радует! Вот так мое хобби начало приносить пассивный доход. Да немного, но по крайней мере окупается сервер и остаётся ещё на вкусняшки))
Хочу всем пожелать в Новом 2022 году крепкого здоровья, имхо, сейчас это как никогда важно. А ещё желаю вам удачи и упорства! Двигайтесь к намеченной цели и все получится! Пусть в новом году жизнь станет хоть немного, но лучше, проще, легче, позитивнее. Пусть исполнятся заветные мечты. С наступающим Новым годом!
🍾🍾🍾🎊🎊🎊🎄🎄🎄
За это время много всего изменилось в моей жизни. Из глобального - переезд в другой город, другую страну. Теперь я живу в Питере и кайфую от этого города. После моего родного провинциального Тирасполя, тут я почувствовал себя живым😊 Ритм жизни совершенно иной, много интересного вокруг - красивые места, развлечения.
Но есть и обратная сторона медали - расстояния.. Когда тебе куда-то нужно поехать, это занимает достаточно много времени. И этого времени постоянно не хватает. А писать сюда просто так, для галочки, или постоянно делиться контентом из других каналов - это не мое.
За это время было много интересных проектов, постоянно приходится обучаться новому и расти. Не будешь следить за тенденциями - вылетишь нафиг с трассы😄 Из-за пандемии количество желающих войти в айти увеличилось, из-за чего увеличился и демпинг. А клиент не всегда понимает, чем час условного сеньора стоимостью за 2к отличается от часа джуна за 700 р.
За этот год суммарное количество пользователей моих ботов переросло 100к и это очень радует! Вот так мое хобби начало приносить пассивный доход. Да немного, но по крайней мере окупается сервер и остаётся ещё на вкусняшки))
Хочу всем пожелать в Новом 2022 году крепкого здоровья, имхо, сейчас это как никогда важно. А ещё желаю вам удачи и упорства! Двигайтесь к намеченной цели и все получится! Пусть в новом году жизнь станет хоть немного, но лучше, проще, легче, позитивнее. Пусть исполнятся заветные мечты. С наступающим Новым годом!
🍾🍾🍾🎊🎊🎊🎄🎄🎄
👍2
Проверка ip на вхождение в подсеть по маске в php
Бывает так, что нужно обязательно проверить, пришел ли запрос с допустимого ip. Например при написании платежных модулей мы знаем, что запрос должен прийти с одного из банковских ip и нам обязательно нужно проверить этот ip, дабы исключить несанкционированный доступ злоумышленника.
Когда у банка десяток заранее известных ip, решение сводится к банальной проверке if (in_array($ip, $ipArray)), но что делать, если таких ip может быть например 510? (реальный пример - банк Тинькофф присылает запросы с маски сети 91.194.226.0/23). В этом случае нужно проверять по маске.
Я давно уже предпочитаю не изобретать велосипеды, а искать адекватные готовые решения и в этот раз тоже погуглил и нарыл отличное решение:
Используем таким способом:
ps. телеграм добавил возможность ставить реакции на посты, так что прошу использовать эту возможность, чтобы я понимал насколько интересна вам данная тема
Бывает так, что нужно обязательно проверить, пришел ли запрос с допустимого ip. Например при написании платежных модулей мы знаем, что запрос должен прийти с одного из банковских ip и нам обязательно нужно проверить этот ip, дабы исключить несанкционированный доступ злоумышленника.
Когда у банка десяток заранее известных ip, решение сводится к банальной проверке if (in_array($ip, $ipArray)), но что делать, если таких ip может быть например 510? (реальный пример - банк Тинькофф присылает запросы с маски сети 91.194.226.0/23). В этом случае нужно проверять по маске.
Я давно уже предпочитаю не изобретать велосипеды, а искать адекватные готовые решения и в этот раз тоже погуглил и нарыл отличное решение:
protected function isCorrectIp($ip, $range): bool
{
list ($subnet, $bits) = explode('/', $range);
if ($bits === null) {
$bits = 32;
}
$ip = ip2long($ip);
$subnet = ip2long($subnet);
$mask = -1 << (32 - $bits);
$subnet &= $mask;
return ($ip & $mask) == $subnet;
}
Используем таким способом:
if ( ! $this->isCorrectIp($ip, '91.194.226.0/23')) {
$this->logWrite('wrong ip: '.$ip);
die();
}ps. телеграм добавил возможность ставить реакции на посты, так что прошу использовать эту возможность, чтобы я понимал насколько интересна вам данная тема
👍6❤2👎1
Очистка логов docker контейнеров
Если не настроить логирование в докер и не ограничить размер файлов логов, их размер может быть ооочень большим))
Сегодня решил проверить свободное место на своем сервере и был шокирован, что занято почти 80% места. Начал анализировать куда ушло место с помощью утилиты ncdu, о которой писал тут и увидел, что один из контейнеров в docker на свой лог сожрал более 30 гигов😱 30 гигов мусора это серьезно))
В первую очередь нужно очистить эти логи, а уже потом по-хорошему настроить ограничения на размер файлов логов. Для очистки всех контейнеров сразу можно использовать простую команду:
Если хотите проверить размер логов, можно использовать:
Ну и конечно стоит настроить логирование https://docs.docker.com/config/containers/logging/json-file/ 😉
Если не настроить логирование в докер и не ограничить размер файлов логов, их размер может быть ооочень большим))
Сегодня решил проверить свободное место на своем сервере и был шокирован, что занято почти 80% места. Начал анализировать куда ушло место с помощью утилиты ncdu, о которой писал тут и увидел, что один из контейнеров в docker на свой лог сожрал более 30 гигов😱 30 гигов мусора это серьезно))
В первую очередь нужно очистить эти логи, а уже потом по-хорошему настроить ограничения на размер файлов логов. Для очистки всех контейнеров сразу можно использовать простую команду:
sudo sh -c "truncate -s 0 /var/lib/docker/containers/*/*-json.log"
Если хотите проверить размер логов, можно использовать:
sudo sh -c "du -ch /var/lib/docker/containers/*/*-json.log"
Ну и конечно стоит настроить логирование https://docs.docker.com/config/containers/logging/json-file/ 😉
👍2
Запуск python скриптов в Windows 10
Решил написать небольшую заметку для себя и для всех, кто столкнется с такой ситуацией, когда нужно запустить некий скрипт на python из под windows 10. Расписывать как установить сам python не буду, будем считать что он уже установлен)
Переходим в папку с python проектом и открываем там консоль. Далее пишем поочередно:
Если все прошло успешно и виртуальное окружение env создано и активировано - запускаем установку зависимостей (если необходимо)
Ну и далее уже запускаем сам скрипт в окружении.
А чтобы выйти из окружения, набираем
#python #памятка #windows10
- - - - - - - - - -
ставь лайк, если было полезно😉
Решил написать небольшую заметку для себя и для всех, кто столкнется с такой ситуацией, когда нужно запустить некий скрипт на python из под windows 10. Расписывать как установить сам python не буду, будем считать что он уже установлен)
Переходим в папку с python проектом и открываем там консоль. Далее пишем поочередно:
python -m venv env
.\env\Scripts\activate
Если все прошло успешно и виртуальное окружение env создано и активировано - запускаем установку зависимостей (если необходимо)
python -m pip install -r requirements.txt
Ну и далее уже запускаем сам скрипт в окружении.
А чтобы выйти из окружения, набираем
deactivate
#python #памятка #windows10
- - - - - - - - - -
ставь лайк, если было полезно😉
👍4
Файловая система доступна только для чтения
Бывает такой баг, когда используется 2 системы на одном жестком диске (windows и linux). В моем случае винда была первой, а потому у старых разделов файловая система стоит NTFS. Потом я поставил manjaro (на котором уже почти год работаю) и иногда при доступе к старым NTFS разделам (после включения винды) получаю ошибку доступа. Решается все довольно просто:
Ставим пакет
После окончания исправления при необходимости назначаем пользователя разделу или папке
Бывает такой баг, когда используется 2 системы на одном жестком диске (windows и linux). В моем случае винда была первой, а потому у старых разделов файловая система стоит NTFS. Потом я поставил manjaro (на котором уже почти год работаю) и иногда при доступе к старым NTFS разделам (после включения винды) получаю ошибку доступа. Решается все довольно просто:
Ставим пакет
ntfs-3g
Потом выполняем исправление нашего разделаsudo ntfsfix /dev/nvme0n1p8
/dev/nvme0n1p8 - тут пишем название нужного раздела (у меня это /dev/nvme0n1p8)После окончания исправления при необходимости назначаем пользователя разделу или папке
sudo chown -R root:root /media/E/
#памятка #linux👍1
Решение проблемы Docker: (Permission denied)
Создайте группу Docker, если ее еще нет:
Создайте группу Docker, если ее еще нет:
sudo groupadd docker
Просмотрите количество суперпользователей в системе: grep -Po '^sudo.+:\K.*$' /etc/group
Экспортируйте пользователя в командной оболочке Linux: export USER=demoUser
Добавьте пользователя в группу Docker: sudo usermod -aG docker $USER
Запустите следующую команду/ войдите или выйдите из системы: newgrp docker
Проверьте, работает ли Docker исправно или нет: docker run hello-world
Если проблема сохраняется, перезагрузите систему: reboot
Если это не помогло, выполните следующую команду: sudo chmod 660 /var/run/docker.sock
#памятка #docker #права #linux👍1