Search
Write a publication
Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

Что можно рассказать о функциях Python на примере кофемашины?

Reading time7 min
Views6.8K
Поделюсь с вами одной из моих любимых аналогий.

Я раньше сам молол себе кофе. Купил такую старомодную ручную кофемолку с металлической воронкой, крутильной рукояткой и маленьким деревянным подносом, на который ссыпается смолотый кофе.

Может быть, где-то у меня она ещё валяется.

Теперь я слишком занят. Перешёл на кофемашину. Она из таких, которые заправляются капсулами – то есть, максимально потворствует лени, а значит, работает максимально эффективно. Привожу этот пример на лекциях по программированию для начинающих – когда объясняю, что при работе над кодом леность – это хорошо, она свидетельствует об эффективности.
Читать дальше →

Выбираем роутер с VPN

Level of difficultyEasy
Reading time3 min
Views87K

Решил наконец поменять свой старенький маршрутизатор Linksys и купить новый гигабитный роутер со встроенным VPN – именно так большинство ритейлеров называют функцию, не уточняя, что имеется в виду: VPN-клиент или VPN-сервер.

После некоторых поисков удалось найти лишь одного крупного продавца – оранжевый из трех букв, на сайте которого для роутеров реализована глубокая фильтрация по VPN параметрам – протоколу и режиму работы (клиент/сервер).

И вот, имея список из нескольких десятков кандидатов для покупки, встал главный вопрос – а какую скорость через VPN сможет выдать каждый из них?

Читать далее

Как прошить oculus quest 2 в 2024 году без vpn и без лишних заморочек?

Reading time2 min
Views44K

Итак, где-то в середине июля я стал счастливым владельцем quest 2. Я выбрал его, потому что несмотря на санкции этот шлем был лучшем по соотношению цена/качество. Но вот проблема: обновить шлем до последней версии официальным способом было невозможно.

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

Читать далее

Как мне захотелось систематизировать виды тестирования

Level of difficultyEasy
Reading time11 min
Views42K

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

Читать далее

Бесплатная open-source альтернатива Google Photos и iCloud Photos

Level of difficultyEasy
Reading time3 min
Views58K

Как-то мы лежали в кровати с нашим малышом и жена сказала, что фотографий и видео с ним стало больше и она не хочет использовать платное приложение. Примерно так начинается рассказ создателя Immich – бесплатного open-source решения для хранения фотографий и видео.

Надо сказать, в последние годы я тоже регулярно пытался найти бесплатную self-hosted альтернативу Google Photos и iCloud, однако до сегодняшнего дня функциональных и вместе с тем простых в настройке решений я не встречал. Тот же Nextcloud всегда казался чересчур громоздким. Immich же, напротив, сразу завоевал моё сердце, и вот, после нескольких недель его использования, с радостью делюсь своим рабочим примером.

Читать далее

Кодирование с кодеком HEVC простым языком — гайд на FFmpeg. Высокое качество, но низкий вес

Level of difficultyEasy
Reading time11 min
Views35K

Казалось бы, довольно простой вопрос: «Чем сжать видео?». На ум сразу приходят Handbrake, Movavi Converter или ещё что-нибудь пострашнее. Однако когда речь заходит о более гиковском подходе с упором на максимальное качество и экономию места, такие программы сложно назвать инструментами. Равно как и для обратной ситуации, когда картинку нужно сильно сжать и сохранить в целостности большую часть полезной информации. Все эти программы только лишь предоставляют набор наиболее общих конфигов для обычной съёмки и 2D.

В этой статье мы изучим, как при помощи самого большого сборника свободных библиотек FFmpeg научиться кодировать видео самому именно под ваши задачи.
Читать дальше →

Мега-Учебник Flask Глава 1: Привет, мир! (издание 2024)

Level of difficultyMedium
Reading time18 min
Views68K

Добро пожаловать! Вы собираетесь отправиться в путешествие, чтобы научиться создавать веб‑приложения с помощью Python и фреймворка Flask. В этой первой главе вы узнаете, как настроить проект Flask. К концу этой главы на вашем компьютере будет запущено простое веб‑приложение Flask!

Начать изучение

Magic bash script для установки драйверов Nvidia и CUDA (и Docker) в Ubuntu 22.04 и 24.04

Level of difficultyEasy
Reading time3 min
Views4.6K

Установка драйверов для видеокарт от Nvidia с одной стороны сейчас не вызывает столько проблем, как было еще 10–15 лет назад, с другой стороны если с драйверами еще как-то народ управляется, то вот работоспособную CUDA получить могут не все. У себя в HOSTKEY мы создали специальный скрипт, который пользователь может запустить самостоятельно и получить рабочее окружение для запускавсего — от PyTorch до Stable Diffusion и Ollama с поддержкой GPU.

Читать далее

Как и сети

Level of difficultyMedium
Reading time4 min
Views7.1K

ИТ-инфраструктуры становятся все более сложными, теперь мы обычно работаем с десятками и сотнями коммутаторов, маршрутизаторов и межсетевых экранов.

Если нам нужно применить одну и ту же команду к нескольким устройствам, то проще всего будет ansible.

Если нам нужно применить одну и ту же команду, но с разными параметрами, то в этом случае Python и netmiko пригодятся.

Используя ansible, мы можем опрашивать несколько коммутаторов несколькими разными командами и записывать вывод команд в текстовые файлы, но с Python и netmiko мы можем объединить вывод нескольких разных команд, записав только нужную нам информацию в один выходной CSV-файл.

Почему CSV? CSV-файл удобен, потому что мы можем открыть его в Excel, и легко скрыть ненужные нам столбцы, сгруппировать или упорядочить по нужным нам столбцам.

Если мы будем ежедневно создавать один такой файл со всех коммутаторов, мы легко сможем увидеть разницу в состоянии подключенных устройств, просто открыв два файла в редакторе Notepad++ в режиме сравнения.

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

Вот команды:

Читать далее

Основы Docker: контейнеризация, Dockerfile и Docker Compose. Часть 2

Level of difficultyMedium
Reading time8 min
Views14K

Привет, Хабр! Меня зовут Толя, я лидер компетенции Java в Цифровом СИБУРе. Наш прошлый материал о Docker собрал классный фидбэк, поэтому мы решили развить тему и подготовить ещё несколько статей, двигаясь от простого к сложному.

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

Читать далее

Kubernetes на сковородке: готовим самые вкусные кластеры

Level of difficultyEasy
Reading time8 min
Views6.3K

Сегодня технологические компании стоят перед выбором без выбора: если перед нами не стоит узкоспециализированная задача, то мы по дефолту идем работать в Kubernetes. Эта система универсальна и проверена годами, поэтому обойтись без нее практически невозможно.

Привет! Меня зовут Игорь Титов, я Product Lead системных инженеров в Garage Eight. В этой статье расскажу, что такое контейнеризация, как с ней помогает Kubernetes и почему важно уметь правильно его готовить.

Читать далее

1001-ый способ миграции на асинхронный Python

Level of difficultyMedium
Reading time5 min
Views8.6K

Если вы пишите на Python, то наверняка давно хотите все свои сервисы переписать на asyncio. Вот и я хотел, но не из‑за того, что стильно‑модно‑молодёжно, а потому что уже болело.

Об одном таком кейсе я и расскажу, а заодно поделюсь интересным подходом и готовой реализацией.

Читать ещё одну статью про GIL и asyncio

Как построить поезд в Minecraft с помощью Python – урок для детей

Level of difficultyEasy
Reading time5 min
Views8.3K

Предлагаем разобраться, как строить объекты во вселенной «Майнкрафт» на примере создания поезда и его программирования на «Питоне». Туториал предназначен для детей от 9–10 лет.

Minecraft — игра, популярная среди детей и подростков. Они проводят время в виртуальной вселенной, общаются, а при определенных условиях получают возможность создавать постройки. И хотя изначально игра была написана на языке Java, а после переписана с применением C++, именно «Питон» отлично подходит для начинающих и опытных мододелов. Его синтаксис только кажется сложным: с программированием на Python успешно справляются даже младшие школьники и подростки от 9 до 13 лет и старше.

Читать далее

Как правильно писать тесты? Часть 1

Level of difficultyMedium
Reading time2 min
Views8.3K

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

Обсудим три базовых подхода к тестированию чего‑либо в программе:

Читать далее

Python: как переменные работают на самом деле? Погружаемся в байткод и C

Level of difficultyHard
Reading time8 min
Views18K

Привет! Меня зовут Никита Соболев, я core-разработчик языка программирования CPython, а так же автор серии видео про его устройство.

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

Под катом куча кишков питона и видео на 46 минут с дополнительными кишками питона (ни один настоящий питон не пострадал при написании данной статьи).

Читать далее

Методы моделирования атак на основе сценариев использования

Reading time9 min
Views4.3K

Привет! Меня зовут Даниил Нейман, я работаю в Positive Technologies в направлении развития инициатив ИБ-сообществ, где я активно занимаюсь поддержкой и развитием open-source-проектов и сообществ. Одна из наших целей — продвижение обмена знаниями между специалистами в области информационной безопасности.

В наше время, когда постоянно появляются новые и все более сложные кибератаки, специалистам трудно провести быстрый анализ и выявить сложные закономерности действий киберпреступников, которые приводят к успешной кибератаке. Хорошо продуманные системы, описывающие все возможные действия злоумышленника, называются методами моделирования атак и могут решить эту проблему.

Методы моделирования атак (attack modelling techniques), или AMT, используются для моделирования и визуализации последовательности событий, приводящих к успешной кибератаке на системы. Их можно разделить на три категории: 1. методы, основанные на диаграммах сценариев использования, 2. темпоральные методы (акцент на хронологическом порядке и последовательности событий в кибератаке) и 3. методы, основанные на графах.

В этой статье расскажу про первую категорию методов — на основе сценариев использования (use case methods).

Подробности

Как создать игру «Армия големов» в Minecraft – программирование на Python для детей

Level of difficultyEasy
Reading time4 min
Views5K

Хотите сделать мод на големов в игре «Майнкрафт»? В этом поможет язык Python. Предлагаем начинающим мододелам использовать его по представленной инструкции, чтобы разобраться, как создать игру «Армия големов». Урок предназначен для детей 9–10 лет и старше.

«Дети не умеют писать код». «Им это не интересно». «IT — не детская, а взрослая тема». Это ложные установки, хотя они и имеют место. Мы считаем, что детей, увлеченных геймингом, нетрудно сделать начинающими программистами: на примере популярной игровой вселенной Minecraft это возможно благодаря языку Python. С его помощью даже младшие школьники могут создавать собственные моды для популярной инди‑игры в жанре песочницы.

А мы предлагаем нашим читателям разобраться, как создать собственный проект на «Питоне» и запустить его в Minecraft. Будет просто и интересно: нами подготовлена краткая инструкция, а в конце представлен видеоролик, в котором наглядно и с примерами описаны основные шаги.

Приступим?

Читать далее

Программирование на C в Linux на примере создания командной оболочки: часть 2

Level of difficultyMedium
Reading time55 min
Views10K

Я решил недавно улучшить свой навык владения C, путем написания проектов. Самая первая мысль, которая пришла мне на ум — это командный интерпретатор, командная оболочка, shell проще говоря. А также я расскажу о системе сборки make, и о том, как правильно писать и документировать C-код.

В первой части мы задали базовую структуру кода, разобрались с чтением вывода и созданием процессов. А в этой части нашей задачи будет дойти с альфа-стадии на бета-стадию — то есть реализовать прочий важный функционал, такой как: минимальная поддержка плагинов; автодополнение; подсветка синтаксиса; переменные окружения, новые встроенные утилиты.

Да-да, мы превратим наш велосипед в мопед! Я вынес из прошлой статьи итоги, и попытался решить все проблемы и замечания. Продолжаем погружение в пучины разработки под Linux!

Читать далее

Ассемблер для программистов на языках высокого уровня: Hello World

Level of difficultyMedium
Reading time6 min
Views35K

Если вы начинали изучение программирования с JavaScript, Rust, C или любого другого высокоуровневого языка, то ассемблерный код может показаться вам непонятным или даже пугающим.

Рассмотрим следующий код:

section .data
  msg db "Hello, World!"

section .text
  global _start

_start:
  mov rax, 1
  mov rdi, 1
  mov rsi, msg
  mov rdx, 13
  syscall

  mov rax, 60
  mov rdi, 0
  syscall

К счастью, по второй строке мы можем понять, что он делает.

Здесь нет ничего привычного нам: мы не видим ни условных операторов, ни циклов, нет никакого способа создавать функции… Да даже у переменных нет имён!

С чего же вообще начать?

Это небольшое введение предназначено для того, чтобы познакомить имеющих опыт в программировании с миром ассемблера. Мы обсудим основы языка и сопоставим их с конструкциями высокоуровневого программирования.

Завершив прочтение этого руководства, вы сможете ориентироваться в ассемблерном коде, будете знать, где искать информацию, и даже сможете самостоятельно писать простые программы.
Читать дальше →

Делаем нагрузочные тесты за 5 минут (ну почти)

Level of difficultyEasy
Reading time5 min
Views6K

Всем привет! Нагрузочные тесты за 5 минут (ну почти).

Не так давно делился историей о том, как решали проблему E2E автотестов в маленьком проекте. Продолжим историю).

Читать далее

Information

Rating
8,056-th
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity