Pull to refresh
4
0.1

User

Send message

Эволюция enum

Reading time8 min
Views13K

Константы — это здорово. Типы — это замечательно. Константы определенного типа — еще лучше. А enum классы — это просто фантастика.

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

Читать далее
Total votes 16: ↑9 and ↓7+4
Comments28

Сложный пациент с Хабра: разработчик из Швеции, 23 года без стоматологов

Reading time21 min
Views17K
Знакомьтесь: Илья — один из подписчиков нашего блога на Хабре, разработчик. В 2021 году он уехал жить и работать в Швецию. Последние двадцать лет у Ильи были крайне напряжённые отношения со стоматологами. Точнее, этих отношений не было совсем: с начала двухтысячных он ни разу не был у зубного.

image

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

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

Поначалу — заочно: Илье попались на глаза наши статьи о типичных проблемах айтишников и он начал пролистывать наш блог. Слово за слово, пост за постом, и он принял решение хотя бы написать нам в личку.

К нам в клинику Илья пришёл летом 2023-го. Когда мы заканчивали лечение, он сказал мне:

«У вас в блоге много классных экспертных статей от докторов, но нет ни одной «с кушетки пациента».

Эта — первая. Нас здесь будет двое: я, врач Антон, и пациент Илья, и мы расскажем каждый со своей колокольни, как на практике проходит лечение больных с тяжёлым анамнезом и стоматофобией.
Читать дальше →
Total votes 47: ↑43 and ↓4+56
Comments38

Domain fronting для чайников, и как его использовать для обхода блокировок

Level of difficultyMedium
Reading time11 min
Views56K

Давайте сразу вопрос на засыпку: может ли быть так, что клиент подключается, ну, например, к серверу www.python.org (самому настоящему, тому, к которому обращаются еще миллионы клиентов со всего мира), а потом использует его как прокси и гоняет через это подключение трафик до своего VPS для доступа в неподцензурный интернет? Если вы не уверены в ответе на этот вопрос или почему-то ответили "нет", то добро пожаловать в статью.

Я уже не раз рассказывал здесь о технологии XTLS-Reality (1, 2, 3) суть которой в том, что ваш прокси-сервер VPS может очень достоверно маскироваться под какой-нибудь популярный веб-сайт - принимать подключения, которые будут выглядит точно так же, как обращения к настоящему сайту, отвечать на них полностью аутентичным TLS-сертификатом, и в целом вести себя как тот настоящий сайт. Единственная проблема - сам IP-адрес. Немного подозрительно, когда к какому-нибудь якобы www.google.com постоянно обращается только один пользователь, а IP-адрес этого сервера на самом деле даже не относится к автономной сети Google.

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

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

Читать далее
Total votes 61: ↑60 and ↓1+73
Comments45

GOST: швейцарский нож для туннелирования и обхода блокировок

Level of difficultyMedium
Reading time13 min
Views116K

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

Сегодня я расскажу о замечательном инструменте под названием GOST. Не пугайтесь, он не имеет никакого отношения к ГОСТ-шифрованию или чему-то подобному, на самом деле это Go Simple Tunnel. Он действительно simple (простой) в использовании и настройке, но при этом невероятно мощный, поскольку поддерживает огромное количество протоколов и транспортов, из которых вы при желании сможете построить самые упоротые и бронебойные комбинации, а именно...

Читать далее
Total votes 145: ↑142 and ↓3+174
Comments114

Управление сервером для домохозяйки. Чего не умеет ispmanager

Level of difficultyEasy
Reading time7 min
Views9.2K
Настройки доменных имён в ispmanager

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

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

В общем, хотим сказать пару слов о ispmanager — коммерческой панели управления хостингом. Оказывается, некоторые вещи в графическом интерфейсе действительно можно сделать быстрее, чем из консоли. Хотя кое-что она не умеет (и никогда не научится).
Читать дальше →
Total votes 28: ↑25 and ↓3+36
Comments16

Локальные нейросети. Аналог ChatGPT-3.5 на домашнем ПК: OpenChat 7B превосходящая 70B, DeepSeek для кода уровня ChatGPT

Reading time8 min
Views92K

Есть много локальных аналогов ChatGPT, но им не хватает качества, даже 65B модели не могут конкурировать хотя бы с ChatGPT-3.5. И здесь я хочу рассказать про 2 открытые модели, которые всё-таки могут составить такую конкуренцию.

Речь пойдет о OpenChat 7B и DeepSeek Coder. Обе модели за счет размера быстры, можно запускать на CPU, можно запускать локально, можно частично ускорять на GPU (перенося часть слоев на GPU, на сколько хватит видеопамяти) и для такого типа моделей есть графический удобный интерфейс.

И бонусом затронем новую модель для качественного подробного описания фото.

UPD: Добавлена информация для запуска на Windows с ускорением на AMD.

Читать далее
Total votes 88: ↑86 and ↓2+102
Comments87

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

Level of difficultyMedium
Reading time15 min
Views297K

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

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

Читать далее
Total votes 273: ↑272 and ↓1+323
Comments353

Нейросеть мне в помощь или как я сделал телеграм бота, который умеет переводить песни

Level of difficultyEasy
Reading time14 min
Views14K

Однажды, когда я искал эффективное решение для преобразования речи в текст (транскрибации), чтобы применить его в своем проекте умной колонки, обнаружил интересное решение под названием Whisper от широко известной компании Open AI. К сожалению, Whisper не подошел для реализации в моем проекте по «аппаратным» причинам, но его функционал отпечатался в моей душе. Прошло время и меня посетила идея: «Почему бы не разработать телеграмм бота, куда бы пользователь мог отправлять аудиофайл, а в ответ получал текстовую расшифровку и перевод (песни) на родной язык». В этой статье я расскажу о реализации данной идеи и Whisper в этом проекте займет одну из ключевых функций.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments23

Дифференциальная сеть — формальная система для формальных систем

Reading time17 min
Views1.6K

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

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

Четыре способа написать Hello world, или инструменты для создания GUI на Python

Level of difficultyEasy
Reading time5 min
Views46K

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

Под катом — подборка некоторых инструментов для создания интерфейсов на Python. Сохраняйте статью в закладки и предлагайте свои варианты в комментариях!
Читать дальше →
Total votes 43: ↑40 and ↓3+50
Comments61

Ностальгические игры: Dungeon Keeper 2

Level of difficultyEasy
Reading time11 min
Views6.5K

Большинство современных игроков даже не осознают, насколько комфортнее быть геймером в нынешнюю интернет эпоху. Ведь для того, чтобы сыграть в новую игру, в вашем распоряжении находятся такие площадки, как Steam, GOG, Epic Games Store и многие другие. А для тех, кто привык плавать под чёрным парусом, всегда найдётся множество торрент площадок, где есть возможность скачать понравившийся проект. Но как же хардкорно это было раньше…

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

Читать далее
Total votes 22: ↑19 and ↓3+18
Comments25

Решаем криптографическую задачу: Trifid cipher

Level of difficultyEasy
Reading time6 min
Views2.2K

В этой статье продолжим тему решения криптографических задач с ресурса MysteryTwister. И сегодня на очереди любопытный шифр, далёким предком которого является квадрат Полибия. Мы познакомимся с трёхраздельным шифром Феликса Деластеля. Что интересно информации об этом энтузиасте  криптографии очень мало в английском и французском сегментах сети (Деластель — француз), а в русскоязычном о нём почти нет совсем, хотя наверняка человеком он был очень неординарным. Почему я так решил? Да потому, что Феликс Деластель по роду профессиональной деятельности не имел к криптографии совершенно никакого отношения, поскольку всю жизнь проработал в порту Сен-Мало и криптографией занимался факультативно. Тогда как ранее и позже криптография была уделом учёных, профессиональных военных и дипломатов. Биографических данных о нём очень мало, но одно известно точно: на рубеже XIX и XX веков Деластель написал книгу "Traite Elementaire de Cryptographie" (Базовый трактат по криптографии), в которой он описывал системы шифрования, которые создал.

Порешаем?
Total votes 7: ↑7 and ↓0+7
Comments19

Как открыть счет и получить карту в банках Сербии?

Reading time7 min
Views51K

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

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

Если требуется карта для оплаты покупок за границей, или перевода денег в Европу из РФ, чаще открывают счет в Казахстане, где можно открыть удаленно или в Армении, где существует максимальное количество возможностей пополнения карты из РФ. Сербия - это в основном, про переезд.

Кто имеет право открыть счет в банке кроме граждан Сербии и постоянных резидентов?

На текущий момент нерезиденты не имеют серьезных препятствий для открытия счета в местной финансовой организации. Однако в современных реалиях банки боятся попасть под санкции и серьезнее относятся к проверке документов иностранцев. Правила, регламентирующие процедуру открытия счета нерезидентами, меняются ежедневно. Для положительного исхода потребуется внимательно изучить их, выбрать банк, лояльный к гражданам РФ, и грамотно подготовить пакет документов. Главная задача убедить финансовую организацию о своем намерении оставаться на территории Сербии длительное время и, соответственно, необходимости открытия счета в местном банке.

Читать далее
Total votes 10: ↑5 and ↓5+3
Comments3

Пишем Telegram бота для распознавания голосовых сообщений и их обработки с помощью AI

Level of difficultyMedium
Reading time7 min
Views8.4K

Всем привет. Меня зовут Игорь Филиппов и я веб-разработчик. Вы, вероятнее всего, знаете, как прочно ChatGPT закрепился в медийном пространстве. Ежедневно выходит сотни статей и видео на эту тему, предлагая разнообразные варианты применения.

Мне в голову пришла идея создать бота, который автоматически под каждым голосовым сообщением оставляет свой реплай с полной расшифровкой аудио. Но в процессе разработки я подумал, что можно дополнительно проинтегрировать бота с ChatGPT - для получения краткого пересказа самого сообщения. Тем более, к тому моменту, когда я делал бота, Open AI только выпустила доступ к API.

С какими сложностями столкнулся, как решил и что получилось в итоге описал в этой статье.

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

Werkzeug: раскручиваем arbitrary file read до RCE в веб-приложении на flask

Level of difficultyEasy
Reading time10 min
Views4.2K

В данной статье мы:
1) Создадим свое первое веб-приложение на Flask
2) Изучим, зачем нужен режим отладки?
3) Рассмотрим, как генерируется PIN для входа в интерактивной консоль Python.
4) Разберем, как можно с помощью уязвимости чтения файлов получить доступ к интерактивной консоли Python.
БОНУС) Узнаем, что же делать, если консоль была заблокирована из-за слишком большого количества попыток входа

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

Thinkpad T480 — сравнение вариантов охлаждения ноутбука (MX4, PTM7950, жидкий металл, разные радиаторы и т. д.)

Reading time3 min
Views15K

Thinkpad T480 с i5 8350U троттлит в своей стоковой комплектации, я провёл несколько тестов с разными вариантами охлаждения процессора этого ноутбука, и детально сравнил результаты в этом гайде. Он будет полезен не только для владельцев T480, так как эти способы могут быть использованы и в других устройствах.

T480 выпускается в различных комплектациях, версия с i5 8350u без дискретной видеокарты имеет радиатор с одной медной трубкой, он справа на фотографии. Версия ноутбука с процессором i7 8550U и дискретной видеокартой mx150 имеет радиатор с двумя медными трубками и область для GPU.

Ничто не мешает поставить большой радиатор в ноутбук без дискретной видеокарты, чтобы значительно понизить температуру процессора. Я купил радиатор с двумя медными трубками на Aliexpress за 26$ (2100 рублей на момент написания статьи).
Маленький радиатор весит 69 грамм, большой 93.

Читать далее
Total votes 14: ↑13 and ↓1+18
Comments53

Причуды эволюции: необычное «железо», которое не должно было появиться. Часть 1

Level of difficultyMedium
Reading time16 min
Views29K


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

То ли дело раньше — в погоне за кошельками пользователей производители комплектующих были готовы идти на куда больший риск, а иногда в роли авантюристов выступали даже создатели альтернативных чипсетов. Встречались даже материнские платы для двух разных поколений процессоров, например 386 и 486! Или, например с двумя разъемами — для процессора базового и для топового уровней. И это не только возможность выбора между Celeron (socket 370) и Pentium II (slot 1), но и даже между Pentium III (slot 1) и могучим Pentium III Xeon (slot 2).

Да, пожалуй, с материнских плат и стоит начинать эту тему. Но странных гибридов рассмотрим в другой раз, сегодня мы заберемся глубже — я откопал семь примеров таких химер, которых быть просто не должно! Расчехляем машину времени, устраиваемся поудобнее, откидываемся на спинку табуретки, поехали!
Читать дальше →
Total votes 110: ↑110 and ↓0+110
Comments67

«Карманный синоптик за час». Пишем Telegram-бота для мониторинга погоды на Python

Level of difficultyMedium
Reading time6 min
Views31K

Хабровчане, всем привет! Меня зовут Максим Плачковский, я автор канала PythonToday. Из этой статьи вы узнаете, как написать своего Telegram-бота для получения данных о погоде в любом городе нашей планеты. Мы детально рассмотрим работу с API, парсинг JSON и напишем бота на асинхронной библиотеке aiogram. А после — загрузим его на виртуальный сервер и запустим. Если интересно, добро пожаловать под кат!
Читать дальше →
Total votes 48: ↑38 and ↓10+41
Comments16

Решаем криптарифмы с помощью алгебры и python

Level of difficultyEasy
Reading time6 min
Views8.5K

Если вы увлекались математикой в возрасте до 12 лет, то, наверное, встречались с криптарифмами - арифметическими ребусами.

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

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

Тайна исчезающих сообщений: зачищаем Telegram в автоматическом режиме

Level of difficultyEasy
Reading time5 min
Views6.8K

На фоне новости о датасатанисте, который "клонировал" своих друзей в цифровое пространство, обучив LLM на 500.000 сообщений в групповом чате (на самом деле не только, но причину каждый найдёт для себя сам), будем кормить паранойю и пошагово разбираться, как же уничтожить свой "цифровой след" в мессенджере Telegram.

Читать далее
Total votes 4: ↑2 and ↓20
Comments5

Information

Rating
3,620-th
Registered
Activity