Search
Write a publication
Pull to refresh
0
0.1
Евгений @pewpew

Бэкенд разработчик

Send message

Как стать VPN провайдером за один вечер

Level of difficultyMedium
Reading time13 min
Views182K

Рассказываю о своём опыте использования Xray (с протоколом VLESS-Reality) - одного из лучших решений для преодоления интернет-цензуры на сегодняшний день. Я потратил много времени на то, чтобы разобраться с ним - теперь вам достаточно одного вечера, чтобы поднять свой сервер на несколько десятков пользователей, c xray на борту!

скрипт ex.sh для простой настройки и установки; есть поддержка Docker

легко добавлять пользователей; клиентские конфиги в форме url-ссылок

правильные конфиги: скрытность + удобство

трафик популярных российских сайтов идёт напрямую, a не через сервер

для xray есть приложения под все популярные ОС - делюсь инструкциями

только https, нет udp; торренты через сервер блокируются по возможности

мой проект на гитхабе: easy-xray

Интересны детали? Добро пожаловать под кат

Генератор случайных чисел, который можно запустить в голове

Level of difficultyHard
Reading time8 min
Views27K

Люди ужасно плохо справляются с придумыванием случайных чисел. Я хотел научиться быстро генерировать «достаточно случайные» числа. Мне не нужно было что-то совершенное, просто способ придумывания случайных цифр за полминуты. Поискав онлайн, я нашёл старый пост в Usenet, написанный Джорджем Марсалья:

Выберите двухразрядное число, допустим, 23. Оно будет вашим «порождающим значением» (seed).

Создайте новое двухразрядное число: количество десяток плюс шесть, умноженное на количество единиц.

Пример последовательности: 23 –> (2 + 6 * 3) = 20 –> (2 + 6 * 0) = 02 –> 12 –> 13 –> 19 –> 55 –> 35 –> …

Его период будет порядком множителя (6) в группе остатков, простых относительно модуля, 10 (в данном случае 59).

«Случайными цифрами» будет количество единиц двухразрядных чисел, то есть 3,0,2,2,3,9,5,… то есть члены последовательности mod 10.

Больше всего Марсалья известен своим набором тестов diehard-генераторов случайных чисел (RNG), так что он в этом понимает (здесь и далее под RNG я имею в виду генератор псевдослучайных чисел (PRNG)). Мне стало любопытно, почему это работает и как он выбрал 6.

Мы будем писать на Raku, языке для гремлинов. На случай, если вы тоже гремлин, под спойлерами я буду объяснять все странные особенности.
Читать дальше →

Telegram бот для Mikrotik с Webhook и парсером JSON

Reading time20 min
Views36K
Как вы думаете, можно ли, используя только Mikrotik скрипт, написать интерактивный Telegram бот, который будет работать целиком в среде маршрутизатора с поддержкой Webhook, входящих событий от API Telegram?

Собираем автономную игру на C# в 2 килобайтах

Level of difficultyMedium
Reading time11 min
Views22K

Моё детство пришлось на эпоху 1,44-мегабайтных дискет и 56-килобитных модемов, поэтому я всегда любил маленькие программы. Раньше можно было записать на дискету кучу мелких игр и таскать её с собой. Если программа не помещалась на дискету, я задумывался, почему — в ней много графики? Есть музыка? Возможно, она выполняет много сложных операций? Или она просто раздута?

В наши дни дисковое пространство стало настолько дешёвым, что люди отказались от оптимизации по размеру.

Размер важен только при передаче: если вы передаёте программу по проводам, мегабайты равны секундам. По быстрому соединению на 100 Мбит в лучшем случае можно передать 12 МБ в секунду. Если на другом конце провода находится человек, ожидающий завершения скачивания, то разница между пятью и одной секундой может существенно повлиять на его ощущения.

Человек может зависеть от времени передачи как напрямую (пользователь, скачивающий программу по сети), так и косвенно (serverless-сервис, отвечающий на веб-запрос).

Люди обычно воспринимают всё, что длится меньше 0,1 секунды, как мгновенное, 3 секунды — это примерно тот предел, после которого прерывается состояние потока пользователя; а уж 10 секунд удержать внимание пользователя очень сложно.

Хотя уменьшение сегодня уже необязательно, оно всё равно лучше.

Эта статья задумывалась как эксперимент, позволяющий выяснить, каким может быть минимальный размер полезного автономного исполняемого файла C#. Могут ли приложения на C# достичь размеров, при которых пользователи будут ощущать их скачивание как мгновенное? Позволит ли это использовать C# там, где он не используется сейчас?
Читать дальше →

Как я сделал ремастер всех серий Том и Джерри в 2к всего за пару месяцев

Level of difficultyEasy
Reading time8 min
Views97K

Улучшение Том и Джерри из 480p в 1440p

С чего всё началось? Как-то я решил в третий раз с детства пересмотреть всю оригинальную коллекцию "Том и Джерри", но я, в отличие от маленького ребёнка, не потребляю любой контент вне зависимости от его качества. И вот я собрался посмотреть самую доступную версию, а там вот это цветошоу с постоянными царапинами на всём экране.

Мур-мур-мур

Пример исследовательского реверс-инжиниринга приложения Zone Launcher

Level of difficultyMedium
Reading time6 min
Views12K

Друг порекомендовал приложение, но купить его не получилось с территории России. Статья о том, как поисследовать приложение до той степени, чтобы покупка потеряла свою актуальность. Может быть полезно почитать и разработчикам, чтобы понимать, что полную версию приложение включить достаточно легко.

Читать далее

Pet-проект «Наручные часы на светодиодах»

Level of difficultyEasy
Reading time9 min
Views18K

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

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

Про наручные часы со светодиодами

Чипы для всех. Свободный стандарт на производство микросхем

Level of difficultyEasy
Reading time7 min
Views13K
LibrePCB: бесплатный инструмент для разработки печатных плат под Windows, Linux и MacOS

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

Многие хотели бы составить конкуренцию лидерам — TSMC, Samsung и Intel, которые являются фактически монополистами в производстве современных микросхем по техпроцессу 2/5 нм.
Читать дальше →

OpenConnect: недетектируемый VPN, который вам понравится

Level of difficultyMedium
Reading time15 min
Views324K

Я уже написал здесь много статей на тему прокси-протоколов и прокси-клиентов, которые очень сложно детектировать и заблокировать, и которые используют пользователи в Китае, Иране, Ираке, Туркменистане, и теперь вот в России (мы здесь в отличной компании, правда?). Но довольно часто мне в комментариях писали, мол, это все отлично, но мне нужен именно VPN для целей именно VPN - доступа в частные локальные сети, либо для соединения клиентов между собой, и желательно так, чтобы его не заблокировали обезьяны с гранатой. Поэтому сегодня мы поговорим именно о VPN.

Классические OpenVPN, Wireguard и IPSec отметаем сразу - их уже давно умеют блокировать и блокировали не раз. Модифицированный Wireguard от проекта Amnezia под названием AmneziaWG — отличная задумка, но есть одно но...

Читать далее

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views347K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее

Технически подкованный способ похудеть без смс и регистрации

Level of difficultyEasy
Reading time3 min
Views21K

Я программист, и никого не удивлю своей проблемой — в 28 лет набрал 10 кг жира, в 34 года ещё 10 кг, сейчас мне 44 года и я до сих пор не избавился полностью от этих совершенно ненужных килограммов.

Теория полностью известна, но

Читать далее

Что под капотом у цифрового фото и видео: субдискретизация

Level of difficultyMedium
Reading time7 min
Views8K

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

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

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

Что же там?

Карты, Деньги, Два копыта

Level of difficultyEasy
Reading time5 min
Views3.3K

Привет ,Habr. Сегодня мы начнём разработку своего карточного рогалика про приготовление... рогаликов!

В данной статье начнём создавать свой карточный рогалик на Godot 4.1, создадим карты, научимся их перемещать и создадим "Руку карт".

Читать далее

Хочите виртуальный macOS на своём PC? Их есть у меня

Level of difficultyEasy
Reading time6 min
Views104K

Статья о том как установить себе "macOS Monterey" в виртуальной машине на обычном PC без покупки для этой цели макбука или айМака.

По идее это просто туториал как получить у себя на обычном PC систему macOS и Xcode, но так как я тут нахожусь в состоянии "Отхабренный" я могу отправлять статьи только в "Профильные хабы". По этой статье больше бы подошло "Tutorial", но такого хаба я не нашёл и поэтому выбрал наиболее близкие хабы по теме статьи: "Настройка Linux" и "Разработка под iOS". И КДПВ тоже я выбрал идиотскую -- просто сделал скриншот со своего компа где продемонстировал версию macOS и версию установленного у меня Xcode.

Если интересно, то "Читать далее"

Подробный разбор 64b nano game: snake64

Level of difficultyHard
Reading time12 min
Views3.6K

Всем салют!

Очень приятно, что многим зашёл недавний разбор моего 64b intro: radar. Я рад, что у меня, наконец, дошли до этого руки. Лёд тронулся, господа присяжные заседатели.

На сей раз предлагаю вашему вниманию 64-байтовую игру «змейка», того же автора. Да, друзья, это самая компактная по размеру бинарного кода змейка из существующих (у меня даже есть 45-байтовая версия, но не такая симпатичная). И это именно та самая любимая многими вечно голодная змейка со старых мобильников, которая бегает по экрану и постоянно что‑то жуёт, увеличиваясь в длине.

Если вам не терпится поиграть прямо здесь и сейчас, только сегодня и только для вас я подготовил онлайн-версию, играйте на здоровье! Важно: для игры нужно использовать стрелки на цифровой клавиатуре.

Посмотреть что там...

18 самых больших неразгаданных тайн в физике

Level of difficultyEasy
Reading time14 min
Views108K

В 1900 году британский физик Лорд Кельвин, как говорят, заявил: "В физике больше нет ничего нового для открытия. Все, что остается, - это все более точные измерения". В течение трех десятилетий квантовая механика и теория относительности Эйнштейна революционизировали эту область. Сегодня ни один физик не осмелился бы утверждать, что наши физические знания о Вселенной близки к завершению. Напротив, каждое новое открытие, кажется, открывает ящик Пандоры еще более глубоких вопросов в физике. Ниже представлена выборка наиболее глубоких открытых вопросов.

Читать далее

Сам написал, сам поиграл: как я написал 2D-игру для Android полностью с нуля, весом менее 1мб?

Level of difficultyMedium
Reading time20 min
Views30K
image

Многие программисты так или иначе имеют тягу и интерес к разработке игр. Немалое количество спецов было замечено за написанием маленьких и миленьких игрушек, которые были разработаны за короткое время «just for fun». Большинству разработчиков за счастье взять готовый игровой движок по типу Unity/UE и попытаться создать что-то своё с их помощью, особенно упорные изучают и пытаются что-то сделать в экзотических движках типа Godot/Urho, а совсем прожжённые ребята любят писать игрушки… с нуля. Таковым любителем писать все сам оказался и я. И в один день мне просто захотелось написать что-нибудь прикольное, мобильное и обязательно — двадэшное! В этой статье вы узнаете про: написание производительного 2D-рендерера с нуля на базе OpenGL ES, обработку «сырого» ввода в мобильных играх, организацию архитектуры и игровой логики и адаптация игры под любые устройства. Интересно? Тогда жду вас в статье!
Читать дальше →

Как я разбирал нестандартный формат 3D-моделей, чтобы показывать Лего у себя на сайте

Level of difficultyMedium
Reading time7 min
Views8.4K

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

Я перепробовал несколько редакторов 3D-моделей Лего (моим главным условием была работа на Linux, либо в вебе), и остановился на онлайн-редакторе Mecabricks. Но, уже перенеся туда несколько из моих творений, понял, что с задачей «показывать всем друзьям» всё будет сложнее: у Mecabricks довольно скудные возможности экспорта, а его собственный формат с расширением .zmbx понимает только он и его плагин для Blender.

Поэтому я решил посмотреть, как этот формат устроен, и написать свой конвертер во что-то более общепринятое. В качестве целевого формата я выбрал glTF, а инструмент незатейливо назвал zmbx2gltf.

В этой статье я расскажу, как постепенно разбирал этот непонятный .zmbx, про устройство и преимущества glTF как формата передачи 3D-ассетов между разными инструментами, и про то, какие проблемы я решал, конвертируя одно в другое.
Читать дальше →

Как я получил Remote Work ВНЖ в Дубае по гайду в интернете

Level of difficultyEasy
Reading time6 min
Views18K

Привет всем! Меня зовут Максим, я технический продакт-менеджер в американском стартапе. В мае я получил резидентскую визу и Emirates ID в ОАЭ как Digital Nomad по инструкции в интернете. Рассказываю, чем реальность отличается от гайдов в интернете, с конкретными датами и суммами.

Читать далее

Как и зачем я на Udemy курс по программированию для детей делал

Level of difficultyEasy
Reading time8 min
Views2.2K

У меня есть дочь. Ей исполнилось два года недавно. Когда она еще не родилась, я уже думал о том, черт побери, кругом столько всего! Когда мне было 6 (время первых осознанных воспоминаний у меня), источников информации было от силы четыре. Радио, печатная продукция, черно-белый телек и слухи от соседей по лестничной площадке. И так продолжалось долго, до 14 лет точно. Почему я в этом уверен? Да потому что ничего не изменилось. Только телек стал цветной. А вот потом появился интернет по DSL, потом широкополосный, мобильный, в кармане, в утюге и тостере. Еще 6 лет назад не было тиктока, а теперь это не просто сервис для обмена короткими видео с котиками, а платформа, которая влияет на вкусы, взгляды и мировые тренды. Тикток даже пытаются использовать как образовательную среду, но не мне его за это осуждать.

Читать далее

Information

Rating
3,989-th
Location
Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Game Developer
Senior
PHP
Git
SQL
REST
Godot Engine
GDScript
Lua
Redis
Yii framework