Pull to refresh
0
0
Дмитрий @ex_ineris

QA Engineer

Send message

OpenSource, или как я перестал бояться и полюбил автотесты

Level of difficultyEasy
Reading time5 min
Views4.7K

Всем привет! Меня зовут Илья. Я давно читаю habr, не так долго занимаюсь программированием и еще чуть меньше времени хочу написать здесь статью. Не то, чтобы это идея фикс (или hotfix), но лучше опубликоваться и жалеть, чем поставить в план на «когда-нибудь потом», ничего не сделать, и «получить за это премию». Таких задач у меня уже накопилось на несколько жизней вперед, поэтому, приняв волевое решение, я выделил время на графоманию.

В прошлом мне доводилось писать околонаучные статьи и вести блог про путешествия, совершенные в разных стадиях трезвости (на рецензируемые статьи ВАК про пьяные авантюры, к сожалению, не хватило грантов). Но поскольку срок давности по этим событиям давно прошел, а все самое значимое я забыл, то опишу свой недавний опыт, связанный с OpenSource. 

Идея открытого программного обеспечения мне нравится. Люди, создающие OpenSource проекты вызывают интерес, особенно, когда их продукты востребованы и конкурентноспособны. Двигать индустрию IT в свободное от работы время, вместо того, чтобы предаваться гедонизму — достойно уважения. Особенно, когда сам активно пользуешься подобными продуктами, вместо платных аналогов или ручного труда.

Читать далее

Pytest. Гайд для тех, кто ни разу про него не слышал

Level of difficultyEasy
Reading time24 min
Views18K

Недавно на работе передо мной возникла задача максимально быстро погрузиться в автоматизированное тестирование с ранее мной не использовавшимся фреймворком pytest. Почитав порядка десяти статей на Хабре я понял, что в каждой из статей есть много всего интересного, а чтобы системно погрузиться — необходимо идти читать документацию. Я решил, в привычной мне манере, разобраться и систематизировать самый сок для того, чтобы быстро въехать в суть и важные тонкости положив основу для дальнейшего использования. 

Всем интересующимся — добро пожаловать под кат!

Читать далее

Переезжаем в Firefox. Советы по настройке. Продолжение

Level of difficultyEasy
Reading time5 min
Views15K

Хочу поделиться своим опытом перехода с Chrome браузеров на Firefox.
Изначально я хотел добавить комментарий к одноименной статье, но в процессе написания понял, что комментарий будет слишком длинным и его увидит мало людей. Отдельная статья лишней не будет в продвижении остатков свободы в виде браузера от Mozilla Corporation.

Долгого предисловия не будет, в телеграм не приглашаю. Идём сразу к делу.

Читать далее

Создаем 'Сапёр' на Python с нуля: пошаговое руководство для начинающих

Level of difficultyEasy
Reading time12 min
Views7.8K

Разбираем создание «Сапёра» на Python. Идеальный проект для начинающих, чтобы на практике освоить Pygame и основы геймдева.

Внутри — подробное пошаговое руководство, где мы:
• Настроим рабочее окружение с venv.
• Напишем игровую логику с нуля, отделив её от графики.
• Реализуем рекурсивный алгоритм для открытия пустых полей.
• Отрисуем всё на экране и научим игру реагировать на клики.

Читать далее

DevSecOps за 20 миллионов? Я сделал свой сканер и выложил бесплатно

Reading time3 min
Views10K

Я раньше работал обычным безопасником. Кто-то называет таких «ИБшниками», кто-то — «параноиками», кто-то — «тем самым занудой, который мешает жить».
Каждый день у меня был один и тот же диалог:

Тимлид: «У нас релиз в пятницу, отстань со своим сканированием».
Менеджер: «В бюджете только Jira и пицца, какие ещё 15 миллионов за софт?»
Разработчик: «Код сгенерил AI, билд прошёл, значит, всё норм».

Читать далее

Автоматика через telnet

Reading time3 min
Views4.2K

Я тут периодически пишу про всякие штуки, с использованием shell‑скриптов и разных linux‑утилит — в частности, чтобы лишний раз продемонстировать, что в линуксе не обязательно требуется «найти программу которая умеет делать ХХХХХ» — во многих случаях у вас уже есть всё необходимое, нужно только знать как использовать.

Вот, например, такая задача. У меня выход в интернет через роутер Keenetic. Роутеры эти неплохие, умеют, в частности, вести контроль работоспособности нескольких подключений, автоматически переключаться между ними.
Отвалилось соединение по каналу А — переходим на канал Б. Восстановилось — переходим обратно. Очень удобная функция.

До недавнего времени работало идеально, в том смысле что всё происходило само собой, и об обрыве канала А я узнавал только из воплей в местном чате.
Но с некоторого времени провайдер Б начал блокировать что не надо, и создавать проблемы на ровном месте, а поэтому потребовалось принимать некоторые меры безопасности.

Но для этого надо отлавливать факт переключения. И как это сделать, если роутер не умеет об этом как‑либо оповещать?

Читать далее

Как Python делает жизнь геймера проще: от Telegram-ботов до сортировки скриншотов

Reading time4 min
Views5.1K

Компьютерные игры прошли громадный путь — от аркад 70-х до современных AAA-проектов, стоимость которых сопоставима с крупнейшими инженерными постройками. Геймдев — это не только искусство создания миров, но и многомиллиардная индустрия, где экономика играет ключевую роль.

Разработка AAA-игр требует бюджетов в десятки и сотни миллионов долларов, а рынок инди-игр и пользовательского контента ежегодно приносит миллионы благодаря платформам вроде Steam и моддинг-комьюнити. Моддеры, создавая дополнения для таких игр, как Skyrim или Minecraft, не только расширяют игровой опыт, но и формируют целые экосистемы с собственной экономикой: от донатов на Patreon до продаж модов. В этом мире Python становится всё более полезным инструментом — как для разработчиков, так и для продвинутых геймеров.

Читать далее

Хочу умный дом, умнее меня: история одного концепта

Level of difficultyMedium
Reading time5 min
Views3.9K

Захотелось рассказать про один из своих старых концептов. Уже можно, NDA закончилось.
На 2023 год задачка была и правда не тривиальной.

А еще, визуально закрепить, что идея не обязана выглядеть как вылизанный проект на Dribbble.

Читать далее

IPFS вместо HTTP: нужен ли нам новый интернет, если старый ещё работает?

Level of difficultyMedium
Reading time5 min
Views14K

Сегодня мы заходим на сайты, пользуемся приложениями, скачиваем данные — всё это через протокол HTTP. Он стал стандартом более 30 лет назад и до сих пор остаётся основой Всемирной паутины. Но он не идеален. Централизация, уязвимости к цензуре, проблемы масштабируемости подталкивают разработчиков к поиску альтернатив. Одной из самых известных идей стала технология IPFS. Эта идея обещает создать новый, децентрализованный интернет, где информация будет жить дольше, быть доступнее и устойчивее. Но непонятно, готовы ли мы к такому переходу? И действительно ли IPFS может заменить HTTP?

Читать далее

Джун за неделю или как инфоцыгане ломают найм в IT HR

Level of difficultyEasy
Reading time6 min
Views47K

Привет, Хабр!

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

Читать далее

Как преодолеть языковое плато и перейти с B1 на B2: инструменты и советы для развития каждого навыка

Level of difficultyEasy
Reading time11 min
Views14K

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

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

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

Читать далее

DIY Open Source принтер. Часть 0

Level of difficultyMedium
Reading time13 min
Views11K

Привет, Хабровчане! Этот цикл (надеюсь) статей будет посвящён моему пути в создании своего собственного решения по струйной печати. Это будет что-то вроде блога или дневника разработчика в котором постараюсь изучить как же всё таки работает печатающая головка у принтера и как ей можно управлять с помощью микроконтроллера. А также нас ждёт интригующий ответ на вопрос: "Если ли место DIY и OpenSourse в мире струйной печати".

Читать далее

Linux Open Port: пошаговое руководство по управлению портами фаервола

Level of difficultyMedium
Reading time10 min
Views7.6K

Открытый порт — это не «дырка в фаерволе», а процесс, который слушает сокет. В материале разбираемся, где заканчивается приложение и начинается сетевой фильтр: как корректно отличать listening от доступности снаружи, чем проверять (ss, lsof, nmap), и как на практике управлять правилами в nftables, firewalld и UFW. Поговорим о well-known портах и CAP_NET_BIND_SERVICE, типовых политиках (allow/deny), логировании и безопасной последовательности действий, чтобы не уронить прод. Текст для системных администраторов и DevOps/SRE, которым нужна понятная и проверяемая методика без мифов и магии.

Читать далее

Что такое DevOps и почему он автоматизировал не всё

Level of difficultyEasy
Reading time10 min
Views27K

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

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

Читать далее

Особенности Python, о которых вас точно спросят на техническом собеседовании

Level of difficultyEasy
Reading time11 min
Views17K

Python кажется простым и понятным — именно поэтому с него так классно начинать карьеру разработчика. Но за этой простотой скрываются тонкости, которые любят проверять на собеседованиях. И тут начинающий разработчик может неожиданно попасть впросак: вроде бы код работает, но поведение совсем не такое, как ожидалось.

Как автор курса «Python-разработчик» в Яндекс Практикуме, я часто разбираю подобные ситуации на своём YouTube-канале, где провожу открытые тестовые интервью с джунами. Всё, о чём я говорю, — это не абстрактные примеры, а реальные наблюдения и выводы, сделанные прямо в ходе этих собеседований. 

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

Читать далее

Взлом защиты Windows Defender с помощью трюка с переадресацией папок

Reading time4 min
Views17K

Злоумышленники часто сталкиваются с проблемой обхода антивирусных систем и Endpoint Detection and Response (EDR). Они вынуждены выбирать одну из двух тактик: обойти контроль этих систем или заставить их перестать нормально функционировать. Иногда атакующие используют уязвимые драйвера (BYOVD — Bring Your Own Vulnerable Driver).

Представьте себе ситуацию, что вам (злоумышленнику) удалось встроить собственный код прямо внутрь исполняемых файлов Windows Defender? Идеально!

Эта статья покажет вам простой метод взлома папки с исполняемыми файлами Windows Defender. Благодаря этому приёму можно перехватывать управление сервисом Defender’а, вставлять свои библиотеки, повреждать критически важные файлы и даже отключать службу. Самое главное — всё это делается с использованием стандартных инструментов самой ОС Windows, без дополнительных инструментов.

Читать далее

286, 386 и 486 — А вы застали этих ребят?

Level of difficultyEasy
Reading time7 min
Views16K

Время бежит настолько стремительно, что за чередой ежегодной смены айфонов и андроидов мы стали забывать, как прекрасно было в самом начале. А началом для меня (да и для многих в нашей стране с падением железного занавеса) была смена в начале 90-х старого Спектрума на 80286, а через пару лет - 486DX2. Ну, чтобы было понятно - как с Гранты пересесть на X6.

И вы не поверите - тогда компьютер вполне мог быть самодостаточным даже без интернета, черно-оранжевого сайта и с маленький пузатым монитором 14 дюймов!

Читать далее

SMB over QUIC на всех платформах: «VPN-less» файловые шары в 2025 (Windows Server 2025 + Samba 4.23)

Level of difficultyMedium
Reading time6 min
Views10K

Годами доступ к файловым шарам извне означал VPN или костыли вроде RDP-копипаста. Но в 2025-м всё изменилось. SMB over QUIC стал штатной фичей в Windows Server 2025, а с выходом Samba 4.23 технология стала по-настоящему кросс-платформенной.

Внутри — подробный туториал по настройке безопасного доступа к файлам через порт 443/UDP. Без VPN, с TLS 1.3, контролем доступа по сертификатам и готовыми командами для PowerShell и smb.conf. Разбираем, как это работает, где сэкономит нервы и когда старый-добрый TCP/445 всё ещё нужен.

Читать далее

SSH-туннель вместо белого IP: как получить доступ к домашнему серверу

Level of difficultyEasy
Reading time8 min
Views43K

Самый простой способ получить удалённый доступ к домашнему серверу — купить у провайдера статический «белый» IP (обычно 100–200 ₽/мес). Если же у вас уже есть арендованный VPS с публичным IP (например, для сайта, VPN или других проектов), его можно использовать как мост для доступа к серверу, сэкономив на покупке статического IP. В этой статье я расскажу, как настроил обратный SSH‑туннель через существующий VPS, чтобы стабильно подключаться к своему домашнему серверу, находящемуся за NAT от провайдера.

Читать далее

Как смотреть Netflix US/UK из любой страны: WireSock + Dante SOCKS5 (WARP)

Level of difficultyMedium
Reading time6 min
Views4.6K

Когда вы оказываетесь за границей — в отпуске, командировке или после релокации — может неожиданно выясниться, что ваш привычный Netflix «похудел». Одни сериалы и фильмы исчезли, другие появились, а некоторые премьеры выходят только в США или Великобритании. Всё дело в региональных лицензиях: каталоги у Netflix различаются по странам, и то, что доступно в Лондоне или Нью-Йорке, может быть недоступно в Москве, Белграде или Берлине.

На форумах и в блогах чаще всего советуют использовать «специальный VPN для Netflix». Но у такого решения есть очевидные проблемы: коммерческие VPN-сервисы работают на ограниченных пулах IP, которые быстро попадают в базы «подозрительных адресов» и блокируются. Ещё хуже, если попытаться просто направить клиент Netflix через произвольный прокси или VPS в дата-центре — такие IP легко вычисляются по ASN, обратному DNS и истории использования, и блокируются ещё быстрее.

Cloudflare WARP устроен иначе. Его официальная цель — улучшить приватность и ускорить соединение, а не предоставлять смену геолокации. Поэтому стриминговые сервисы обычно не блокируют WARP: он не воспринимается ими как «сервис обхода», а его IP-адреса выглядят как нормальные резидентские, а не как дата-центровые.

Из коробки WARP всегда подключается к ближайшему узлу Cloudflare, фактически «садя» вас в вашей текущей стране. Но если направить трафик WARP через SOCKS5-прокси (например, Dante) в США или Великобританию, именно этот прокси станет точкой выхода. Для WARP это выглядит так: он видит, что вы пришли с адреса прокси, определяет страну этого адреса и подключает вас к своей инфраструктуре именно там. В итоге Netflix будет считать, что вы находитесь в США или UK, и покажет «американский» или «британский» каталог. Другими словами, используя прокси, мы можем «зайти» в WARP уже в нужной нам стране — а не в той, где реально находимся.

Читать далее

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity