Pull to refresh
4
0
Артём @ertegix

Java разработчик

Send message

ByeDPI для Android, SpoofDPI для Mac и Linux – чиним YouTube и не работающие в России сайты на Андроид, Линукс и Мак

Level of difficultyEasy
Reading time2 min
Views212K

Вчера писал о графической оболочке Launcher for GoodbyeDPI, позволяющей интуитивно-понятно воспользоваться решением GoodbyeDPI от ValdikSS для решения проблемы замедления YouTube и недоступности в России ряда сайтов. Все хорошо, но это были решения лишь под Windows. В комментариях основные вопросы были о том, как быть с Android, Linux и Mac, и почему не в исходниках. Увы, репрессии РКН заставляют администрацию Хабра цензурировать статьи, во вчерашнюю статью внесение изменений мне запрещено, и сама ссылка доступна лишь вне России, потому объясняю про Андроид, Линукс и Мак здесь, со ссылками на исходники.

Итак, для Android есть масса проектов, мне подошел Release ByeDPI 1.0.0 · dovecoteescapee/ByeDPIAndroid · GitHub. Для Mac и Linux я бы ставил https://github.com/xvzc/SpoofDPI/releases. Все в исходных кодах.

ByeDPI for Android, это приложение, которое запускает локальный VPN-сервис для обхода DPI (Deep Packet Inspection) и цензуры. На вашем устройстве локально запускается SOCKS5-прокси ByeDPI и весь трафик перенаправляется через него.

Снятие блокировок на Android/Mac/Linux
Total votes 76: ↑75 and ↓1+91
Comments71

Как сделать и настроить собственный VPN

Level of difficultyEasy
Reading time6 min
Views57K

В статье рассмотрим четыре способа создания собственного VPN. Начнем с самого простого варианта, что под силу даже начинающим пользователям ПК.

Читать далее
Total votes 36: ↑35 and ↓1+41
Comments67

Полулегальный радиоконструктор с Aliexpress

Level of difficultyEasy
Reading time11 min
Views63K


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

Для любителей электроники и радио такой конструктор — отличная возможность подарить детям незабываемые позитивные моменты и привить интерес к технике. Но есть и нюансы. Впрочем, как и всегда.
Читать дальше →
Total votes 42: ↑38 and ↓4+42
Comments36

Matrix: децентрализованные открытые мессенджеры с E2E-шифрованием. Обзор возможностей и настройка своего сервера

Level of difficultyMedium
Reading time13 min
Views9.6K

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

Matrix — открытый протокол мгновенного обмена сообщениями и файлами с поддержкой голосовой и видеосвязи. Почему стоит обратить на него внимание, если у нас уже есть WhatsApp и Telegram? Причин несколько.

Во-первых, в последние дни Роскомнадзор снова начал развлекаться блокировками WhatsApp и Telegram, и иногда у него это даже получается более-менее успешно. В таких условиях всегда неплохо иметь запасной вариант, и Matrix здесь очень хорошо подходит, потому что во-первых он позволяет создавать свои собственные сервера, а во-вторых его протокол со стороны выглядит как самый обычный HTTPS.

Во-вторых, все больше и больше людей не доверяют WhatsApp и Telegram. В случае с Matrix же можно поднять свой личный сервер, протокол Matrix - открытый, исходники клиентов - открыты, исходники серверов - тоже открыты, а в самом протоколе end-to-end шифрование включено для чатов по умолчанию из коробки (в отличие, например, от Telegram, где оно доступно только в "секретных чатах"). Ну и само собой, не требуется нигде вводить телефонный номер для регистрации.

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

Сервер Matrix может работать как изолированно ("только для своих"), так и в составе "федерации" - когда разные серверы общаются между собой, и пользователи, подключенные к разным серверам, могут общаться друг с другом. Есть здесь олды, которые помнят Jabber и IRC? Ну вот, здесь такой же принцип. Я бы даже сказал, что Matrix - это этакий хипстерский Jabber на стероидах.

Читать далее
Total votes 31: ↑31 and ↓0+39
Comments52

Мини-обзор E Ink-ридера PocketBook 700 Era: 7 дюймов, защита от воды и… ощущение клёвой вещи

Reading time6 min
Views12K

За последние лет десять жизнь периодически сводила меня с «Покетбуками» – и сам когда-то владел парой устройств, и у знакомых видел, и даже один раз дарил. Ну и обзоры с новостями читал. Интересовался темой, так сказать. Не только ридерами этой породы, но устройствами с E Ink в целом.

При этом «Покеты» я однозначно лучшими в своем роде никогда не считал. Осмелюсь утверждать, что в действительно удачном устройстве должны быть хорошенько продуманы как минимум три составляющие: софт, сервисы, железо. У моделей PocketBook все всегда было прилично с первым и вторыми, а вот железо лично меня никогда особо не впечатляло. И я даже не столько электронную начинку имею в виду, сколько корпуса, экстерьер устройств. Помню, был у меня персональный PocketBook 740. Софт прекрасный, сервисы – тоже норм, а вот дизайн… Ну, он был не совсем унылым, но напоминал КПК из лохматых нулевых. Да еще и пластик поскрипывал. Но то было давно, лет пять назад. Может, поменялось чего в покетбучьем царстве?

Отвечать на этот вопрос буду путем изучения PocketBook 700 Era. Это такой 7-дюймовый ридер. Не скажу, что совсем свежий (конец 2022 года), но вполне актуальный. Продается в массе магазинов. Принадлежит этот девайс коллеге, и он любезно согласился предоставить мне его на недельку-другую.

Читать далее
Total votes 5: ↑4 and ↓1+5
Comments36

Я проанализировал 250 комментариев под статьёй о том, как не смог «войти в IT в 35 лет». Вот ваши самые полезные советы

Level of difficultyMedium
Reading time4 min
Views95K

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

Итак, самый сок
Total votes 61: ↑44 and ↓17+37
Comments265

«Недоверчивые умы»: почему конспирология и поиск тайных смыслов — не баг, а фича человеческого мышления? Часть 1

Level of difficultyEasy
Reading time10 min
Views8.3K

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

Всё работает совсем не так, как мыслилось на старте, все путают карты друг другу и сознательно, и случайно, делают ошибочные выводы на основании неполных и неверных данных, и спустя несколько тактов всё начинает напоминать «пожар в дурке во время наводнения». «Ни один военный план не выдерживает столкновения с противником», — как писал мудрый фон Мольтке. Теория хаоса, бессердечная ты зараза. Ну а когда что-то как-то случается, потому что никогда ещё не бывало, чтобы не было вообще никак — кто-то делает загадочный вид и намекает, что это всё он, и давайте нам ещё бюджетов, а кто-то тушит диван и жалуется на то, что коварные рептилоиды опять обставили наивных теплокровных бедолаг. Однако давеча моя уверенность в том, что конспироложество — в лучшем случае бред сивого мерина в лунную ночь, а в худшем и вовсе прямая и явная угроза обществу, была поколеблена работой одного (буквально) британского учёного. Итак, «Недоверчивые умы» Роба Бразертона: аргументы в пользу того, что склонностью к конспирологии мы буквально обязаны самому тому факту, что… разумны?
Читать дальше →
Total votes 43: ↑39 and ↓4+52
Comments105

Бинарные деревья — решение алгоритмических задач, часть 1

Level of difficultyEasy
Reading time7 min
Views13K

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

Немного теории для общего понимания сути.

Бинарное дерево - это иерархические структура данных, в которой каждый узел имеет не более двух дочерних узлов. Узлы обычно называются правыми и левыми потомками. При этом каждый из потомков, в свою очередь тоже является узлом, который может иметь двух потомков. Если у узла нет потомков, такой узел называют листом.

Кстати, у меня есть телеграм-канал, где пишу подходы к решениям всяких задачек с LeetCode, там больше разборов конкретных задач, чем здесь, потому что не всегда нужна статья. В общем, если интересно - жду здесь - t.me/crushiteasy :)

Читать далее
Total votes 11: ↑7 and ↓4+4
Comments26

Чиним замедление YouTube на уровне роутера

Level of difficultyMedium
Reading time6 min
Views604K

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

Что случилось?

Хорошо описано произошедшее здесь, на Хабре. Если совсем кратко, своими словами - во время установки SSL соединения в открытом виде домен передается к которому мы подключаемся(так называемое SNI). И если это googlevideo.com то начинают твориться "интересные вещи". Можно проверить это локально коммандами из статьи.

$ curl https://speedtest.selectel.ru/100MB -o/dev/null

Читать далее
Total votes 360: ↑357 and ↓3+412
Comments1036

Замедление YouTube с технической стороны: ограничение и обход

Reading time5 min
Views435K

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

В последнее время замечаю огромное количество информации по поводу замедления Великого, но очень мало где видел конкретику о том, как именно это работает. Одно лишь отчаяние "мы все умрём".

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

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

UPD 10.08.2024 Многие жалуются на недоступность ютуба в целом: не грузит домашнюю страницу. Переживать не стоит, оно обрабатывается всё тем же ТСПУ по всё той же стратегии, обходы должны работать.

Читать далее
Total votes 540: ↑540 and ↓0+631
Comments432

50 оттенков нагрузочного тестирования

Reading time11 min
Views28K

С нарастающими скоростями и распределёнными системами всё сложнее бывает создать приложение удобным для конечного пользователя. Программы обладают кучей фич. Но выполняют ли они то, что нужно юзерам? А скорость их выполнения достаточная? А производительность при выполнении не хромает? На эти вопросы помогает ответить нагрузочное тестирование (НТ).

Меня зовут Саша, я работаю в команде тестирования Ozon Fintech и расскажу про разнообразный спектр вариантов НТ: как именно мы его применяем и какие инструменты используем. Статья будет полезна тем, кто уже что-то слышал про НТ и хочет добавить его в свой проект, но пока страшновато. Давайте разбираться!

Читать далее
Total votes 21: ↑20 and ↓1+25
Comments15

Блеск и нищета модели предметной области

Reading time28 min
Views52K


Мартин Фаулер в книге «Patterns of Enterprise Application Architecture» описывает «Модель предметной области (Domain Model)» как сложный подход к организации бизнес-логики. Метод заключается в создании классов, соответствующих объектам предметной области из реального мира как с точки зрения структуры данных, так и поведения. При этом технические аспекты, такие как хранение данных, аутентификация и авторизация, управление транзакциями, выносится за пределы слоя бизнес-логики. Паттерн реализуется одним из двух способов:

  1. Богатая (насыщенная) модель — данные и поведение инкапсулируются внутри объектов предметной области.
  2. Анемичная модель — в объектах предметной области инкапсулируются только данные, поведение (методы) выносится в отдельный слой сервисов.

Фаулер и Эванс считают анемичную модель анти-паттерном. Однако многие кодовые базы, с которыми мне доводилось работать, реализованы именно в стиле «анемичной» модели. Под катом расшифровка и видео моего доклада с DotNext 2019 Moscow, посвященного сравнению сильных и слабых сторон обоих подходов и не очевидным деталям реализации модели предметной области в парадигме ООП и в функциональном стиле.
Читать дальше →
Total votes 36: ↑34 and ↓2+45
Comments46

Задача трёх тел (не китайская нефантастика)

Level of difficultyMedium
Reading time21 min
Views42K

Однажды, выполнив в Гугле запрос "Three body problem" ("Задача трёх тел"), я был просто поражен - первая страница результатов состояла только из ссылок на роман китайского писателя-фантаста Лю Цысиня с соответствующим названием, а также на телесериал, снятый по этому роману, т.е. ссылок на собственно задачу трёх тел не было вообще! Мне это показалось удивительным и несправедливым, поскольку сама по себе задача трёх тел тоже может выглядеть увлекательной в популярном изложении. В этой публикации я постарался привести некоторые доказательства этого утверждения.

Читать далее
Total votes 184: ↑182 and ↓2+234
Comments150

Lockheed F-117 Nighthawk – «Сэр, приказ есть приказ, но я в это не полезу»

Reading time9 min
Views34K

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

Итак, все мы слышали про этот самолет. F-117 Nighthawk, он же ночной ястреб, он же STEALTH fighter, он же стелс, он же груда обломков в Югославии. Многие считают, что это «величайшее достижение американских ученых и инженеров и на его фоне Советский Союз развалился сам по себе от страха», а многие другие считают что наоборот: «этот обломок металла из Звездных войн еле-еле в воздух себя поднимает. Вон в Югославии его сбили, как нехрен делать, кому тогда вообще ваш стелс нужен» - обе эти точки зрения я видел, причем не только среди наших соотечественников, но и среди заморских представителей интернета. Не мне судить этих людей, не мне судить и самолет, однако обе точки зрения являются глубокими заблуждениями, которые я сейчас и хочу развеять, хотя бы частично.

Читать далее
Total votes 131: ↑122 and ↓9+139
Comments171

Мои взгляды на программирование на июль 2024 года

Reading time5 min
Views7.8K
Эта статья – собрание убеждений о разработке ПО, которые выработались у меня на сегодняшний день. Всё основано на личном опыте.

Подход к задачам


Основная часть моей работы – разбираться с тикетами, и я до сих пор продолжаю совершенствоваться в этом деле. Вот несколько вещей, которые я открыл для себя в процессе.
  • Разные задачи, проекты и команды требуют разных подходов. Например, сделать пейсмейкер без автоматических тестов было бы безответственным решением – кто-то может от этого пострадать. И вместе с тем, глупо изводиться по поводу автоматических тестов на геймджеме, куда вы отправились на выходных. Содержание понятия «хороший код» меняется в зависимости от контекста, и нужно адаптировать свой подход под конкретную ситуацию.
  • Делайте марш-броски. Бывает, что я ставлю себе цель довести какую-то функциональность до готовности в кратчайшие сроки, пусть даже срезая углы где только можно, с кодом ужасного качества и TODO на каждом шагу. Когда у меня появится что-то рабочее, тогда и буду приводить всё в должный вид. Я пришел к выводу, что это хороший способ обозначить для себя проблемные зоны, а также неплохой путь к ускорению процесса разработки. На эту тему есть статья «Выбросьте первый набросок кода».
  • Если я бьюсь головой об задачу и никак не могу сдвинуться с мертвой точки, значит, необходимо оторваться от нее на какое-то время.
  • Прежде чем начать работу над сложной задачей, я задаю себе вопрос: «А что если вообще этого не делать?» Как правило, вопрос оказывается глупым и выполнять задачу все-таки приходится. Но примерно в пяти процентах случаев я осознаю, что определенную часть работы можно спокойно пропустить.

Читать дальше →
Total votes 15: ↑13 and ↓2+16
Comments26

PostgreSQL — один за всех? Как работать с нетипичными данными в реляционной системе

Level of difficultyMedium
Reading time11 min
Views7.4K

Смотрим, как вездесущий PostgreSQL справляется с нестандартными для реляционной системы управления базами данных (СУБД) ролями: хранением и поиском временных рядов, пар «ключ — значение», эмбеддингов для больших языковых моделей и многомерных кубов. Отвечаем на вопрос: действительно ли так нужно строить сложные архитектуры со множеством разнородных систем хранения данных — MongoDB, Redis, InfluxDB, Pinecone, ClickHouse, Apache Cassandra — или можно обойтись одним PostgreSQL?

Привет, Хабр! Меня зовут Александр Брейман, я доцент департамента программной инженерии факультета компьютерных наук НИУ ВШЭ и по совместительству эксперт Учебного центра IBS по управлению данными и архитектуре ПО. В прошлой статье я рассказывал о миграции с Oracle на PostgreSQL, а сегодня разберу, как последний работает с нетипичными видами данных.

Читать далее
Total votes 14: ↑12 and ↓2+13
Comments35

Умножение Монтгомери

Level of difficultyHard
Reading time11 min
Views16K

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

Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.

Про него я и хотел бы поговорить.

Читать далее
Total votes 32: ↑32 and ↓0+43
Comments7

Переписывая историю: от инструментов версионирования БД к практике

Level of difficultyEasy
Reading time23 min
Views3.1K

Пожалуй, почти каждый Spring разработчик сталкивается в своей практике с версионированием баз данных. На эту тему есть отличный доклад на Joker 2023 от Александра Шустанова, в котором спикер сравнивает 2 самых популярных инструмента для миграций БД: Flyway и Liquibase. Редакция Spring АйО приводит транскрипт доклада, для тех, у кого нет 45 минут для просмотра видео.

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

Читать далее
Total votes 11: ↑10 and ↓1+11
Comments11

Поиск по префиксу или тайные операторы PostgreSQL

Level of difficultyMedium
Reading time10 min
Views4.7K

В статье описывают различные (все известные мне) способы поиска строки по префиксу (по началу строки), которые можно ускорить индексами. Привожу скрипты для тестирования быстродействия и анализирую результат тестов: какой метод и индекс даёт наибольшую эффективность.

Интересно, что там?
Total votes 15: ↑15 and ↓0+20
Comments8

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

Level of difficultyMedium
Reading time8 min
Views103K

Кто ходил на собеседования по устройству на работу, тот знает, спрашивают там всякое и странное. Нередко можно встретить задачу SQL по нахождению сотрудников с максимальной зарплатой в отделе. Причем ваш потенциальный начальник считает, что у этой задачи есть только одно «правильное решение», то, про которое он прочитал в Интернете. Так ли это?

Любопытно...
Total votes 98: ↑87 and ↓11+97
Comments198

Information

Rating
Does not participate
Date of birth
Registered
Activity

Specialization

Backend Developer, Mobile Application Developer
Senior
PostgreSQL
English
Java
SQL