Pull to refresh
4
0.1
Сергей @Semy

User

Send message

Оптимизация памяти и управление сборщиком мусора в Go: GOGC и GOMEMLIMIT

Level of difficultyMedium
Reading time11 min
Views24K

Всем привет, меня зовут Нина Пакшина, я работаю Golang разработчиком в Лента Онлайн в команде операций.

В данной статье я расскажу о том, как управлять сборщиком мусора в Go, как оптимизировать потребление памяти приложением и защититься от ошибки out-of-memory.

Читать далее

Кто идёт? Как снимали «Нечто» и чем фильм может напугать спустя сорок лет

Level of difficultyEasy
Reading time15 min
Views20K

У Жени Лукашина была традиция накануне Нового года ходить с друзьями в баню. А для многих, соответственно, стало традицией 31 декабря пересмотреть, как он случайно оказывается в Ленинграде и что из этого выходит. Но лично для меня еще со времен VHS фильмом ежегодного просмотра в какой-нибудь из тёмных зимних вечеров стал сайфай-хоррор Джона Карпентера. Идеально сбалансированный и атмосферный фильм: леденящий во всех смыслах ужас, полное погружение и сопереживание героям. Давайте попробуем разобраться, как создавался один из самых значимых фильмов жанра, какие режиссёрские приёмы не дают перевести дыхание и почему найденный в суровой Антарктиде пришелец может претендовать на трон короля космических монстров.

The ultimate in alien terror

IQ-Openvpn или Openvpn с распределенной маршрутизацией

Level of difficultyMedium
Reading time9 min
Views6.8K

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

Ну давай посмотрим, что там

Messaging для чайников. Утилизируем все возможности RabbitMQ на Python

Level of difficultyEasy
Reading time9 min
Views15K

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

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

Простых и понятных примеров на Python тоже мало, так как они заставляют вас вникать не только в особенности различных вариантов маршрутизации RabbitMQ, но и в особенности используемых библиотек. Для человека, который видит что-то pika-подобное первый раз, это может быть испытанием.

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

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

Поехали

Port knocking и не только

Reading time3 min
Views15K

Прочитав по диагонали статью гражданина @Winseven«ICMP открывашка портов для сервера», я сдержался. Все-таки велосипединг — это весело. Но вчитавшись, я опешил. Зачем запускать отдельное приложение для отслеживания нужных пакетов? Правильно ли, что достаточно один раз попасть пальцем в небо, чтобы порт был открыт? По мне, как-то не по фэншую.

Душа все это не вынесла, и я решился на статью.

А как надо было?

Типизация в Python. Работа с Mypy, PyCharm и SQLAlchemy 2.0

Reading time2 min
Views7.6K

Привет, Хабр! Мы в Selectel много программируем на Python. И на митапе «Типичный Python» поделились своим опытом, послушали коллегу из МТС Digital, а также ответили на вопросы участников. Приводим краткий обзор трех докладов: разбираем работу со средой разработки PyCharm, статическим анализатором Mypy и программной библиотекой SQLAlchemy 2.0. Подробнее — под катом.
Читать дальше →

Мокинг внешних API в Python

Reading time19 min
Views10K

В этом руководстве я покажу, как протестировать использование внешнего API с помощью Python моков.

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

Читать далее

21 фича современного C++, которые вам обязательно пригодятся

Reading time10 min
Views36K

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

Сообщество C++ дополняет стандарт чаще, чем Apple выпускает новые iPhone. Благодаря этому C++ теперь больше похож на большого слона, а съесть целого слона за один присест невозможно. Вот почему я решил написать эту статью, чтобы дать вашему путешествию по современному C++ своего рода отправную точку. Моя целевая аудитория здесь — люди, которые переходят со старого (т.е. 98/03) С++ на современный (т.е. 2011 и далее) С++.

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

Читать далее

cv3 — делаем OpenCV питоничным

Level of difficultyEasy
Reading time13 min
Views12K

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

Читать далее

Архитектура event-driven приложений

Level of difficultyEasy
Reading time8 min
Views31K


Автор статьи: Артем Михайлов


Введение в концепцию event-driven архитектуры


Event-driven архитектура — это концепция программирования, которая позволяет создавать сложные приложения, используя событийно-ориентированный подход. Основная идея заключается в том, что все действия в приложении основаны на событиях. Это позволяет создавать распределенные системы, которые легко масштабируются и обладают высокой отказоустойчивостью.
Читать дальше →

Программы-клиенты для протоколов недетектируемого обхода блокировок сайтов: V2Ray/XRay, Clash, Sing-Box, и другие

Level of difficultyMedium
Reading time16 min
Views268K

В предыдущей статье “Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria и все-все-все” я рассказывал про прокси-протоколы. Теперь настало время рассказать про клиенты: консольные, GUI для десктопа и для мобильных платформ. 

Надеюсь, что эта статья вам окажется полезной, потому что, как выяснилось, найти хороший клиент даже для тех же V2Ray/XRay в наше время не так-то просто. Потому что большая часть того, что находится при поиске в интернете “в лоб” и даже в списках типа Awesome V2Ray - или уже неподдерживаемое, или довольно кривое, или не умеющее в актуальные версии и фичи (например, XTLS и uTLS), а самые жемчужины прячутся где-нибудь в глубинах Github’а и сторов.

Читать далее

3X-UI: Shadowsocks-2022 & XRay (XTLS) сервер с простой настройкой и приятным интерфейсом

Level of difficultyEasy
Reading time13 min
Views554K

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

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

Поэтому сегодня мы поговорим об установке и использовании графической панели 3X-UI для сервера X-Ray с поддержкой всего того, что умеет X-Ray: Shadowsocks-2022, VLESS с XTLS и т.д.

Читать далее

Что для вас Linux? Или как устроен запуск процессов

Level of difficultyMedium
Reading time15 min
Views42K

Как бы вы ответили на вопрос, что такое операционная система?

Скорее всего, вы легко сможете ответить на этот вопрос человеку далекому от IT, но подобный вопрос вам может задать, например, HR - в попытке переманить вас в какой-нибудь Facebook или Google. С одной стороны, ответить на этот вопрос очень легко и в интернете можно найти много определений, но относится ли, например, конфигурация DNS и файл /etc/resolv.conf к ОС ? Или в какой области памяти работает ОС - в памяти с безграничными возможностями для кода, называемой kernel space, или все же в лимитированной user space?

На эти вопросы даже в этой статье вы не найдете однозначного ответа, и только вам решать, что для вас ОС, а что пользовательские приложения. Но в конце статьи я все же приведу свои аргументы, почему важно знать, как это работает, даже если вы сеньор программист/админ/девопс, проживший без этих знаний 35 лет и весьма успешно запустивший множество проектов. 

Читать далее

Полный синтаксис DKIM, DMARC и SPF

Reading time5 min
Views132K
Не так давно прописывала записи DKIM, DMARC и SPF для своего домена. Это оказалось сложнее, чем я думала, потому что мне не удалось нигде найти полный синтаксис всех этих записей. Тогда вместе с Яной Лыновой мы собрали материал. Фактически, эта статья дополняет несколько статей с Хабра (внизу вы найдете ссылки).

Для того, чтобы прописать необходимые записи, нам нужен доступ к DNS. DNS расшифровывается как Domain Name System. Обычно доступ к DNS в компании имеют системные администраторы или, на крайний случай, программисты. Для них вы должны написать ТЗ, по которому они смогут добавить записи в DNS.

Итак, что же такое DKIM?


DKIM (Domain Keys Identified Mail) — это цифровая подпись, которая подтверждает подлинность отправителя и гарантирует целостность доставленного письма. Подпись добавляется в служебные заголовки письма и незаметна для пользователя. DKIM хранит 2 ключа шифрования — открытый и закрытый. С помощью закрытого ключа формируются заголовки для всей исходящей почты, а открытый ключ как раз добавляется в DNS записи в виде TXT файла.

Проверка DKIM происходит автоматически на стороне получателя. Если домен в письме не авторизован для отправки сообщений, то письмо может быть помечено подозрительным или помещено в спам, в зависимости от политики получателя.
Читать дальше →

Получаем виртуальный raspberry pi с помощью QEMU. Часть 2

Level of difficultyEasy
Reading time4 min
Views7.1K

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

Читать далее

Безопасный HTTPS-прокси менее чем за 10 минут

Reading time5 min
Views133K

Это руководство описывает развёртывание HTTPS-прокси с помощью dumbproxy на практически любом Linux-сервере. Потребуется только curl и рутовый доступ.

Читать далее

Алгоритмы балансировки нагрузок

Level of difficultyMedium
Reading time8 min
Views51K

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

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

Новая уязвимость в Wi-Fi — что о ней известно

Reading time3 min
Views9.4K

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

Читать далее

Современные технологии обхода блокировок: V2Ray, XRay, XTLS, Hysteria, Cloak и все-все-все

Reading time20 min
Views439K

Три месяца назад здесь на Хабре была опубликована статья “Интернет-цензура и обход блокировок: не время расслабляться”, в которой простыми примерами показывалось, что практически все популярные у нас для обхода блокировок VPN- и прокси-протоколы, такие как Wireguard, L2TP/IPSec, и даже SoftEther VPN, SSTP и туннель-через-SSH, могут быть довольно легко детектированы цензорами и заблокированы при должном желании. На фоне слухов о том, что Роскомнадзор активно обменивается опытом блокировок с коллегами из Китая и блокировках популярных VPN-сервисов, у многих людей стали возникать вопросы, что же делать и какие технологии использовать для получения надежного нефильтрованного доступа в глобальный интернет.

Мировым лидером в области интернет-цензуры является Китай, поэтому имеет смысл обратить на технологии, которые разработали энтузиасты из Китая и других стран для борьбы с GFW (“великим китайским файрволом”). Правда, для неподготовленного пользователя это может оказаться нетривиальной задачей: существует огромное количество программ и протоколов с похожими названиями и с разными не всегда совместимыми между собой версиями, огромное количество опций, плагинов, серверов и клиентов для них, хоть какая-то нормальная документация существует нередко только на китайском языке, на английском - куцая и устаревшая, а на русском ее нет вообще.

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

Читать далее

Information

Rating
5,895-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity