Habr.com

Syndicate content Хабр
Все публикации подряд на Хабре
Updated: 1 hour 13 min ago

Укрощаем асинхронный код с помощью async/await

Tue, 04/29/2025 - 11:50

Привет! Меня зовут Андрей Максимкин, я iOS-разработчик в hh. Мы в команде активно используем async/await подход при написании нового кода, а также активно применяем при переписывании старого. В процессе работы сталкивались с некоторыми интересными и не самыми очевидными моментами — их и рассмотрим в статье.

Работа с различными потоками — очень важная часть разработки мобильных приложений под iOS. Грамотное распределение нагрузки положительно влияет на скорость работы приложения, а значит, и на пользовательский опыт. До Swift 5.5 для работы с многопоточностью в основном использовали фреймворки GCD и NSOperation. Начиная с версии Swift 5.5 стал доступен функционал async/await. В статье мы кратко расскажем о базовых принципах данного подхода и сделаем акцент на проблемах и особенностях, которые необходимо знать при написании кода. Информация будет полезна тем, кто уже знаком с функционалом async/await, а некоторые примеры могут быть интересны и более продвинутым разработчикам. 

Поехали!

Взломай цензуру за 10 минут: искусство мимикрии в эпоху блокировок

Tue, 04/29/2025 - 11:40

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

— В этой статье вы не просто узнаете, как настроить такой «стелс» за 10 минут через удобный 3x-UI интерфейс, но и поймёте, почему VLESS с XTLS-Reality — это золотой стандарт обхода запретов в 2025.

метод, который 2 года работает в Иране, теперь доступен вам.Но спешите — белые списки не вечны.

Это лишь присказка — сказка внутри

Реализация протокола SRP на эллиптических кривых

Tue, 04/29/2025 - 11:27

Назначение протокола: безопасная аутентификация клиента на защищенных ресурсах. Защита клиента веб-сайта, даже после компроментации БД сайта. Замена стандартного парольного механизма аутентификации на более стойкую ко взлому схему.

Статус документа: запрос на обсуждение сообществом (Request For Comments).

ВНИМАНИЕ: Это учебный криптопротокол, не рекомендуется его реализовать на продуктивных системах до тех пор, пока он не пройдет экспертизу специалистами.

Назначение статьи: привлечь к первичному аудиту специалистов по эллиптическим кривым (профильных математиков и криптоаналитиков)

Участники взаимодействия: Алиса - клиент веб-сервера, Боб - веб-сервер (или его владелец) с ограниченным доступом, Ева (Eve) - пассивный слушатель сообщений, Меллори - активный злоумышленник, пытающийся вмешаться во взаимодействие Алисы и Боба, проксировать соединение, выдавая себя за Боба для Алисы, и за Алису для Боба.  Будем рассматривать наихудший сценарий, когда Меллори обладает некоторой важной информацией, помогающей ему вмешиваться в канал (он обладает верификатором V Алисы, в результате взлома веб-сервера Боба).

 

Необходимые параметры взаимодействия:

i - идентификатор Алисы на сервере Боба. Это может быть логин, электронная почта или 128-битное  произвольно выбранное натуральное число .

x - секрет Алисы. Это может быть 128-битное случайно выбранное число или результат криптографического преобразования пароля Алисы: x = Scrypt(Password), где

Scrypt - адаптивная криптографическая функция формирования ключа на основе пароля, созданная офицером безопасности FreeBSD Колином Персивалем для противодействия атакам методом грубой силы.

Читать далее

[Перевод] Почему Windows 7 долго входила в систему с одноцветным фоном рабочего стола?

Tue, 04/29/2025 - 11:21

Лично у меня установлен одноцветный фон. Он был стандартным в Windows 951, и с тех пор я не расстаюсь с этим голубовато-зелёным цветом. Он меня успокаивает.

Поэтому представьте моё удивление, когда мне показали статью техподдержки «Экран Welcome может отображаться в течение 30 секунд в процессе входа, если вы установили одноцветный фон в Windows 7 или в Windows Server 2008 R2». Почему вход выполняется медленнее с одноцветным фоном?

Читать далее

Как работает сетевой код в многопользовательских играх

Tue, 04/29/2025 - 11:10

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

Читать далее

Бинарная классификация одним простым искусственным нейроном. Личный опыт

Tue, 04/29/2025 - 11:00

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

Читать далее

Как сделать платежи в медцентрах понятнее для пациентов

Tue, 04/29/2025 - 11:00

Привет, Хабр. В этой статье расскажем, как настроить автоматические напоминания о предстоящих и просроченных платежах и мотивировать клиентов оплачивать счета заранее или хотя бы вовремя.

Чтобы менеджеры и операторы не тратили время на подобный контроль, а добросовестные клиенты получали поощрения, мы построили простую систему напоминаний с игровой механикой. Это рассылка сообщения через SMS API от МТС Exolve, при этом данные о клиентах и сделках храним в CRM-системе Битрикс24.

Читать далее

Технологический дайджест про все на свете, который я жду каждый месяц

Tue, 04/29/2025 - 10:55

Я очень люблю истории про будущее и интерпретацию этого будущего через сегодняшний день. Поэтому с удовольствием читаю технологические рассылки, в которых рассматриваются не технологии как таковые, а то, как они влияют на жизнь и людей. К сожалению, хороших рассылок на русском не так много, поэтому я бы хотел поделиться находкой, от которой получают удовольствие последний год - рассылкой-дайджестом “The Scope” от Михаила Калашникова.

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

Читать далее

Golang: почему select {} без default может убить ваше приложение

Tue, 04/29/2025 - 10:39

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

Сегодня хочу поговорить о проблеме, которую многие недооценивают в своих Go-проектах. Речь пойдет о бессрочном select {}, который легко может привести к блокировке, утечке ресурсов и деградации производительности.

Читать далее

Сигналы, роутинг, реактивность, Fusor приложение

Tue, 04/29/2025 - 10:24

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

Читать далее

[Перевод] Как Discord индексирует триллионы сообщений

Tue, 04/29/2025 - 10:21

В 2017 году мы рассказывали о том, как спроектировали нашу систему поиска сообщений так, чтобы она могла индексировать миллиарды сообщений. Благодаря этому наша поисковая инфраструктура стала высокопроизводительной, экономной, масштабируемой и простой в использовании. Мы решили выбрать Elasticsearch, в котором сообщения Discord шардились по индексам и использовалось логическое пространство имён для сообщений Elasticsearch в двух кластерах Elasticsearch. Сообщения шардились или по серверу Discord (который ниже будем называть гильдией) или по личным сообщениям (DM). Это позволило нам хранить все сообщения гильдии рядом для обеспечения высокой скорости запросов и работать с маленькими, более удобными кластерами. Так как поиском пользуются не все, сообщения индексировались лениво, и мы создали очередь сообщений, позволявшую воркерам получать блоки сообщений для индексирования, чтобы воспользоваться возможностями массового индексирования (bulk-indexing) Elasticsearch.

Но с ростом объёмов Discord наша поисковая инфраструктура начала трещать по швам…‍

Читать далее

Telegram‑бот на Supabase

Tue, 04/29/2025 - 10:16

Месяц назад я баловался с сервисом Lovable — мне показался прикольным инструментом, а главное, что он предложил мне настроить БД на Supabase с помощью пары кликов. База Postgres уже крутится, таблицы создаются, в админке всё прозрачно и, главное, что вск это бесплатно в пределах небольших квот.

Пока щёлкал UI заметил раздел Functions. «Что‑то похожее на AWS Lambda, только прямо рядом с базой». Отложил идею «попробовать на боте» в долгий ящик.

И тут несколько дней назад релиз OpenAI Images API. Захотелось сделать простого бота фотку за пару тапов, а не лезть постоянно в Playground. Вспомнил про Supabase → идеальный шанс обкатать edge‑функции без боли с серверами.

Как обычно для себя, накидал мысли по тому, как должен работать бот и на чем, и попросил ChatGPT накидать первые черновики ТЗ. Несколько правок и плюс-минус полное описание задачи было на руках. Затем пошёл в Claude через OpenRouter — он выплюнул скелет кода под Supabase edge functions. Имея на руках написанный код я пошел его править локально и запускать постепенно погружаясь в Deno и работу функций.

Архитектура решения

Читать далее

Как построить открытую АСУТП. IEC 61499 — основа открытой автоматизации будущего

Tue, 04/29/2025 - 09:49

Добрый день! Меня зовут Татьяна Пчельникова, и я — владелец продукта в ИТ-команде «Северстали», занимающейся разработкой компонентов для открытой АСУТП. В марте этого года мы начали выпуск статей, посвящённых нашей разработке компонентов открытой АСУТП, с первой статьёй этого цикла можно ознакомиться здесь: Как построить открытую АСУТП. Рождение идеи открытых систем: почему мир движется в этом направлении / Хабр. Мы внимательно прочитали все комментарии к прошлой статье и хотим отметить, что тема вызвала большой интерес и горячие споры, а значит, направление — актуальное, и  мы продолжим цикл публикаций. 

Чтобы не было разночтений, давайте дадим определение открытой АСУТП. Открытая АСУТП это система, построенная на принципах модульности, совместимости и взаимозаменяемости компонентов. Она позволяет гибко использовать элементы от разных производителей, являясь независимой от конкретного поставщика, и обеспечивает простую интеграцию с другими системами посредством реализации международных стандартных протоколов и интерфейсов. Эти характеристики позволяют открытой АСУТП масштабироваться как горизонтально, так и вертикально, что делает её перспективной для промышленного применения. «Северсталь» делает два компонента: открытый программный ПЛК (среду исполнения) и открытую среду разработки. Открытая SCADA, интересующая комментирующих, тоже разрабатывается, но другими участниками, входящими в рабочую группу открытой АСУТП.  

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

Читать далее

Аналитика по работе программистов, ИИ-ассистент для управления салоном красоты – и еще 9 российских стартапов

Tue, 04/29/2025 - 09:30

10 новых российских продуктов для отслеживания внешнего трафика в Telegram-каналы и профили пользователей, создания вовлекающих виджетов на сайте, запуска онлайн-школ и многого другого. Битва за «Продукт недели» началась!

Product Radar — здесь каждую неделю публикуются лучшие онлайн-сервисы и железки от русскоязычных команд.

Читать далее

Как выбрать оптимальный материал с помощью Ansys GRANTA Selector?

Tue, 04/29/2025 - 09:28

С оптимальным материалом изделие может быть дешевле, прочнее, экологичнее, может быть увеличен срок службы. Но как среди всех материалов найти тот, что действительно сделает изделие лучше? В предыдущей своей статье я писал про методологии выбора материал, и как можно сравнивать материалы. Одной и рассмотренный методологий была методология Эшби. Она позволяет осуществлять выбор материала на основе информации о потенциальный материалах, представленной в общем виде. То есть мы можем использовать даже некоторые оценочные свойства или диапазоны свойств для марки материала. Основным этапом методологии является ранжирование – сравнение материалов между собой. Он заключается в выборе критерия эффективности в зависимости от функции итогового изделия, цели (например снижение массы или повышение жёсткости) и ограничений. В данной статье рассмотрен пример использования данной методологии на практике с помощью программы GRANTA Selector.

Читать далее

БеКон-2025: Ваш билет в мир актуальной контейнерной безопасности

Tue, 04/29/2025 - 09:00

Дата: 3 июня 2025

Место: Москва

Сайт: www.bekon.luntry.ru

Контейнеры давно стали основой современной ИТ-инфраструктуры, но их защита остается одной из самых острых проблем. Если вы архитектор, DevOps/DevSecOps-инженер или специалист по информационной безопасности, то конференция «БеКон-2025» — это уникальная возможность выстроить  ваш подход к безопасности контейнерных сред.

Читать далее

Небольшая утилитка WP-Seeders для Вордпресса

Tue, 04/29/2025 - 05:51

Массовая генерация разделов для таксономии в WP через массив и команду wp-cli.

Прикольная штука вроде, удобная.

Открыть

Оценка задач в IT: делать или не делать — вот в чем вопрос?

Tue, 04/29/2025 - 02:35

Оценивать ли время на выполнение задач в IT? А может быть просто пойти и начать делать? А может быть можно оценить объем задач, а не время? И что же вообще нужно и можно оценить? 

В этой статья я рассказываю про 4 метода оценивания задач в IT — от угадывания до хороших и честных расчётов.

Читать далее

Обзор Gemini 2.0: путь Google к поколению 2.5

Tue, 04/29/2025 - 01:41

Привет, Хабр. Недавно Google выпустила свою передовую модель Gemini 2.5, закономерно обогнав поколение 2.0 в общем зачете. Однако, всё познаётся в сравнении, а лучший способ понять, что изменилось – сравнить с предшественниками. Что представляют собой модели 2.0 и насколько они актуальны (и актуальны ли вообще) – выясним в статье. 

Приятного чтения :-)

Читать далее

Айти-ипотека в России: что с ней не так

Tue, 04/29/2025 - 00:42

Айти‑ипотека в России: что с ней не так

Личный опыт и анализ проблемы

Введение: надежды vs реальность

Ранее я всерьёз задумался об IT‑ипотеке и смотрел объекты. А сейчас читаю новость об «устранении лимитов» — и вместо радости чувствую раздражение...

Абсурд ситуации:

Секретарь и бухгалтер в «льготной» IT‑компании могут получить ипотеку.

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

Читать далее

Who's online

There are currently 0 users and 3 guests online.