This media is not supported in your browser
VIEW IN TELEGRAM
Топ 3 алгоритмические игры, которые запустятся на любой платформе и мощности железа:
1. Human Resource Machine / 7 Billion Humans
Две части одной игры. В первой нужно составить алгоритм управления одним работником, во второй — целой толпой трудяг, для перемещения предметов или людей в определённом порядке.
2. Opus Magnum
(прикреплённая анимация). Мы выступаем в роли студента-алхимика, которому поручают синтезировать разные вещества с помощью механизмов и команд для них. Помимо количества шагов в эффективности решения учитывается рабочая площадь и цена механизмов.
3. while True: learn()
Игрушечный симулятор машинного обучения. Имея на входе набор данных, представленных в виде цветных фигурок, нам нужно с помощью узлов условий и балансиров рассортировать их в соответствии с заданием.
Во всех играх после каждого задания выводится статистика эффективности решения, что помогает оценить свои успехи.
#game #algorithm #pc
1. Human Resource Machine / 7 Billion Humans
Две части одной игры. В первой нужно составить алгоритм управления одним работником, во второй — целой толпой трудяг, для перемещения предметов или людей в определённом порядке.
2. Opus Magnum
(прикреплённая анимация). Мы выступаем в роли студента-алхимика, которому поручают синтезировать разные вещества с помощью механизмов и команд для них. Помимо количества шагов в эффективности решения учитывается рабочая площадь и цена механизмов.
3. while True: learn()
Игрушечный симулятор машинного обучения. Имея на входе набор данных, представленных в виде цветных фигурок, нам нужно с помощью узлов условий и балансиров рассортировать их в соответствии с заданием.
Во всех играх после каждого задания выводится статистика эффективности решения, что помогает оценить свои успехи.
#game #algorithm #pc
👍1🔥1
На днях запускаем в прод веб-сайт с е-мейл подпиской на промокоды от нашего проекта «Промокоды Литрес».
Бэкенд: FastAPI
Фронтенд: Bootstrap Studio
Дополнительно
* Google reCAPTCHA v3 - защищает форму от вредного трафика и определяет рейтинг посетителей, на основе которого можно менять поведение сайта и легко ограничивать доступ подозрительному трафику.
* SQLAlchemy - ORM
* HTML5/JS - валидация данных на стороне пользователя
* Pydantic - валидация данных на стороне сервера
* itsdangerous - передача данных через недоверенные среды (позволяет генерировать зашифрованные токены для создания ссылок на подтверждение почты и отписку от рассылки).
* Gunicorn/Uvicorn - Сервер
Ссылка
Проект для тестирования развёрнут на litres.rykov7.ru, ссылки на официально работающий вариант будут размещены в соцсетях.
#web #fastapi #promo
Бэкенд: FastAPI
Фронтенд: Bootstrap Studio
Дополнительно
* Google reCAPTCHA v3 - защищает форму от вредного трафика и определяет рейтинг посетителей, на основе которого можно менять поведение сайта и легко ограничивать доступ подозрительному трафику.
* SQLAlchemy - ORM
* HTML5/JS - валидация данных на стороне пользователя
* Pydantic - валидация данных на стороне сервера
* itsdangerous - передача данных через недоверенные среды (позволяет генерировать зашифрованные токены для создания ссылок на подтверждение почты и отписку от рассылки).
* Gunicorn/Uvicorn - Сервер
Ссылка
Проект для тестирования развёрнут на litres.rykov7.ru, ссылки на официально работающий вариант будут размещены в соцсетях.
#web #fastapi #promo
👍2🔥1👏1
Несколько моментов, повышающих эффективность использования VPS (1/2 часть):
1. Выбор дистрибутива
До тех пор пока не появилась весомая причина выбрать что-то другое, выбирайте Debian последней версии. Debian занимает памяти (как ОЗУ, так и ПЗУ) меньше конкурентов, что экономит драгоценные ресурсы при прочих равных, также у Debian одно из самых больших сообществ.
2. Подключение
Пользуясь старыми статьями, многие берут в привычку пользоваться PuTTY, WSL и прочими костылями в качестве SSH-клиента на Windows. В Windows из коробки есть “OpenSSH for Windows”. Также, лучше использовать оболочки через современный терминал Windows Terminal, он позволяет создавать быстрые ярлыки и пользоваться вкладками.
#server #linux #trick
1. Выбор дистрибутива
До тех пор пока не появилась весомая причина выбрать что-то другое, выбирайте Debian последней версии. Debian занимает памяти (как ОЗУ, так и ПЗУ) меньше конкурентов, что экономит драгоценные ресурсы при прочих равных, также у Debian одно из самых больших сообществ.
2. Подключение
Пользуясь старыми статьями, многие берут в привычку пользоваться PuTTY, WSL и прочими костылями в качестве SSH-клиента на Windows. В Windows из коробки есть “OpenSSH for Windows”. Также, лучше использовать оболочки через современный терминал Windows Terminal, он позволяет создавать быстрые ярлыки и пользоваться вкладками.
#server #linux #trick
👍1
Несколько моментов, повышающих эффективность использования VPS (2/2 часть):
3. Оболочка
Как-то раз, попробовав zsh-оболочку на Kali, я решил, что в бородатого bash-админа наигрался и пора установить zsh и на свой сервер. Это более умная и приятная внешне оболочка, которая по-умолчанию используется в MacOS, и отлично работает на Debian. Плагины, которые делают её ещё веселее и комфортнее: oh-my-zsh, git, zsh-autosuggestions, zsh-syntax-highlighting.
4. Навигация
Неопытному юзеру приходится вводить кучу команд, чтобы промониторить состояние сервисов. Эту проблему изящно решает tmux — лёгкий менеджер окон с сохранением состояния и настраиваемым внешним видом, который поддерживает разбитие экрана на окна и переключение между ними с поддержкой мыши. А Windows Terminal позволит создать удобный ярлык для подключения к сессии tmux:
3. Оболочка
Как-то раз, попробовав zsh-оболочку на Kali, я решил, что в бородатого bash-админа наигрался и пора установить zsh и на свой сервер. Это более умная и приятная внешне оболочка, которая по-умолчанию используется в MacOS, и отлично работает на Debian. Плагины, которые делают её ещё веселее и комфортнее: oh-my-zsh, git, zsh-autosuggestions, zsh-syntax-highlighting.
4. Навигация
Неопытному юзеру приходится вводить кучу команд, чтобы промониторить состояние сервисов. Эту проблему изящно решает tmux — лёгкий менеджер окон с сохранением состояния и настраиваемым внешним видом, который поддерживает разбитие экрана на окна и переключение между ними с поддержкой мыши. А Windows Terminal позволит создать удобный ярлык для подключения к сессии tmux:
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe ssh root@123.123.123.123 -t 'tmux a'#server #linux #trick
🔥1
Правильный алгоритм действий программиста
1. Анализ задачи - всё ли сказано в задаче? что нужно уточнить?
2. Анализ текущего состояния - редко бывает когда начинаешь с нуля, чаще задача в рамках проекта: интеграции, БД, API, сервера и т.д.
3. Декомпозиция - разбиваем задачу на части. Понимаем какие куски и в каком порядке делаем.
4. Построение архитектуры решения первой подзадачи - из чего состоит решение: из каких классов , неймспейсов и т.д. Решение должно быть в стиле окружающего кода.
5. Реализация - само написание кода.
6. Тестирование - ручное и покрытие юнит-тестами хотя бы основного функционала.
7. Рефакторинг - сначала код пишется лишь бы заработало, только потом наводим порядок.
8. Повторение пунктов для всех подзадач (с п. 4)
9. Общее тестирование решения.
10. Завершение задачи.
1. Анализ задачи - всё ли сказано в задаче? что нужно уточнить?
2. Анализ текущего состояния - редко бывает когда начинаешь с нуля, чаще задача в рамках проекта: интеграции, БД, API, сервера и т.д.
3. Декомпозиция - разбиваем задачу на части. Понимаем какие куски и в каком порядке делаем.
4. Построение архитектуры решения первой подзадачи - из чего состоит решение: из каких классов , неймспейсов и т.д. Решение должно быть в стиле окружающего кода.
5. Реализация - само написание кода.
6. Тестирование - ручное и покрытие юнит-тестами хотя бы основного функционала.
7. Рефакторинг - сначала код пишется лишь бы заработало, только потом наводим порядок.
8. Повторение пунктов для всех подзадач (с п. 4)
9. Общее тестирование решения.
10. Завершение задачи.
👍1
Install a specific version of Python on Debian (compile)
To install a specific previous version of Python on Debian, you can follow these steps:
1. Update the package lists for upgrades and new package installations:
2. Install the necessary prerequisites for building Python:
3. Download the source code for the Python version you want to install. You can find the versions on the Python website (https://www.python.org/downloads/source/) or choose from available versions at https://www.python.org/ftp/python/. For example, let’s assume you want to install Python 3.12.2:
4. Extract the downloaded source code archive:
5. Enter the extracted directory:
6. Configure the build:
7. Build and install Python:
The use of
8. Verify that the installation was successful and check the installed Python version:
This command should display the version number of the Python installation you just installed.
You should now have the installed Python version (in this case, Python 3.12.2) installed on your Debian system. You can use it by running
The command
-
-
-
The
By using
For example, if your system has 4 CPU cores, the command
Using the maximum available CPU cores is particularly useful when building large software projects, as it can reduce the build time significantly. However, it’s important to note that using too many parallel jobs may consume excessive resources and potentially lead to resource contention, so it’s advisable to strike a balance based on your system’s capabilities.
To install a specific previous version of Python on Debian, you can follow these steps:
1. Update the package lists for upgrades and new package installations:
sudo apt update
2. Install the necessary prerequisites for building Python:
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libsqlite3-dev libreadline-dev libffi-dev libbz2-dev
3. Download the source code for the Python version you want to install. You can find the versions on the Python website (https://www.python.org/downloads/source/) or choose from available versions at https://www.python.org/ftp/python/. For example, let’s assume you want to install Python 3.12.2:
wget https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz
4. Extract the downloaded source code archive:
tar -xf Python-3.12.2.tgz
5. Enter the extracted directory:
cd Python-3.12.2
6. Configure the build:
./configure --enable-optimizations
7. Build and install Python:
make -j$(nproc)
sudo make altinstall
The use of
make altinstall
instead of make install
is important to prevent overwriting the default system Python installation.8. Verify that the installation was successful and check the installed Python version:
python3.12.2 -V
This command should display the version number of the Python installation you just installed.
You should now have the installed Python version (in this case, Python 3.12.2) installed on your Debian system. You can use it by running
python3.12.2` instead of `python3
for that specific version.The command
make -j$(nproc)
is used during the build process of software from source code. Let’s break down the command to understand its components:-
make
is a build automation tool that reads a file called Makefile
to execute a series of commands to build and compile software.-
-j
is a flag or option that specifies the number of parallel jobs (threads or processes) that make
can use for building the software.-
$(nproc)
is a command substitution that retrieves the number of processing units (CPU cores) available on the system.The
nproc
command outputs the number of processing units (CPU cores) available on the system. The $(...)
syntax is used to capture the output of the nproc
command and substitute it into the make
command.By using
-j$(nproc)
, we are telling make
to use the maximum number of available CPU cores for parallelizing the build process. This can significantly speed up the compilation and build process by dividing the work among multiple cores, thereby utilizing the system’s resources efficiently.For example, if your system has 4 CPU cores, the command
make -j$(nproc)
will be expanded to make -j4
, instructing make
to use four parallel jobs for the build process.Using the maximum available CPU cores is particularly useful when building large software projects, as it can reduce the build time significantly. However, it’s important to note that using too many parallel jobs may consume excessive resources and potentially lead to resource contention, so it’s advisable to strike a balance based on your system’s capabilities.
👍1🔥1