Pull to refresh
0
@citiuscoderead⁠-⁠only

User

Send message

Гайд по обходу «белых списков» и настройке цепочки рабочие варианты, почему ваш VPN может не работать

Reading time4 min
Reach and readers317K

Всем привет, в этой статье я расскажу, о том как у многих прокатывает обойти белые списки, и в чем вообще корень проблемы, если вы "чайник" и не хотите запариваться со всей настройкой в <a href="#services"> конце статьи</a> привел сервисы которые упоминают в обсуждениях

Прямой коннект VLESS + Reality до Европы (Амстердам, Германия, Финка) почти у всех под шейпингом. ТСПУ освоили новую тактику: они не рвут сессию через RST, а просто «фризят» её. Как только объем данных в одной TCP-сессии переваливает за 15-20 КБ, пакеты перестают приходить. Коннект висит, пока клиент не отвалится по таймауту.

Читать далее

Гайд по межсетевому экранированию (nftables)

Reading time32 min
Reach and readers94K


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

В качестве межсетевого экрана будем использовать nftables, функционирующий под управлением ОС Debian GNU Linux.
Читать дальше →

Структурированное логирование в Go с помощью Slog

Reading time22 min
Reach and readers55K

Более 10 лет разработчики на Go жаловались на отсутствие структурированного логирования в ядре Golang. Участники сообщества Golang даже создали несколько собственных пакетов, таких как Logrus, Zap и Zerolog. В 2023 году, команда разработчиков Google Go наконец-то представила Slog — высокопроизводительный пакет для структурированного ведения логов в стандартной библиотеке Go. Мы перевели гайд о возможностях slog.

Читать далее

DNS записи для почтовых серверов

Reading time6 min
Reach and readers118K


Представьте, что вы в реальной жизни получили конверт, где в поле “Отправитель” написано имя вашего старого друга. Можете ли вы, не открыв и не прочитав письма, точно сказать – это конверт от вашего старого друга или какого-то злоумышленника?

Именно эта задача стоит перед почтовыми серверами — просто взглянув на конверт определить, не врёт ли поле отправитель. Для этого почтовый сервер обращается к тому механизму, который в интернете служит для подтверждения владения доменом – DNS серверу.

Памятка пользователям ssh

Reading time13 min
Reach and readers1.6M
abstract: В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые не боятся шелла. В отличие от большинства руководств, которые кроме ключей и -L/D/R опций ничего не описывают, я попытался собрать все интересные фичи и удобства, которые с собой несёт ssh.

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

Оглавление:
  • управление ключами
  • копирование файлов через ssh
  • Проброс потоков ввода/вывода
  • Монтирование удалённой FS через ssh
  • Удалённое исполнение кода
  • Алиасы и опции для подключений в .ssh/config
  • Опции по-умолчанию
  • Проброс X-сервера
  • ssh в качестве socks-proxy
  • Проброс портов — прямой и обратный
  • Реверс-сокс-прокси
  • туннелирование L2/L3 трафика
  • Проброс агента авторизации
  • Туннелирование ssh через ssh сквозь недоверенный сервер (с большой вероятностью вы этого не знаете)
Читать дальше →

Выжимаем все соки из WebRTC для стриминга камер на примере go2rtc

Level of difficultyMedium
Reading time10 min
Reach and readers33K

Go2rtc — это open source приложение для стриминга видео в реальном времени. Оно весит всего 5 мегабайт, не имеет внешних зависимостей и работает на всех популярных ОС. Поддерживает технологии ​​RTSP, RTMP, DVRIP, HTTP-FLV, WebRTC, MSE, HLS, MJPEG, HomeKit и многие другие. Последний релиз получился настолько масштабным, что все нововведения пришлось оформлять в статью на Хабре.

Читать далее

Шаблон backend сервера на Golang — часть 5 — оптимизация Worker pool

Level of difficultyMedium
Reading time32 min
Reach and readers13K

# Шаблон backend сервера на Golang — часть 5 — оптимизация Worker pool


Пятая часть посвящена оптимизации Worker pool и особенностям его работы в составе микросервиса, развернутого в Kubernetes.


Представленный Worker pool поддерживает работу с двумя типами задач


  • "Короткие" — не контролируется предельный timeout выполнения и их нельзя прервать
  • "Длинные" — контролируется предельный timeout выполнения и их можно прервать

Накладные расходы Worker pool на добавление в очередь, контроль очереди, запуск обработки task, контроль времени выполнения task:


  • Для "коротких" task — от 300 ns/op, 0 B/op, 0 allocs/op
  • Для "длинных" task — от 1400 ns/op, 16 B/op, 1 allocs/op

Для task, которые должны выполняться быстрее 200 ns/op представленный Worker pool использовать не эффективно


Собираются следующие метрики prometheus:


  • wp_worker_process_count_vec — количество worker в работе
  • wp_task_process_duration_ms_by_name — гистограмма длительности выполнения task в ms с группировкой по task.name
  • wp_task_queue_buffer_len_vec — текущая длина канала-очереди task — показывает заполненность канала
  • wp_add_task_wait_count_vec — количество задач, ожидающих попадания в очередь

Ссылка на репозиторий проекта.


Шаблон goapp в репозитории полностью готов к развертыванию в Docker, Docker Compose, Kubernetes (kustomize), Kubernetes (helm).


Ссылки на предыдущие части:


  • Первая часть шаблона была посвящена HTTP серверу.
  • Вторая часть шаблона была посвящена прототипированию REST API.
  • Третья часть посвящена развертыванию шаблона в Docker, Docker Compose, Kubernetes (kustomize).
  • Четвертая часть будет посвящена развертыванию в Kubernetes с Helm chart и настройке Horizontal Autoscaler.
Читать дальше →

Markdown в науке

Reading time10 min
Reach and readers23K

Интернет и эпоха Web 2.0 существенно изменили метод подготовки научных публикаций. Сейчас мы читаем статьи с экранов компьютеров, смартфонов и электронных книг, а не только с бумаги. Крайне желательно, чтобы работа над текстом по превращению журнальной статьи в энциклопедическую вики-справку, в презентацию, или же в содержимое сайта, не требовала чрезмерных усилий. Далее мы рассмотрим решение означенной проблемы с помощью текстовой разметки Markdown и попробуем представить себе дальнейшее развитие технологий.

Читать далее

Как мы сделали малогабаритный облачный видеорегистратор из обычной IP камеры

Reading time8 min
Reach and readers76K


Тема видеонаблюдения встала для меня остро с появлением загородного жилья. На просторах интернета можно найти кучу информации по организации видеонаблюдения. К сожалению большинство вариантов сводилось к покупке готовых комплектов из Китая. От знакомых слышал много критики на этот счёт. Как-то даже сам поучаствовал в настройке оборудования, купленного с Aliexpress. Где-то половина заявленных функций работала не так как заявлено, некоторые опции и вовсе не получилось настроить, хотя регистратор был не из дешёвых. И таких отзывов и мнений было много. Также многие критически относятся к тому, что видеозаписи хранятся на китайских облачных сервисах. И тогда появилась мысль — а что если попробовать сделать свой видеорегистратор с минимальным функционалом? А что? На тот момент я начал плотно увлекаться linux, писал приложения с элементарным функционалом на bash, экспериментировал с web… В принципе всё что нужно для решения поставленной задачи. Сказано — сделано.
Читать дальше →

Bitmap-индексы в Go: поиск на дикой скорости

Reading time15 min
Reach and readers35K


Вступительное слово


Я выступил с этим докладом на английском языке на конференции GopherCon Russia 2019 в Москве и на русском — на митапе в Нижнем Новгороде. Речь в нём идёт о bitmap-индексе — менее распространённом, чем B-tree, но не менее интересном. Делюсь записью выступления на конференции на английском и текстовой расшифровкой на русском.

Мы рассмотрим, как устроен bitmap-индекс, когда он лучше, когда — хуже других индексов и в каких случаях он значительно быстрее них; увидим, в каких популярных СУБД уже есть bitmap-индексы; попробуем написать свой на Go. А «на десерт» мы воспользуемся готовыми библиотеками, чтобы создать свою супербыструю специализированную базу данных.

Очень надеюсь, что мои труды окажутся для вас полезными и интересными. Поехали!

Гексагональные тайловые миры

Level of difficultyHard
Reading time32 min
Reach and readers45K

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

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

Читать далее

Как найти удаленную работу в зарубежной компании. 10 шагов

Reading time10 min
Reach and readers89K


Каждый год Оксфордский словарь английского языка выбирает «Слово года». Но в 2020-м что-то пошло не так. Издательство Оксфордского университета описало 2020-й как «год, который лишил нас дара речи», и сказало, что к нему невозможно подобрать правильное слово.


Но на наш взгляд, такое слово всё-таки есть. С прошлого марта в мире резко возросло использование слова «удаленно». Большинство предприятий отошли от традиционной модели офисной работы и стали пытаться организовать труд сотрудников из дома. Для разработчиков из СНГ это прекрасная возможность начать работу в лучших мировых компаниях. Зарплаты за рубежом выше, а возможностей сейчас стало больше, чем когда-либо прежде.


Мы постоянно исследуем рынок. Публикуем сотни вакансий ежедневно. И сейчас 40% выручки получаем от иностранных компаний, которые в основном нанимают программистов для удаленной работы.


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

Читать дальше →

Bash-скрипты, часть 2: циклы

Reading time8 min
Reach and readers918K
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

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

image

Внимание: в посте спрятана выгода!
Читать дальше →

Как ты реализуешь аутентификацию, приятель?

Reading time10 min
Reach and readers133K


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


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


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

Читать дальше →

Собеседование php-developer (вопросы и ответы)

Reading time10 min
Reach and readers302K
Так уж получилось, что в этом году я прошел ряд собеседований на позицию PHP разработчика, чего я не делал уже несколько лет. Будучи человеком ленивым практичным, перед собеседованием я попытался найти сборники вопросов-ответов, но все найденное было довольно старым, поэтому я решил сам подготовить список вопросов, которые встречал.

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

Как реализованы конвейеры в Unix

Reading time16 min
Reach and readers21K

В этой статье описана реализация конвейеров в ядре Unix. Я был несколько разочарован, что недавняя статья под названием «Как работают конвейеры в Unix?» оказалась не про внутреннее устройство. Мне стало интересно, и я зарылся в старые источники, чтобы найти ответ.
Читать дальше →

Какие английские слова IT-лексикона мы неправильно произносим чаще всего

Reading time5 min
Reach and readers175K
Пока пара новых статей на технические темы еще в процессе написания, я решил опубликовать небольшой лингвистический материал. Достаточно часто замечаю, что коллеги, у которых английский язык — не родной, неправильно произносят некоторые характерные для IT сферы слова. И дело здесь не в том, насколько аутентично произносятся отдельные звуки, а именно в транскрипции. Регулярно встречал ситуации при общении с носителями, когда неправильно произносимое слово приводило к недопониманиям.

Дальше я приведу несколько наборов слов, сгруппированных по типовым ошибкам. К каждому слову будет приложена транскрипция, приблизительная транскрипция на русском и ссылка на более детальную информацию в словаре. Так как большинство IT компаний все-таки работает с Северной Америкой, то транскрипции будут из US English.
Читать дальше →
Большинство управляющих и владельцев бизнеса не до конца представляют себе список факторов, которые должны быть учтены при проектировании беспроводной сети. Да и некоторые системные и сетевые администраторы, привыкшие к работе с проводными сетями, поддерживают мифы и легенды, которыми окутаны беспроводные сети. В данном материале мы попытаемся обозначить основные моменты, на которые стоит обратить внимание на этапе проектирования Wi-Fi сетей. По этому списку можно будет понять, насколько вы подготовлены с технической точки зрения.
Подробности – под катом

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

Reading time31 min
Reach and readers122K
Примерно в каждой второй теме на Хабре, касающейся космонавтики или электроники, всплывает тема радиационной стойкости. Через новости об отечественной космонавтике красной нитью проходит тематика импортозамещения радстойкой элементной базы, но в то же самое время Элон Маск использует дешевые обычные чипы и гордится этим. А изральтяне в «Берешите» использовали радстойкий процессор и тоже гордятся этим. Да и в принципе микроэлектронная отрасль в России живет по большей части за счет госзаказа с соответствующими требованиями. Наблюдение за регулярными спорами насчет того, как надо правильно строить спутники, показывает, что подготовка участников обычно невысока, а их аргументация отягощена стереотипами, случайно услышанными вырванными из контекста фактами и знаниями, устаревшими много лет назад. Я подумал, что читать это больше нет сил, поэтому, дорогие аналитики, устраивайтесь поудобнее на своих диванах, и я начну небольшой (на самом деле большой) рассказ о самых популярных заблуждениях на тему того, что такое радиационная стойкость интегральных микросхем.


Рисунок 1. Непременная красивая картинка про космическое излучение и хрупкую Землю.
Читать дальше →

Ищем свободное парковочное место с Python

Reading time14 min
Reach and readers68K
image

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

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

image

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения
Читать дальше →
1
23 ...

Information

Rating
Does not participate
Registered
Activity