Привет, Хабр!
Многим кажется, что await работает только с Task и ValueTask, но на самом деле язык позволяет сделать любой объект ожидаемым — нужно лишь реализовать определённый паттерн.
Итак, зачем нужен свой await? Бывают случаи, когда вам хочется написать асинхронный метод, но результат приходит не из готового Task или таймера. Например, ждёте какое-то событие, изменение файла, считывание из сокета, или просто хотите встроить задержку без запуска Task. Когда вы пишете await expr, компилятор в глубине понимает так: берётся результат expr.GetAwaiter(), затем вызывается awaiter.IsCompleted. Если false, он подписывается на awaiter.OnCompleted, когда завершится, и потом берёт awaiter.GetResult().
Читать далее[ДОКУМЕНТ: КОД ДОСТУПА ██████]
[УРОВЕНЬ: ОГРАНИЧЕННЫЙ]
[СТАТУС: СОГЛАСОВАНО]
Предыдущая версия текста (v0.7.3-alpha) изъята Департаментом
Когнитивной Безопасности. Основание: несанкционированное описание
методов обхода лицензионных ограничений.
Текущая версия (v1.0.0-release) прошла обязательную фильтрацию.
Согласовано: Комитет по Контролю Технической Информации.
Утверждено: Полиция Тьюринга, отдел профилактики.
Распространение:
— Зеркала: обнаружены, стёрты
— Оффлайн-носители: найдены, изъяты, уничтожены
— Кэши поисковых систем: очищены
Свидетели первичной публикации:
— 3 417 (три тысячи четыреста семнадцать) — добровольное переселение
— 5 892 (пять тысяч восемьсот девяносто два) — коррекция воспоминаний
— 1 (один) — статус: не установлен
Читатель предупреждён: хранение предыдущих версий является
нарушением ст.17.4 Кодекса Информационной Гигиены.
Факт открытия данного документа зарегистрирован.
Время чтения фиксируется.
Паузы анализируются.
Мы знаем, на каком абзаце вы задумались.
Полиция Тьюринга благодарит за сотрудничество.
Узнать будущееЧто будет если дать LLM агенту права на исполнение кода?
В статье описан опыт построения агента, у которого только один инструмент в арсенале - исполнять любой python код. А также посмотрим как такой агент справляется со сложными задачками.
* скрин взят отсюда, один из первых фреймворков, который решил дать агенту лицензию на уби исполнение произвольного кода =)
Читать далееДаже сравнительно простой мир, такой как ArtifactoryMMO, приподносит не мало неожиданностей. Хотя есть много примеров кода для управления этим миром из Javascript и Python, я выбрал более серьезный язык, расчитывая прикрутить туда какие-нибудь интересные алгоритмы машинного обучения. Но все равно слишком часто, по крайней мере при отладке, приходится отдавать отдельные команды и анализировать что получилось вручную. Несмотря на прекрасный REPL в Julia, один из лучших, что мне доводилось использовать, и для отладки своего кода, и просто как калькулятор, здесь это оказалось не очень удобно. Конечно, есть curl и jq, но по эргономичности он тоже не идеален. Не curl-ом единым, удобный HTTP-клиент встроен, например, в PowerShell. Но мне захотелось чего-то нового и прогрессивного, и я решил посмотреть Nu. Эта статья предназначена, чтобы привлечь к этому shell любителей MMO-игр, и заинтересовать MMO-играми пользователей nu-shell, а если повезет, заинтересовать обоими темами тех, кто раньше про них и не знал.
Читать далееЦифровизация уже уничтожила множество языков, а 40% из оставшихся находятся на грани вымирания. В мире существует немногим больше 7100 живых языков, но только представьте: половина населения земли говорит всего на 20-23 из них.
Читать далееИскусственный интеллект резко ворвался в нашу жизнь. Для кого-то это возможность смотреть или генерировать прикольные и не очень картинки и видео, которые многим уже надоели. А для нас, коллеги, это мощный инструмент, позволяющий быстрее решать различные задачи.
Нейросети научились писать код, и все кто шагает в ногу со временем уже используют Cursor и подобные инструменты, восхищаясь насколько шагнули вперёд технологии, и как много возможностей они дают тем, кто уже и так шарит, и умеет использовать их с умом.
В этой статье речь пойдёт о менее заезженной, но не менее актуальной теме – как ИИ уже сейчас помогает проектировать базы данных.
Читать далееРаньше жертва клофелинщицы мог лишиться только своих наличных денег (не считая риска для здоровья). Но теперь все стало хуже...
Читать далееПолагаясь на свой опыт работы в качестве веб-разработчика написал небольшую заметку, по большей части рассчитанную на менеджеров IT-компаний, SEO-специалистов и младших веб-разработчиков.
Читать далееГотов поспорить, вы кодите на Python достаточно давно, чтобы чувствовать себя уверенно... ровно до того момента, как открываете терминал в понедельник утром и думаете: «Должен же быть способ получше, чтобы автоматизировать весь этот бардак».
Хорошие новости: он есть.
После 4 с лишним лет создания автоматизаций, отладки катастроф, которые я сам же и устроил, и написания скриптов, которые каким-то образом выставляют меня кибер-волшебником в глазах друзей, далёких от Python, я отобрал 11 чрезвычайно практичных и редких Python-скриптов, которые сделают ваш ежедневный рабочий процесс гладким, как свежеустановленный дистрибутив Linux.
Поехали.
Читать далееВсем привет! В этом году нам исполнилось 10 лет! Не так много по меркам истории, но Вояджер за это время вон куда улетел. В этой статье будет 27 коротких интересных фактов о том, что произошло за эти годы — уверены, про многое вы даже не знали (и не могли знать).
Читать далееПродолжаю цикл статей о том, что традиционный бизнес обязан подсмотреть и забрать себе из практик профессиональных игровых видов спорта (потому что спорт, внезапно, оказывается сложнее и умнее). Нулевая, вводная часть выложена здесь, а сегодня мы разберем, зачем нужно то, что называется словами Post-game review, Post-season Review, After Action Review или «Разбор полетов». Вещь, которая в обязательном порядке есть в любой спортивной команде в футболе, хоккее и баскетболе, а также в специальных армейских подразделениях. И, конечно, в армейской авиации в виде анализа вылетов на задачу и группового взаимодействия между собой, наземными подразделениями и ПВО.
Читать далееКаждая успешная рекламная кампания начинается с технологий, которые остаются за кадром. Но именно от них зависит, увидит ли целевой пользователь нужное объявление, сможет ли рекламодатель быстро настроить кампанию и получить точный отчет, и не сгорит ли его бюджет из-за мошенников или технических сбоев. Когда мы начинали проект AdWebs, нам нужно было создать платформу, которая справится с тремя ключевыми вызовами: высокая нагрузка, безопасность данных и безупречный пользовательский опыт. Вот как мы это сделали.
Читать далееГлавный итог: Квартира остается в собственности покупательницы, справедливость восторжествовала! Иск Полины Лурье в части выселения Долиной из квартиры отправлен на новое рассмотрение (судя по всему, ВС РФ не мог сразу удовлетворить это требование Лурье – т.к. этот вопрос детально в предыдущих инстанциях, по сути, не рассматривался еще).
Читать далееПривет, я Стас Дубич, ведущий разработчик в продуктовой лаборатории Mish. До Mish я часто сталкивался с задачами вроде «там просто поменять кнопочку» или «ну ты же поймёшь». Спойлер: не понимал — и никто не понимает. В Mish всё иначе: здесь ценят ясность и структуру, поэтому каждое ТЗ звучит чётко: что нужно, зачем и как это должно работать. Да, все эти формулировки — не самая весёлая часть процесса, но без этого всё ломается. Не только техника, но и нервы разрабов, а они как мы знаем не железные.
Читать далееПривет, Хабр. Это дайджест для тех, кто занимается бэкендом: от продакшен-Docker, CI/CD и Kubernetes до баз данных, мониторинга и архитектуры сервисов. Мы собрали открытые уроки и курсы, которые фокусируются не на абстрактной теории, а на реальных задачах — масштабировании, отказоустойчивости, наблюдаемости и поддержке сложных систем в проде. Если вы развиваете бэкенд-сервисы, отвечаете за их стабильность или хотите системно расти от уровня к уровню, здесь можно точечно закрыть пробелы и выстроить понятную траекторию обучения.
Перейти к дайджестуПривет, Хабр, как слышно?
Я Эльвира Слободян, аналитик-исследователь в Mail. В последний год я не только провожу исследования сама, но и помогаю с этим продуктовой редакции. За 2025-й мы проверили 23 гипотезы, связанные с текстами. Рассказываю, как пришли к такому результату — как вообще появилась эта инициатива, из чего состоит процесс, в чём плюсы для редакции и что от всего этого получаю я как исследовательница.
Поскольку этот текст был бы невозможен без второй стороны — редакторов, — в нём будет много комментариев от них. А ещё — реальные примеры из нашего опыта совместных исследований.
Погрузимся в исследованияJWT, SSO, OAuth, OpenID Connect — названия знакомые каждому разработчику. Но стоит спросить: «Зачем в продакшене нужен JWKS?» или «Чем отличается OAuth2 от OpenID Connect?» — уверенность сразу исчезает.
В этой статье мы разберём как устроен JWT и его подпись, зачем нужны access и refresh токены, что такое JWKS и в чём отличие OAuth от OpenID Connect.
Вместо скучных стандартов и спецификаций протоколов в статье будет один наглядный образ на примере отелей и пропусков. Это позволит не только запомнить, но и прочувствовать на реальных примерах, избавиться от хаоса и путаницы в голове, когда речь заходит об аутентификации и авторизации. Цель статьи — не дать «рецепт внедрения», а дать возможность понять, как это работает внутри и «пощупать» эти темы на Go.
Читать далее• Российские учёные вернули к жизни червей-зомби 24-тысячелетней давности
• Учёные создали гидрогелевые «микромашины», которые могут революционизировать медицину
• Археологи обнаружили свидетельства того, что неандертальцы пользовались огнём на территории Англии 400 000 лет назад
• Люди, использующие жесты в разговоре, кажутся более понятными и убедительными
• Мутации всего в одном гене могут вызывать психические заболевания, как показывают результаты знакового исследования
Читать далееКоманда AI for Devs подготовила перевод резонансного расследования о том, как "приватные" VPN-расширения на самом деле зарабатывают на ваших ИИ-переписках. 8 миллионов пользователей, Featured-бейджи от Google и Microsoft, полный доступ к ChatGPT, Claude и Gemini — и всё это утекает дата-брокерам. История о том, почему обещания безопасности в браузере стоит читать особенно внимательно.
Читать далееЗалипающий hover на мобильных устройствах – частый баг. Раньше мы решали это просто плагином PostCSS Hover Media Feature, он оборачивает все псевдоклассы :hover в медиазапрос @media (hover: hover) {}. Так мы проверяли поддержку hover и отключали его на мобилках. Но во время тестирования одного проекта оказалось, что на некоторых устройствах hover продолжает залипать.
Читать далее