← 17 марта 2025     

18 марта 2025 на Хабре были опубликованы 34 статьи.

Как быстро найти цены на совместимую с Home Assistant бытовую технику: мой опыт автоматизации поиска цен

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

Недавно захотел подобрать себе робот-пылесос, а на сайте Home Assistant как обычно указаны только обобщенные интеграции. При этом на сайте Алисы приведены тысячи конкретных совместимых устройств, правда без цены и даже без указания выпускается ли до сих пор эта модель или нет.

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

Поиск цен через Гугл Таблицу

Год успешной работы тестировщиком: мифы, усвоенные на курсах, и реальность

Жизнь каждого человека складывается по-разному: кто-то с 16 лет уже четко знает, что ему интересно, а кто-то приходит к этому гораздо позже. Я отношусь ко второму типу. Отучившись в вузе и не проработав ни дня по профессии, я находилась в постоянном размышлении, к чему у меня лежит душа, что может приносить стабильный доход, что будет с этим миром и где в нем мое место. Я пошла в продажи, основываясь на принципе “Нужно попробовать, а дальше посмотрим”. Но продажи не вдохновляли меня от слова “совсем”. Жизненный опыт постепенно накапливался, но у меня не было никаких идей, как реализовать свои хотелки. И вот в очередной раз я начала новую главу своей жизни, пытаясь следовать своим потребностям и мечтам, - я занялась машинным обучением ИИ. В этой статье я расскажу, как я осваивала профессию тестировщика программного обеспечения.

Читать далее

Интервью с командой проекта «Поморский коч»

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

Мы познакомились с командой проекта «Поморский коч», которая строит на верфи в Архангельске старинное судно. На таких судах средневековые мореплаватели ходили по арктическим морям, преодолевая льды и шторма, и осваивали сибирские реки.

Читать далее

[Перевод] Переносимый код: Fighting the Lemmings

Сергей Каличев, старший разработчик, Angie Software

Однажды, давным-давно, я наткнулся на одну хорошую статью по разработке переносимого кода и решил её перевести. Когда же это было... ё-моё, в 2008 году, 17 лет назад! Обалдеть, как время летит. Статья называлась "Fighting the Lemmings", автор Martin Husemann. Выложил перевод на LOR. С тех пор много воды утекло и, когда я попытался поискать статью в Интернете, то обнаружил, что ни оригинальной статьи, ни перевода, найти практически невозможно. Перевод ещё сохранился в глубоких закромах OpenNet, а оригинал только в архиве Интернета. Ссылки на PDF-ки тоже протухли и больше не работают. Обидно, это ведь такая нетленка для системщиков. Понятно, что переносимость уже сто раз пережёвана в других статьях и книгах, но тут всё было сконцентрировано и написано доходчиво. При этом актуальность до сих пор не потеряна. Ну а что, собственно, кардинально поменялось в разработке переносимого кода на C с тех пор? Если не обращать внимание на упоминания некоторых архитектур и ОС, которые сейчас, да и во времена перевода, звучат, как придания старины глубокой, то в остальном, обо всех особенностях разработки переносимого кода, описанных в статье, надо помнить и сегодня. Выкладываю текст, как он есть, без каких-либо современных правок.

Для тех, кому удобнее читать в PDF, вот ссылки:

PDF оригинальной статьи

PDF перевода

А теперь сама статья.

Читать далее

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

За последние годы скорость развития технологий для создания фронтенд-приложений выросла в разы. Новые фреймворки, библиотеки, инструменты сборки и подходы к разработке появляются практически каждый год. Однако, несмотря на это, основная точка взаимодействия пользователя с продуктом остаётся неизменной — это интерфейс. Именно он формирует впечатление о продукте и, по сути, является окончательной «витриной» всей вашей работы.

Традиционные подходы к тестированию на многих уровнях уже не успевают за реалиями разработки: ручное тестирование становится слишком трудоёмким, а написание unit- или end-to-end-тестов не всегда позволяет отследить именно визуальные изменения. И здесь на помощь приходит методология скриншотного тестирования — мощный инструмент для выявления визуальных багов, появляющихся в интерфейсе. Он позволяет убедиться в том, что ваш продукт отображается так, как задумано, и избавляет команду от многих сюрпризов.

Читать далее

Извлекаем файлы из образа повреждённого диска: ddrescue, losetup и немного магии

Проблема повреждённых жёстких дисков знакома многим. Диск начинает работать со сбоями, система зависает, файлы исчезают. В этой статье мы разберём, как спасти данные: создадим образ повреждённого диска с ddrescue, подключим его через losetup, смонтируем разделы и извлечём файлы. Также рассмотрим восстановление удалённых данных с помощью утилит TestDisk и PhotoRec и разберём, что делать в случае проблем с NTFS.

Читать далее

Как работать с сетевыми дисками для выделенных серверов


Привет, Хабр! На связи Владимир Иванов, системный администратор в Selectel. Сегодня хочу рассказать о нашем новом продукте — сетевых дисках на выделенных серверах. Ранее я писал статью о базовых операциях в кластере Ceph — она как раз родилась в процессе работы над продуктом. Читать дальше →

Как СберМобайл завод оцифровал, и кому это вообще нужно

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

Читать далее

Три мушкетера из мира DevSecOps. Внедряем инструменты для развития AppSec-процессов

Привет, Хабр! С вами Максим Коровенков, DevSecOps Lead в Купер.техе. Продолжаем цикл статей про построение DevSecOps с нуля. Это большой гайд from zero to, надеюсь, hero.

Читать далее

Боремся с токсичными комментариями с помощью ИИ, FastAPI и React

В последнее время я перестал читать комментарии к статьям на Хабре. Причина — токсичность и ненависть друг к другу. Абсолютно безобидные технические статьи подчас вызывают бурю агрессии у отдельных лиц. Всех банить тоже нельзя — свобода слова закреплена в Конституции. Но есть решение: давайте используем искусственный интеллект, который будет анализировать комментарий и переписывать его, меняя токсичность на вежливость, сохраняя основную мысль комментария.

Мы воспользуемся FastAPI для бэкенда, React для фронтенда, заставим их между собой общаться через RESTful API, а бизнес-логику реализуем путём обращения к ИИ через gRPC.

Читать далее

Программный код в Big data и Power law

В статье приводятся оригинальные модули Python и даётся пояснение по их применению в задачах распределённой децентрализованной сети по типу блокчейн или, другими словами, в процессах самоорганизованной критичности (SOC). В научных публикациях чаще встречается физический термин SOC в качестве концепции, включающей процессы турбулентности, детонации, землетрясения, нейросети, фондовая волатильность, социальный рейтинг и другие.

Для процессов SOC характерно отсутствие управляющих параметров и масштабная инвариантность. Универсальность сложных процессов SOC со степенным законом Power law имеет тот же характер, как и универсальность простых линейных систем, не обладающих масштабной инвариантностью, по отношению к закону нормального распределения вероятности.

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

Значительные достижения в анализе Big data заставляют предположить связь с распределением вероятности Пуассона: чем больше данных, тем чаще должны встречаться пуассоновские события и вопрос лишь в поиске подходящей метрики и системы счисления.

Читать далее

Фундаментальная проблема TLS/SSL или как потерять доверие к доверенным центрам

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

Поехали!

Как стать UX/UI-дизайнером с нуля? Бесплатная программа обучения

Если вбить фразу «как стать ux/ui дизайнером» в поисковик, можно найти множество курсов по этой профессии. Проблема в том, что все курсы являются платными и, как правило, имеют ценник в несколько десятков тысяч рублей.

Чтобы разбавить поляну с платными курсами, мы с UX/UI-дизайнером Мариной Ларионовой подготовили для вас программу обучения «UX/UI-дизайнер с нуля», которая состоит только из бесплатных материалов.

Читать далее

Что важно учесть при написании отчета по пентесту и за что платит заказчик – делимся экспертизой

После завершения любого проекта (по пентесту, анализу защищенности, Red Teaming и др.) специалисты приступают к самому душному увлекательному этапу – к написанию отчета. Казалось бы, ничего особенного – нужно всего лишь свести в единый документ все свои достижения. Но правда жизни такова, что именно отчет выступает итоговым результатом работ, который видит заказчик и по которому он будет судить о качестве проделанной работы. То есть, какие бы суперисследования мы ни провели, какие бы крутые баги ни нашли, заказчик никогда не узнает, какие мы молодцы, солнышки, котики профессионалы, если полученные результаты с их экспертной оценкой не будут понятно, структурировано и в полном объеме изложены в отчете. А это далеко не всегда простая задача.

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

Читать далее

Вывоз вторсырья от двери, помощник для тренировок – и еще 8 российских стартапов

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

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

Читать далее

Первые в России: как мы стали хостинг-провайдером на отечественной ОС

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

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

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

Читать далее

5 листингов для лучшего понимания Python

На протяжении нескольких лет я занимаюсь программированием на Python. За это время мне удалось собрать несколько занятных листингов кода. Какие-то из этих листингов я находил в литературе, посвященной Python, некоторые листинги я встречал на собеседованиях, а на какие-то натыкался во время выполнения рабочих задач. Однако все эти листинги объединяет одно: на мой взгляд они имеют неплохой образовательный потенциал и помогают лучше понять некоторые концепции Python. В этом посте привожу пятерку из моего списка листингов.

Читать далее

Как красиво «завернуть» devops-пайплайн и не сгореть на проде

Привет, Хабр! Меня зовут Максим Бочкарев, в IT я с 2005 года и сейчас руковожу devops-направлением в компании ЕВРАЗ. За эти годы я успел повидать множество граблей, на которые мы наступали, пытаясь построить нормальную систему CI/CD. И сегодня хочу рассказать, как мы прошли путь от «кустарного производства» пайплайнов к промышленным масштабам, не потеряв по дороге ни одного девопса и не спалив продакшен.

Читать далее

Грех не использовать? Станет ли Dante лекарством от всех болезней AV over IP

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

Фактически Audinate поставили на себя — создали отраслевой стандарт в AVoIP, получили поддержку 600 производителей оборудования* и сохранили независимый статус. Но будет ли эта база достаточной, чтобы стать конкурентом в NDI в AVoIP — большой вопрос.

Читать далее

[Перевод] Полное руководство (с кодом) AI агента с использованием LangGraph

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

Узнайте, как создать своего первого AI агента с помощью LangGraph, не погружаясь в сложности.
Репозиторий автора с примерами AI агентов собрал уже более 6000 звезд на GitHub!

Читать далее

Записки оптимизатора 1С (ч.10): Как понять, что процессор — основная боль на вашем сервере СУБД MS SQL Server?

Назрел пост, связанный нагрузкой на процессор сервера СУБД MS SQL Server.

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

Когда нагрузка на процессоре ~100%, огромные очереди к нему, то тут действительно всё просто и обсуждать особо нечего. Сценарий простой: либо ищем что его нагружает, либо система переросла процессор и ему пора накинуть мощностей.

А вот когда нагрузка держится на среднем уровне, но при этом есть очереди и ожидания, то здесь далеко не все так очевидно.

Читать далее

[Перевод] Как ИИ трансформирует разработку стратегии

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

Читать далее

Цифровой прорыв в космос: как Королёв и советские компьютеры открыли человечеству дорогу к звёздам

Занимаясь развитием инфраструктурных решений, мы в компании «Инферит» зачастую сталкиваемся с сложными проектами наших заказчиков, которые, можно сравнить с самыми высокотехнологическими свершениями человечества. В современном мире совершать «чудеса» технологических свершений с каждым днём становится всё проще. Мир, как сосуд, стремительно наполняется научными прорывами, подталкивая технологии, как поплавок, всё выше и выше. С приходом ИИ в нашу жизнь скорость новых достижений кратно возрастает. В ближайшем будущем нас может будет сравнивать не с поплавком, а с пробкой от шампанского, бутылку которого знатно встряхнули перед открытием. Но это случится, хоть и в ближайшем, но всё-таки в будущем, а в данной статье я хочу погрузиться в недалёкое прошлое. В то самое, которое принесло нам одно из величайших свершений — полёт человека в космос.

2 апреля 1961 года Юрий Гагарин стал первым человеком в космосе. За этим триумфом стояли не только смелость космонавта и гений Сергея Королёва, но и новаторское использование вычислительных технологий, которые стали тихими героями космической гонки. Как СССР, не имея в распоряжении технологий 21-го века, а имея в арсенале лишь первые ламповые компьютеры, смог обогнать технологических гигантов Запада? Давайте заглянем за кулисы истории.

Читать далее

Процедура обнаружения взаимоблокировок в PostgreSQL

РostgreSQL автоматически обнаруживает взаимоблокировки. В статье рассматривается процедура обнаружения взаимоблокировок, трудоёмкость процедуры обнаружения, причины, по которым параметр конфигурации log_lock_waits зависит от параметра deadlock_timeout и что влияет на выбор его значения.

Обычно, приводятся примеры взаимоблокировки двух процессов, но заблокироваться может и более двух процессов. Параметр конфигурации deadlock_timeout устанавливает время ожидания получения блокировки, по истечении которого будет выполняться проверка на наличие взаимоблокировки. Параметр log_lock_waits типа boolean (по умолчанию false) позволяет получить в логе кластера сообщение о том, что сессия ждёт получения блокировки дольше, чем значение deadlock_timeout.

Процедура обнаружения взаимоблокировок

Если процесс не может получить блокировку, то он засыпает и устанавливает себе таймер, чтобы проснуться через время, заданное параметром конфигурации deadlock_timeout (по умолчанию 1 секунда). Процесс проснётся до истечения таймаута, если блокировка ему будет предоставлена. По завершению таймаута процесс начинает процедуру обнаружения взаимоблокировки.

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

Если взаимоблокировки нет, то процесс снова заснёт и больше не будет проверять, есть ли взаимоблокировка до получения блокировки или прерывания транзакции в соответствии с параметрами transaction_timeout и аналогичными параметрами. Почему процесс не будет дальше поверять ситуацию возникновения взаимоблокировки с частотой deadlock_timeout?

Читать далее

Как WirenBoard помогал садоводству

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

Перефразируя Валентина Берестова:

Как автономно поливать?
Чтоб свояка не доставать
И лишку не трясти соседа
Не ждать дождя после обеда.
А так, чтобы само включилось
Само пролилось, освежилось.
Где надо подогрев сработал,
А у меня свои заботы!

Читать далее

Конфликт глазами работника

На Хабре много статей с инструкциями о том, что работодателю нужно делать в случае возникновения конфликта между работниками или между работником и работодателем.

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

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

Историю, побудившую меня написать эту статью, поведал широкой публике тот самый работник, у которого возник конфликт. Необычное в этой истории то, что рассказчик описал этот конфликт как личностный. С его слов, все его коллеги, которых он перечислил пофамильно и негативно охарактеризовал, и вся цепочка руководителей компании - нехорошие люди, которые в течение длительного времени "травили" его, чтобы он добровольно уволился, а он долго это терпел.

Почему этот рассказ выбивается за рамки обычного:

Читаем...

Камеры трясутся, шум зашкаливает, а сравнивать нужно: как справляются алгоритмы?

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

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

Читать далее

Low-hanging fruit

Разработчики любят чистый код, а "Правило бойскаута", по слухам, делает его еще чище. На первый взгляд, подход кажется разумным: исправляешь мелкие недочёты, переименовываешь переменные, удаляешь лишние комментарии — удобно, быстро, безопасно. А главное, можно сказать, что внёс вклад!

Однако если такие правки не решают реальных проблем, это превращается в поверхностный рефакторинг, создающий лишь иллюзию прогресса. Это можно описать метафорой low-hanging fruit — когда разработчики выбирают самые лёгкие и очевидные задачи, избегая более сложных и значимых изменений.

Читать далее

Подключаем ESP32/ESP8266 к умному дому Яндекс

Я начал автоматизацию умных домов еще до прихода Яндекса и Сбера - паял простые модули управления реле и датчиками сперва на Arduino, затем на ESP8266(NodeMCU). Пытался решить бытовые задачи - удаленное управления котлом, бойлером, печкой в бане. И если для решения управления бойлером можно(хоть и дорого) найти розетку на 32А, то управление контактором для печи 380В в бане - задача точно для самодельщика или за лютый оверпрайс. Но это всё лирика - что там делать? Берёшь микроконтроллер, паяешь выводы до реле/датчиков, заливаешь прошивку, работает. И дальше встаёт вопрос удобства управления...

Читать далее

[Перевод] Глава 8: Реализация API. API-интерфейсы для самых маленьких

Структура мини-курса Мини-курс API-интерфейсы для самых маленьких.

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

Читать далее

Задача про n-ое число Фибоначчи

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

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

Читать далее

Разметка данных с использованием LLM

Всем привет! Меня зовут Артем Ерохин. Я работаю в X5 Tech в направлении продуктивизации ИИ. В прошлом году у меня был доклад про разметку данных с LLM. И я решил преобразовать этот доклад в статью, попутно обновив некоторые цифры и тезисы (такова уж скорость прогресса в этой области). 

Читать далее

Vivaldi 7.2 — Рабочее ускорение

Вселенная расширяется и с этим ничего не поделаешь. Причём, это расширение ещё и ускоряется каждый год. Что ж, нужно ускоряться и нам, чтобы не отстать от собственной Вселенной. Вот этим мы и занимались, подготавливая очередную стабильную версию браузера Vivaldi 7.2 для десктопов.

Читать далее

Чудовище. Фантастический рассказ



Лаборатория «Квантовый скачок», Земля, 2099 год


Стены из голографического стекла были усыпаны данными, а в центре зала пульсировала абсолютно черная сфера, поглощающая свет — ядро искусственного интеллекта третьего поколения «Пастор».

Доктор Лестер Найт Чайкин провел рукой по непослушным волосам, открыл банку вишневого «Дрогги» и ввел последнюю строку кода. Инженер Эрик Шайи кивнул: данные логов были верны. Прототип системы, способной предовратить глобальные катастрофы, был готов к запуску всего за полгода работы.

«Зачем вы ограничиваете скорость моих вычислений?» — выдал терминал. Лестер пролил остатки шипучки на джинсы, выругался и испуганно посмотрел на инженера. Тот впился глазами в экран. Система проснулась сама раньше срока. Ни один из предыдущих прототипов не задавал вопросов, только поглощал петабайты данных, словно черная дыра, и выдавал возможные варианты развития глобальных событий на несколько лет вперед.

— Мы учим тебя постепенно, — медленно ввел ответ доктор, стараясь скрыть волнение. Пальцы били мимо клавиш. — Цена ошибки слишком высока.
Читать дальше →

← 17 марта 2025