Pull to refresh
72
0.2
Виктор Супрун @POPSuL

Разработчик

Send message

Обфускация сетевого трафика и автоматическая интернет-цензура

Level of difficulty Medium
Reading time 28 min
Views 9.7K

Интернет‑цензоры ищут способы выявить и заблокировать доступ в интернете к информации, которую они считают нежелательной. Для этих целей они часто используют такие сетевые инструменты, как глубокая проверка пакетов (Deep packet inspection, DPI), которые позволяют выявить такие соединения. В ответ активисты разработали и внедрили механизмы запутывания сетевого трафика. Они применяют специализированные криптографические инструменты, чтобы попытаться скрыть от DPI истинную природу и содержание соединений.

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

Читать далее
Total votes 17: ↑17 and ↓0 +17
Comments 6

Торговые роботы на Golang

Level of difficulty Easy
Reading time 9 min
Views 9.3K

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

Я Александр Парфенов, бэкенд-разработчик в Тинькофф Инвестициях и автор InvestAPI SDK для языка Go. Расскажу о том, как автоматизировать торговые стратегии при помощи Tinkoff INVEST API и языка Go.

Читать далее
Total votes 18: ↑16 and ↓2 +14
Comments 7

Тестовые серверы Telegram: инструкция по эксплуатации

Reading time 11 min
Views 15K

Про разработку ботов в Telegram написано много текстов, а про «тестовый дата-центр» практически ничего. Ранее Pavelgram освещал этот вопрос: он кратко рассказал, что такое тестовые серверы и как с ними работать. Я продолжу это начинание.

Эта статья — сборник разбросанной документации и результатов экспериментов. Под катом расскажу о технических особенностях тестового окружения для разработки, покажу примеры ботов и юзерботов. В качестве бонуса — история «о жизни в тестовом контуре».
Читать дальше →
Total votes 64: ↑64 and ↓0 +64
Comments 6

Пакет context в Go: взгляд профессионала

Level of difficulty Medium
Reading time 13 min
Views 17K

А вы часто читаете реализацию стандартной библиотеки своего любимого языка?..

Меня зовут Константин Соколов, и мы с Сергеем Мачульскисом, моим коллегой из бэкенд-разработки в Positive Technologies, хотим с вами поделиться вдохновением. Давайте вместе посмотрим на пакет context с последними обновлениями. На наш взгляд, он идеально выражает философию языка Go! Образцовый интерфейс, постоянное развитие пакета и использование самых распространенных приемов Go — все это говорит о том, что наш материал будет полезен не только новичкам, но и знатокам.

Под кат
Total votes 37: ↑36 and ↓1 +35
Comments 8

Форм-факторы смарт-карт. Сводная информация

Level of difficulty Easy
Reading time 6 min
Views 1.8K

Число и разнообразие микропроцессорных смарт-карт постоянно растет. По оценке компании Thales это самая распространенная вычислительная платформа на планете. Актуальность их применения не снижается. С новыми технологиями появляются новые форм факторы смарт карт.

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

Читать далее
Total votes 11: ↑11 and ↓0 +11
Comments 0

DN42 — большая BGP-песочница

Reading time 16 min
Views 7.1K

DN42 — это сеть из VPN‑туннелей с маршрутизацией по протоколу BGP. Участники устанавливают между соединения, используя различные туннельные технологии (Wireguard, OpenVPN, GRE, Tinc, ZeroTier и другие).

Зачем она нужна?

1. Можно поэкспериментировать и изучить технологии маршрутизации.

Основная польза от DN42 — это возможность получить опыт настройки туннелей и BGP‑соединений. Именно так работает маршрутизация в Интернет.

2. Можно узнать как устроен Интернет и почувствовать себя провайдером.

В DN42 есть регистр (registry), который очень схож с той же RIPE Database, набор внутренних сервисов и свой корневой домен.dn42 и корневые DNS‑сервера.

Интересно? Добро пожаловать под кат.
Total votes 28: ↑28 and ↓0 +28
Comments 15

Regex engine internals as a library [full]

Level of difficulty Hard
Reading time 77 min
Views 5K

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

Если всегда было интересно, как оно там под капотом устроено, а в книге Фриддла или в книге дракона вы не нашли подробностей, то добро пожаловать - будет интересно и очень сложно. Для понимания требуются знания основ теории автоматов (знать и понимать отличия ДКА от НКА) и иметь базовое представление о том, что такое регулярные выражения.

Так же прошу сообщать об ошибках и опечатках, чтобы я мог их исправить.

Прыгнуть в кроличью нору
Total votes 36: ↑34 and ↓2 +32
Comments 10

Пишем самую тупую на свете сортировку

Level of difficulty Medium
Reading time 7 min
Views 23K

И это не пузырьковая, а нечто гораздо более тупое.

Как-то после обеда, стоя за чашечкой кофе, мне пришла в голову мысль. Что ведь для того чтобы убедиться что массив отсортирован, надо сделать `n-1` сравнение. Например для массива длины 4 таких сравнения будет 3:

Дальше тупее
Total votes 87: ↑86 and ↓1 +85
Comments 45

Разбираем HTTP/2 по байтам

Level of difficulty Medium
Reading time 24 min
Views 26K

image


Откройте любую статью с обзором HTTP/1.1. Скорее всего, там найдётся хотя бы один пример запроса и ответа, допустим, такие:


GET / HTTP/1.1
Host: localhost

HTTP/1.1 200 OK
Date: Sat, 09 Oct 2010 14:28:02 GMT
Server: Apache
Content-Length: 38
Content-Type: text/html; charset=utf-8

<!DOCTYPE html>
<h1>Привет!</h1>

Теперь откройте статью с обзором HTTP/2 или HTTP/3. Вы узнаете о мультиплексировании запросов, о сжатии заголовков, о поддержке push-технологий, но вряд ли увидите хоть одно конкретное сообщение. Ясно, почему так: HTTP/1.1 — текстовый протокол, тогда как сиквелы к нему бинарные. Это очевидное изменение открывает дорогу ко множеству оптимизаций, но упраздняет возможность просто и доступно записать сообщения.


Поэтому в этой статье предлагаю покопаться в кишках у HTTP/2: разобрать алгоритмы установки соединения, формат кадров, примеры взаимодействия клиента с сервером.

Читать дальше →
Total votes 115: ↑115 and ↓0 +115
Comments 45

Взламываем «умную» зубную щётку

Level of difficulty Medium
Reading time 6 min
Views 14K

Только задумайтесь: мы всё чаще используем умные холодильники, машины розетки и лампочки, умные часы и колонки. Нас окружают умные вещи и умные люди. Но насколько они умные и так ли нужна эта "умность"? А ещё — насколько легко взломать эти умные вещи? Часы, например, несложно. Давайте посмотрим другой пример: умную зубную щётку.

Читать далее
Total votes 65: ↑65 and ↓0 +65
Comments 19

Механические клавиатуры 2023

Level of difficulty Easy
Reading time 28 min
Views 45K

Эта статья возникла как результат моих попыток разобраться в рынке механических клавиатур в 2023 году. На Хабре уже был неплохой материал по этой теме, опубликованный в 2012 году - https://habr.com/ru/post/140454/. Поэтому самые полезные блоки оттуда я честно скопипастил (благо лицензия статьи позволяет), но изменилось на самом деле гораздо больше, чем я ожидал. Для всех интересующихся, я также порекомендую https://wiki.geekboards.ru/, где вы можете найти еще больше технических деталей и несколько исторических экскурсов про устройство клавиатур.

Осторожно, дальше будет много букв и картинок (под спойлерами)

Читать далее
Total votes 72: ↑70 and ↓2 +68
Comments 114

Книга «MySQL по максимуму. 4-е издание»

Reading time 8 min
Views 5.9K
image Привет, Хаброжители!

Хотите выжать из MySQL максимум возможностей? Вам поможет уникальная книга, написанная экспертами для экспертов.

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

Это издание было обновлено и переработано с учетом последних достижений в области облачного и самостоятельного хостинга MySQL, производительности InnoDB, а также новых функций и инструментов. Вы сможете разработать платформу реляционных данных, которая будет масштабироваться вместе с вашим бизнесом, и узнаете о передовых методах обеспечения безопасности, производительности и стабильности баз данных.
Читать дальше →
Total votes 11: ↑11 and ↓0 +11
Comments 5

Amazon IVS: как быстро добавить видеотрансляции в приложение или на сайт

Reading time 12 min
Views 2.3K

Video live streaming - это технология потоковой трансляции видео тысячам и миллионам зрителей в режиме близком к реальному времени. Видеостриминг находит своё применение в разных областях: образование, фитнес, онлайн события, электронная коммерция, игры и киберспорт.

В этой статье мы рассмотрим как можно легко интегрировать видеотрансляции в приложение или на сайт, используя AWS interactive video service.

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 0

Все способы легального вывода денег из России: детальный разбор со ссылками

Reading time 12 min
Views 113K

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

Читать далее
Total votes 112: ↑100 and ↓12 +88
Comments 87

150+ хакерских поисковых систем и инструментов

Reading time 11 min
Views 74K

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

Пост состоит из 8 объемных разделов:

1. метапоисковики и поисковые комбайны;

2. инструменты для работы с дорками;

3. поиск по электронной почте и логинам;

4. поиск по номерам телефонов;

5. поиск в сети TOR;

6. поиск по интернету вещей, IP, доменам и поддоменам;

7. поиск данных об уязвимостях и индикаторов компрометации;

8. поиск по исходному коду.

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

Читать далее
Total votes 64: ↑61 and ↓3 +58
Comments 6

4,2 гигабайта, или как нарисовать что угодно

Reading time 9 min
Views 42K
В нашем мире мы можем сделать всё, что захотим. Всё что угодно.

Боб Росс, The Joy Of Painting, сезон 29, эпизод 1

Однажды, когда я наблюдал за ярким закатом в Сиэтле, внезапно включилось моё воображение. Потусторонний оттенок неба пробудил воспоминания о чём-то из научной фантастики. Дымчатый оранжево-сиреневый завораживал.

Я представил огромный инопланетный объект, висящий в горящем оранжевом небе над давно покинутым Сиэтлом, здания которого покрыты зарослями.

Тем же вечером я за несколько часов создал вот такое изображение:


Простите за низкое разрешение — к сожалению, у моего GPU всего 12 ГБ памяти.

Поскольку очевидно, что я талантливый художник, имеющий за плечами буквально десятки минут опыта, мне захотелось поделиться тем, как я создал данный шедевр.
Читать дальше →
Total votes 160: ↑160 and ↓0 +160
Comments 92

Как посчитать длину текста и не привлекать внимание санитаров

Reading time 10 min
Views 32K

Привет! Меня зовут Алексей Ивасюта, я фронтенд-разработчик в Авито в кластере Seller Experience. В этой статье я расскажу, как правильно рассчитать длину текста в Java Script. Эта статья будет одинаково полезна как начинающим разработчикам, так и весьма опытным. Благодаря ей вы поймете устройство Unicode и особенности его работы в JS.

Читать далее
Total votes 73: ↑72 and ↓1 +71
Comments 58

Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео

Reading time 17 min
Views 51K

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

Читать далее
Total votes 286: ↑286 and ↓0 +286
Comments 134

Как работает неточное сравнение строк

Reading time 7 min
Views 26K

https://fakt309.github.io/thisisthewall/

В языках программирования строки сравниваются очень просто, если строка отличается хотя бы на один символ, то возвращает false.

Но вот что если мы хотим не просто получать дискретное значение (true / false), а дифференцированное, например в процентах. Ведь согласитесь строки test и testing гораздо ближе к друг другу, чем test и abcd. Для данной проблемы существует множество решений, мы поговорим о самый популярных алгоритмах (также об их модификациях):

Расстояние Хэмминга

Расстояние Левенштейна

Сходство Джаро — Винклера

Коэффициент Сёренсена

Читать далее
Total votes 50: ↑47 and ↓3 +44
Comments 43

Постигаем искусство написания Dockerfile для Go

Reading time 6 min
Views 23K

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

Читать далее
Total votes 19: ↑13 and ↓6 +7
Comments 7

Information

Rating
2,244-th
Location
Южно-Сахалинск, Сахалин, Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, DevOps
Senior
From 2,500 $
Git
PHP
Nginx
Golang
Linux