Метод утёнка
Ir al canal en Telegram
Об IT так, что поймёт даже резиновый утёнок. Разместить рекламу: @tproger_sales_bot Правила общения: https://tprg.ru/rules Другие каналы: @tproger_channels
Mostrar más6 627
Suscriptores
Sin datos24 horas
-147 días
-4530 días
Archivo de publicaciones
6 626
Как закладки с компьютера появляются на телефоне
Вы сохранили рецепт в браузере на компьютере, а потом нашли ту же закладку на телефоне. Пересылать ссылку себе не пришлось.
Это синхронизация: устройства, связанные одной учётной записью, обмениваются данными через сервис. Например, Firefox Sync позволяет пользоваться закладками, паролями и открытыми вкладками на разных устройствах. Данные шифруются ещё до передачи на серверы Mozilla.
Для обмена нужны подключение к интернету и включённая синхронизация нужных данных.
Синхронизация помогает продолжать работу на другом устройстве. Резервная копия решает другую задачу: сохраняет данные для восстановления. Сервис обмена данными не обязательно хранит все их прошлые версии — это нужно проверять отдельно.
6 626
Как показать объёмного собеседника на экране без 3D-очков
Закройте по очереди левый и правый глаз: близкий предмет немного сместится относительно фона. Глаза видят разные картинки, а мозг использует эту разницу, чтобы оценивать глубину.
На похожем принципе работает система видеосвязи Google Beam. Несколько камер снимают человека с разных сторон, программы собирают объёмное представление, а специальный экран направляет разное изображение каждому глазу.
Поэтому собеседник выглядит объёмным без очков. Это изображение на экране: человек не возникает посреди комнаты.
Для такого звонка нужен специальный комплект оборудования. Установить приложение на обычный ноутбук и получить тот же эффект не получится.
6 626
Как интернет проверяет, что адрес сайта не подменили
Вы вводите название сайта, а специальная служба DNS находит его числовой адрес. Она похожа на адресную книгу. Но как убедиться, что ответ в ней настоящий?
Для этого есть DNSSEC — проверка цифровых подписей у записей. Подпись позволяет заметить, что данные изменили, и проверить, кто их подтвердил.
Возникает следующий вопрос: почему доверять самой подписи? Проверка идёт по цепочке подтверждений до заранее известного ключа. Он служит исходной точкой доверия — как образец подписи, с которым сверяют документы.
Cloudflare разбирает эту цепочку на примере замены корневого ключа DNS.
Защита действует там, где записи подписаны и ответы проверяются. Она не шифрует переписку с сайтом и не определяет, честный ли перед вами магазин.
6 626
Почему владелец сервера не обязательно может прочитать вашу резервную копию
Представьте, что вы оставили в камере хранения запертый сейф. Сотрудники могут хранить и переносить его, но открыть без ключа не смогут.
Похожим образом устроена зашифрованная резервная копия Signal. Переписка шифруется до передачи на сервер. Для восстановления нужен специальный ключ, который следует сохранить отдельно.
Если телефон потерялся, копия и ключ позволяют вернуть сохранённые данные на другое устройство. Одной копии без ключа недостаточно: служба поддержки не может просто открыть её вместо вас.
При этом копия содержит только то, что предусмотрено её настройками и тарифом. Например, бесплатная облачная копия Signal сохраняет вложения лишь за последние 45 дней. Наличие резервной копии ещё не означает, что в неё попало всё.
6 626
Как браузер узнаёт, какую рекламу нужно заблокировать
Вы открываете статью, но браузер загружает не один готовый лист. Текст, картинки, рекламные блоки и программы для их показа могут приходить с разных адресов.
Блокировщик сверяет обращения с правилами. Например, если адрес относится к известной рекламной сети, загрузку можно остановить до того, как баннер появится на экране. Другие правила помогают скрывать рекламные элементы страницы.
В Firefox для iPhone для этого используют список фильтров EasyList. По умолчанию встроенная блокировка выключена.
Список не знает обо всей рекламе в интернете. А если объявление сайт отдаёт вместе со своим содержимым, отделить его бывает сложнее. Поэтому включённый блокировщик не означает, что исчезнет каждый рекламный блок.
6 626
Как уменьшить файл и не потерять ни одного символа
Представьте список, в котором слово «молоко» написано сто раз подряд. Вместо всех повторов можно записать: «молоко — 100 раз». Запись короче, а исходный список легко восстановить.
Сжатие без потерь использует похожую идею: находит закономерности в данных и записывает их компактнее. После распаковки возвращается каждый исходный байт — маленькая единица данных.
Cloudflare испытала такое сжатие для временных копий файлов на своих серверах. Подходящие файлы в тестах занимали в среднем втрое меньше места. За экономию пришлось заплатить дополнительной работой процессора.
Степень сжатия зависит от содержимого. Уже сжатое фото обычно удастся уменьшить гораздо слабее, чем текст с множеством повторов.
6 626
ID может измениться, даже если его просто прочитали
Есть номер 1612850010110005250. В JavaScript после разбора JSON он превращается в 1612850010110005200. Никто не прибавлял и не вычитал: Number не может точно представить любое такое большое целое.
Джулия Эванс разбирает этот случай на идентификаторах постов. Для них арифметика обычно не нужна, зато нужна точность каждого символа. Если передать тот же ID строкой, символы сохранятся. Но превратить уже испорченное число в строку слишком поздно.
В JavaScript есть BigInt для больших целых. Представление таких значений в JSON всё равно нужно согласовать между системами. И не каждый JSON-парсер теряет точность: Python, например, умеет сохранить это целое без округления.
Поэтому при обмене данными проверяют весь путь: от исходного значения до базы и обратно. Красиво выглядящий номер ещё не означает, что это тот же самый ID.
6 626
Почему «всегда обманывать» не всегда выгодно
Представьте автомат: вы отдаёте одну монету, другой человек получает три. Он может сделать то же самое. Если оба сотрудничают, каждый получает две монеты чистого выигрыша. Если один обманывает, он забирает три, а второй теряет одну.
На одном ходе обман выглядит выгодным. Но что, если завтра вы встретите того же человека? В интерактивной истории Никки Кейса The Evolution of Trust разные стратегии играют много раундов. Можно менять число встреч, награды и вероятность ошибки, смотреть, как меняется итог.
Самая интересная деталь — случайная ошибка может запустить взаимную месть. Стратегия, которая допускает, что человек один раз ошибся, ведёт себя иначе, чем вечное «я тебе это припомню».
Это упрощённая модель, а не инструкция по отношениям. В жизни есть репутация, договорённости и много другого. Но зависимость поведения от правил игры здесь видна очень наглядно.
Авторский текст и правила истории
6 626
Repost from Библиотека программиста
👀 Как вы смотрите видео?
Разбираете урок, слушаете интервью фоном или начинаете на телефоне, а продолжаете на большом экране?
Хотим узнать, что делает просмотр удобным для вас. Вспомните последнее видео — ролик, урок, фильм или серию сериала — и расскажите о своём опыте. Если детали не запомнились, можно так и ответить.
🕰️ Опрос займёт около 3 минут.
В результатах сможете сравнить свои привычки с ответами других участников. А разработчики и инженеры видеоплатформы расскажут, что происходит по ту сторону экрана, пока вы смотрите видео.
🔗 Поделиться опытом
🐸 Библиотека программиста
6 626
Как магазин узнаёт, что покупка оплачена
Вы нажали кнопку оплаты, платёж прошёл, а магазин должен отправить заказ. Постоянно спрашивать платёжный сервис о статусе покупки можно, но это создаёт лишние запросы и задерживает реакцию.
Вместо этого магазин заранее сообщает сервису адрес для уведомлений. Когда платёж подтверждён, сервис отправляет туда вебхук: HTTP-запрос с данными о событии. Магазин принимает его, меняет статус заказа и отвечает коротким подтверждением о получении.
Если магазин временно недоступен или не подтвердил приём, сервис обычно повторяет отправку. Поэтому уведомление может задержаться или прийти несколько раз. Получатель должен проверять его подлинность, например по цифровой подписи, и не обрабатывать одну оплату повторно. Так системы согласуют действия без постоянных проверок. Подробнее об устройстве вебхуков и их отличиях от других способов обмена данными.
6 626
Почему ошибка ИИ-помощника не всегда означает ошибку модели
ИИ-помощник мог выдать неверный результат, но модель не обязательно ошиблась. Она выбирает следующий шаг, программа подключает инструменты, а среда задаёт правила работы. Сбой на любом этапе может дойти до финального ответа.
Поэтому для поиска причины нужно восстановить всю цепочку: действия модели, вызовы инструментов и смену подхода.
Разбор устройства и диагностики ИИ-помощников показывает, почему проверяют всю цепочку, а не только модель.
6 626
Почему сайт просит отправить запрос позже
Представьте продажу билетов: тысячи людей одновременно обновляют страницу. Если сервис обработает все обращения сразу, его мощности могут закончиться и сайт станет недоступен для всех. Поэтому он ограничивает частоту запросов от каждого клиента.
Один из способов устроен как запас жетонов. Каждый запрос расходует жетон, а новые появляются с постоянной скоростью. После паузы запас накапливается, поэтому несколько быстрых запросов подряд допустимы. Но долго обращаться к сервису слишком часто не получится.
Когда жетоны заканчиваются, сервер отвечает кодом 429 и сообщает, через какое время повторить попытку. Это не запрет доступа: клиент сможет продолжить, когда его запас восстановится. Так сервис распределяет ограниченные мощности и не позволяет одному активному клиенту мешать остальным.
Технические варианты ограничения запросов и их различия
6 626
Почему ИИ-помощник забывает прошлую работу и как вернуть ему память
Новая сессия ИИ-помощника обычно начинается без прошлых решений: журнал работы остаётся архивом, в котором трудно искать.
Funes разбирает такие журналы и создаёт поисковый каталог. Помощник находит исходный фрагмент разговора вместе с указанием сессии и момента, поэтому сохраняются не только решения, но и их причины.
Память здесь — не способность модели помнить всё, а доступный для поиска архив. Архитектура Funes и её работа с контекстом.
6 626
Когда задачу стоит поручить ИИ, а когда лучше сделать самому?
Допустим, нужно подготовить инструкцию к оборудованию. Если важен готовый точный текст, а способ его создания не имеет значения, это «работа»: ИИ можно использовать, если вы способны проверить результат и исправить ошибки.
Учебное эссе устроено иначе. Его цель не только в тексте, но и в тренировке мышления: нужно выстроить доводы, заметить слабые места и уточнить собственную позицию. Здесь ИИ похож на робота, который поднимает гантели вместо посетителя спортзала. Задача формально выполнена, но навык не развивается.
Поэтому полезно спросить: ценен результат или ещё и путь к нему? В первом случае автоматизация экономит усилия. Во втором она может убрать именно ту часть задачи, ради которой вы за неё взялись.
Эта граница и её последствия для учёбы и творческой работы подробнее разобраны в сравнении работы с тренировкой.
6 626
Как выбрать один из двух вариантов интерфейса с помощью A/B-теста
A/B-тест помогает проверить спорное решение по поведению пользователей. Одной группе показывают вариант A, другой — вариант B, затем сравнивают заранее выбранный показатель, например долю нажавших кнопку.
Менять стоит что-то одно: если одновременно изменить текст, цвет и расположение кнопки, будет непонятно, что повлияло на результат. Если вариант B убедительно лучше, его внедряют; если нет, оставляют A.
Этапы теста и типичные ошибки
6 626
Что происходит, когда приложение запрашивает данные у сервера
Вы открываете сайт или обновляете данные в приложении. Сначала DNS находит IP-адрес сервера по имени сайта, а порт указывает нужный сервис на нём.
Затем приложение устанавливает с сервером TCP-соединение, которое следит за порядком и доставкой данных. Для HTTPS добавляется TLS: он проверяет сертификат сервера и шифрует обмен.
После этого приложение отправляет HTTP-запрос, а сервер возвращает ответ. Цепочка простая: найти сервер, защитить соединение и передать данные. Схемы соединения и способы общения клиента с сервером
6 626
А вы уже забрали свой подарок ко Дню программиста?
Мы в Tproger вместе с нашими друзьями собрали целую коробку подарков к вашему профессиональному празднику. Переходите по ссылке, трясите коробку и забирайте свой презент: https://tprg.ru/3jOx
6 626
Первый ник в аське, любимый смайлик в скайпе, разговоры про биткоин, когда все делали вид, что понимают, о чём речь — SpaceWeb и Типичный программист собрали это в анкете к 25-летию компании. Формат школьный: спорт, друзья, обои на рабочий стол.
Между вопросами — история веба и компании, от первых сайтов до нейросетей. В конце — небольшой взгляд в будущее, промокод на услуги SpaceWeb и результат типичного интернет-опроса.
6 626
В мире, где деплои по пятницам, а отпуск — глубоко в бэклоге, живёт уставший разработчик. Один герой. Один чемодан. Незакрытые таски и полный бардак.
Разгребите хаос. Найдите билет, соберите вещи, пока он не передумал. И решите главный вопрос эпохи: что ему надеть?
Соберите программиста в отпуск, найдите пасхалочки и промокоды от партнёров!
6 626
Каким может быть роадмап для QA в 2026 году?
Пять лет назад тестирование начиналось с ручного: чек-листы, клики, результат. Сегодня в тех же вакансиях — Kafka, Kubernetes и автотесты на Java. «Вкатиться через мануальное» больше не работает, но что же делать? Собирать базу, с которой можно будет работать и двигаться дальше!
Что по-настоящему пригодится:
— Архитектура микросервисов;
— HTTP/REST, SQL и брокеры сообщений;
— Чтение логов;
— Язык программирования для автоматизации;
— Инженерное мышление вместо «кнопка не работает».
Подробнее обо всём в новой статье на Tproger.
