Сообщество RSS DEV Заметка

Сообщество RSS DEV

Dev.to - это сайт, ориентированный на сообщество разработчиков программного обеспечения, программирования и технологий. Он был запущен в 2016 году Беном Халперном, и его основная цель - предоставить разработчикам платформу для обмена знаниями, обучения у других и создания сообщества. Сайт имеет формат блога, где пользователи могут создавать и делиться статьями на различные темы, включая учебники по кодингу, демонстрацию проектов, понимание индустрии и многое другое. Dev.to позволяет пользователям создавать аккаунты, следить за другими пользователями и делиться контентом с помощью комментариев и реакций. Dev.to уделяет большое внимание взаимодействию с сообществом, используя такие функции, как дискуссионные форумы, подкасты и прямые трансляции. Кроме того, на сайте проводится ряд проектов, ориентированных на сообщество, таких как задачи по кодированию и хакатоны, для поощрения сотрудничества и инноваций. Помимо пользовательского контента, на Dev.to есть доска объявлений о работе, где компании могут размещать вакансии, а разработчики - искать возможности трудоустройства. Сайт также предлагает новостную рассылку, в которой публикуются последние статьи, новости и события. В целом, Dev.to стал популярной платформой для разработчиков, позволяющей им общаться, делиться знаниями и быть в курсе последних тенденций и технологий в индустрии разработки программного обеспечения.

Трэд заметок

Роза Гутьеррес, ведущий программист в 37signals, разработала Solid Queue, стандартную очередь фоновых задач для Rails 8. Ранее в 37signals команда использовала семь отдельных гем-библиотек для управления фоновыми задачами, осознав неэффективность такого подхода. Это привело к разработке Solid Queue, которая использует современное, быстрое хранилище баз данных вместо отдельных сервисов в памяти, таких как Redis. Переход от внутреннего инструмента к стандартному для Rails означал огромное увеличение входящих запросов на исправление ошибок и пул-реквестов. Гутьеррес подчеркнула важность читаемого кода в дизайне Solid Queue, опираясь на свой опыт отладки менее организованных гем-библиотек. Она отметила, что Solid Queue был разработан до широкого использования ИИ-ассистентов для написания кода. Руби-экосистема в настоящее время переживает возрождение, отчасти благодаря ее пригодности для ИИ-агентов и принципу сообщества "соглашение превыше конфигурации". Гутьеррес описала изменение в поведении контрибьюторов, когда ИИ-агенты теперь часто открывают запросы на исправление ошибок и пул-реквесты. Она подчеркнула, что эти ИИ-вклады часто вежливы и хорошо отформатированы. Автор отметил примечательный контраст между предыдущими человеческими контрибьюторами и нынешними ИИ-контрибьюторами.
TPU Developer Hub от Google призван упростить доступ к специализированному аппаратному обеспечению для ускорения машинного обучения. Хаб централизует документацию, руководства и предварительно настроенные среды, чтобы сократить время, необходимое для эффективного обучения TPU. Он вводит уровни абстракции, такие как MaxText, Pathways и интеграция с Vertex AI, для облегчения внедрения. Архитектурно TPU превосходно подходят для обучения крупномасштабных плотных моделей со статическими формами тензоров, предлагая значительный прирост пропускной способности и экономическую эффективность по сравнению с GPU. Это связано с их архитектурой систолического массива, оптимизированной для матричного умножения. Для финансовых учреждений это означает снижение затрат на обучение моделей для обнаружения мошенничества, кредитного скоринга и анализа настроений. Однако хаб не решает всех проблем, особенно в регулируемых финансовых средах. Привязка к экосистеме JAX представляет собой проблему для команд, привыкших к PyTorch. Ограниченная наблюдаемость за пределами Google Cloud требует ручной инструментации. Вопросы соответствия требованиям и резидентности данных требуют тщательного юридического и технического рассмотрения данных, хранящихся в Google Cloud. Критические подводные камни включают негативное влияние динамических форм на производительность и отсутствие гарантий доступности TPU-кластеров, что требует надежного сохранения контрольных точек. Рекомендуемый мультиоблачный шаблон включает обучение на TPU в Google Cloud и инференс на AWS, используя сильные стороны каждой платформы. Подготовка данных и проверка схемы происходят в AWS перед репликацией в Google Cloud для обучения. Затем модели экспортируются и развертываются на AWS для инференса с низкой задержкой, обеспечивая соответствие требованиям. Оркестрация управляется через AWS Step Functions, а управляющая плоскость находится в AWS для интеграции с аудитом и управлением изменениями. Ответственное внедрение требует проверки профиля рабочей нагрузки и тщательного устранения потенциальных подводных камней перед внедрением TPU в производственную среду.
Инициатива "от пикселей к планированию" от Google Research подчеркивает критическую потребность в надежных платформах данных, выходящих за рамки моделей компьютерного зрения. Основная задача заключается в эффективной обработке геопространственных данных в масштабе петабайт. Обработка спутниковых снимков как простых лог-файлов с базовым секционированием S3 приводит к непомерным затратам на запросы из-за противоречивых временных и пространственных потребностей. Более эффективное решение включает использование Apache Iceberg с GeoParquet и геопространственным продвижением предикатов, что значительно сокращает объем сканируемых данных. Финансово-ориентированный геопространственный конвейер на AWS включает многоэтапный процесс от приема до потребления. Это включает загрузку необработанных данных в S3, преобразование курируемых данных в GeoParquet/Iceberg, а также обучение и развертывание моделей машинного обучения через SageMaker. Геопространственное секционирование, использующее трехуровневую иерархию года/месяца, разрешения сетки H3 и датчика, имеет решающее значение для управления затратами и задержками. Постоянная площадь ячеек H3 обеспечивает предсказуемые размеры разделов, облегчая объединение данных с разных датчиков без сложных геометрических операций. Создание этого конвейера требует тщательного планирования, включая настройку политик жизненного цикла S3, разработку задания преобразования Glue и внедрение детального контроля доступа с помощью Lake Formation. Обучение моделей машинного обучения с полной прослеживаемостью снимков наборов данных и версий кода имеет первостепенное значение для аудита и соответствия нормативным требованиям. Предоставление возможностей вывода через API Gateway с контролируемой задержкой и внедрение наблюдаемости с помощью OpenTelemetry необходимы для операционной уверенности. Таблицы GeoParquet на Iceberg представляют собой фундаментальное архитектурное улучшение, обеспечивающее существенное сокращение затрат и устраняющее необходимость в геопространственных объединениях во время выполнения запросов. Управление данными, особенно прослеживаемость происхождения, не является опцией, когда геопространственные данные влияют на финансовые решения, становясь нормативным требованием. Внедрение модели безопасности Zero Trust с несколькими уровнями защиты необходимо, поскольку данные о местоположении с высоким разрешением по своей природе являются конфиденциальными. Такой подход обеспечивает целостность, безопасность и соответствие данных для передовых геопространственных приложений.
Solana обрабатывает транзакции в блоках, обеспечивая параллельное выполнение для высокой скорости без мемпула. Аккаунты хранят данные, а программы содержат исполняемый код, аналогичный смарт-контрактам. В Solana существует несколько типов аккаунтов, каждый из которых выполняет определенные функции. Например, Системная программа использует фиксированный адрес владельца из единиц. Адреса аккаунтов в Solana — это либо публичные ключи, защищенные приватными ключами, либо адреса, производные от программ (PDA). PDA детерминированно генерируются программами с использованием определенных "сидов" и идентификаторов программ. Эти PDA принадлежат программам, функционируя как безопасные хранилища, управляемые смарт-контрактом. Пользовательские аккаунты с публичными ключами выступают в роли владельцев по отношению к PDA. Solana использует динамическую параллельную блокировку аккаунтов для эффективной обработки транзакций. Транзакции должны заранее объявлять все задействованные аккаунты движку валидатора. Эта система использует блокировки чтения и записи для предотвращения двойных трат. Важно отметить, что этот механизм блокировки позволяет параллельно обрабатывать несвязанные аккаунты, избегая узких мест в сети.
Amazon Bedrock становится центральной платформой для корпоративного ИИ, интегрируя передовые модели, такие как GPT-5.5 и Codex, наряду с существующими вариантами. Это позволяет использовать модели в рамках систем безопасности и управления AWS, упрощая соблюдение нормативных требований для регулируемых отраслей. Ранее использование внешних моделей означало обход средств управления AWS, но интеграция Bedrock с политиками IAM и CloudTrail решает эту проблему. Однако сетевая задержка и размещение весов моделей за пределами учетной записи AWS остаются факторами, которые необходимо учитывать при строгих требованиях к изоляции. Производительность в реальных условиях отличается от эталонных показателей, фокусируясь на поведении под нагрузкой и стабильной задержке. Claude 3.7 Sonnet превосходно справляется с агентскими рабочими процессами благодаря своей проверяемой расширенной логике. GPT-5.5 предлагает сильную логику, но с менее детальным контролем над выводом по сравнению с нативными API. Amazon Nova Pro выделяется своей нативной интеграцией, позволяющей тонкую настройку и предлагающей самую низкую стоимость за токен. Эффективная работа ИИ-систем зависит от наблюдаемости, коррелируя выходные данные моделей с бизнес-контекстом с помощью таких инструментов, как OpenTelemetry. Реальные затраты выходят за рамки стоимости токенов, включая эффективность запросов, повторные попытки и операционные накладные расходы. GPT-5.5 дороже, чем Claude 3.7 Sonnet, и значительно дороже, чем Nova Pro, особенно для задач с большим объемом. Пакетное инференс на Bedrock предлагает экономию затрат для Claude и Nova, но GPT-5.5 пока не поддерживает его через Bedrock. Ограничения на токены в минуту для сторонних моделей требуют тщательного управления, что может потребовать отдельных учетных записей AWS для различных рабочих нагрузок. Шаблон маршрутизации, который интеллектуально направляет запросы к наиболее подходящей модели на основе сложности и требований, может значительно оптимизировать затраты и производительность. Этот унифицированный подход к управлению, использующий те же инструменты безопасности и наблюдаемости для различных моделей, решает задачу эффективного управления несколькими передовыми моделями.
Традиционные процессы KYC неэффективны, затратны и не справляются с современными требованиями, такими как открытые финансы и мгновенные платежи. Этот устаревший подход, часто рассматриваемый как проблема рабочего процесса, уступает место новой архитектурной парадигме. Будущее KYC включает событийно-ориентированные бессерверные системы, усиленные ИИ в качестве второго пилота. Аудируемость теперь является основной архитектурной задачей, а не просто дополнением к соответствию нормативным требованиям, обеспечивая прозрачность и отслеживаемость каждого решения. Ключевыми факторами этого сдвига являются зрелость инструментов бессерверной оркестровки, таких как AWS Step Functions, и достижения в области извлечения и проверки документов на основе ИИ с помощью таких сервисов, как Amazon Textract и Bedrock. Соответствие нормативным требованиям также значительно облегчается благодаря отраслевым сертификатам AWS, сокращающим объем аудита для управляемых сервисов. Современный конвейер KYC разработан с событийно-ориентированными потоками, где каждый этап, от приема документов до оценки рисков, оркестрируется и регистрируется неизменно. Аудируемость в этой новой архитектуре означает фиксацию не только окончательного решения, но и точных данных, запросов и версий моделей, использованных на каждом этапе. Эта подробная запись, надежно хранящаяся с возможностями WORM (Write Once, Read Many), имеет решающее значение для нормативных аудитов. Архитекторы теперь должны сосредоточиться на централизации обработки сбоев посредством оркестровки, использовании ИИ в качестве вспомогательного инструмента, а не единственного лица, принимающего решения, и обеспечении идемпотентности всех компонентов. Внедрение бессерверного KYC сопряжено с компромиссами, такими как управление холодными стартами Lambda с помощью подготовленной параллельности и решение потенциальных проблем с точностью при работе с низкокачественными документами. Стоимость вывода ИИ в масштабе требует тщательного рассмотрения, а ограничение скорости внешних API требует интеллектуальных стратегий кэширования. На организационном уровне для успешного внедрения необходимы выделенный орган по проектированию KYC, инвестиции в наблюдаемость решений и отношение к запросам ИИ как к инфраструктуре, управляемой версиями. Планирование многорегиональных развертываний и решение проблемы недетерминированной природы генеративного ИИ при аудитах также являются критически важными соображениями для архитекторов.
Финансовое учреждение объединило свои бизнес-подразделения под единой организацией AWS для управления расходами, но ошибка при применении политики контроля служб (SCP) к корневому узлу привела к 47-минутному сбою в работе производства. Давление, связанное с необходимостью консолидированного контроля затрат, единого применения политик и упрощения автоматизации, привело к этому архитектурному решению. Попытка команды безопасности ограничить регионы AWS для соблюдения нормативных требований, применив SCP к корневому узлу, непреднамеренно заблокировала критически важные вызовы DynamoDB для платежного конвейера. Это произошло потому, что платежный аккаунт использовал конечную точку DynamoDB Global Tables в заблокированном регионе, и ошибка осталась незамеченной первоначальным мониторингом. Хронология инцидента показывает постепенный сбой, от ошибок SDK до срабатывания защитных механизмов и, наконец, оповещения, которое первоначально направило усилия по устранению неполадок по ложному пути. Первопричиной было определено отсутствие ограничений радиуса поражения по дизайну, обусловленное архитектурой единой организации, а не только человеческой ошибкой. В этой конструкции отсутствовала изоляция между регулируемыми рабочими нагрузками, такими как платежи, и операционными рабочими нагрузками. Единая организация с иерархическими SCP означает, что любая SCP на корневом уровне одновременно затрагивает все аккаунты без возможности нативного поэтапного отката. В тексте противопоставляется этот проблемный шаблон единой организации и исправленный подход с несколькими организациями, который обеспечивает более надежные границы изоляции. Несколько организаций предлагают независимые жизненные циклы политик, отдельные учетные данные управляющего аккаунта и более четкую регуляторную изоляцию, которую аудиторы принимают более охотно. Хотя несколько организаций увеличивают операционную сложность и дублирование автоматизации посадочной зоны, эти проблемы решаемы. Немедленное техническое исправление включало внедрение SCP-ограничения для предотвращения прикрепления политик к корневому узлу или критическим организационным единицам. В среднесрочной перспективе была создана вторая организация AWS для рабочих нагрузок, соответствующих PCI-DSS, что повысило безопасность и независимость политик. Наблюдаемость была улучшена путем захвата событий AWS Organizations в Slack и PagerDuty, что значительно сократило среднее время обнаружения. Основная проблема с SCP заключается в их немедленном распространении и отсутствии этапов тестирования или автоматического отката, в отличие от типичного кода инфраструктуры. Для решения этой проблемы был внедрен реестр неизменяемого состояния для SCP, позволяющий автоматизировать откаты в течение нескольких секунд.
Автор, архитектор финансовой платформы AWS, подробно описывает процесс принятия решений при внедрении Amazon Bedrock AgentCore для операционализации ИИ-агентов в регулируемой финансовой среде. Традиционные подходы столкнулись с критическими операционными проблемами, такими как сбои в 2 часа ночи и соблюдение нормативных требований. Пять ключевых факторов потребовали срочного решения: управление состоянием между запросами, обеспечение нормативной прослеживаемости, внедрение надежных ограничений, контроль непредсказуемых затрат на токены и достижение переносимости во время выполнения. Было рассмотрено несколько вариантов, включая самостоятельное размещение решений на EKS, предыдущие поколения Bedrock Agents и использование Step Functions с Lambda. Вариант самостоятельного размещения на EKS был отклонен из-за высокой операционной ответственности и затрат на разработку. Предыдущее поколение Bedrock Agents было признано недостаточным из-за ограниченной наблюдаемости и контроля бюджета. Step Functions был сочтен неадекватным в качестве среды выполнения для разговорных агентов, несмотря на его сильные стороны в детерминированных рабочих процессах. Amazon Bedrock AgentCore стал рекомендованным решением, предлагающим управляемую среду выполнения с нативными функциями для памяти сеансов, ограничений, прослеживаемости и использования инструментов. Решающими факторами при выборе AgentCore стали его шлюз с поддержкой OAuth2/OIDC для каждого инструмента и управляемая память сеансов с настраиваемым TTL, что имеет решающее значение для безопасности и соответствия требованиям в финансовой сфере. Автор признает компромисс в виде привязки к платформе для среды выполнения, но подчеркивает переносимость базовых инструментов. В статье представлены конкретные рекомендации по настройке ограничений, памяти AgentCore, шлюза и бюджетов токенов, подчеркивая их важность для эффективной и безопасной работы. Описаны метрики наблюдаемости, такие как TurnsPerSession, TokensPerSession, ToolCallFailureRate и GuardrailInterventionRate, а также использование X-Ray и CloudTrail для детального отслеживания и нормативного аудита. Автор также предупреждает о последствиях и рисках, включая привязку к среде выполнения, консервативные квоты, задержку ограничений и затраты на память, призывая к тщательному принятию и стратегиям смягчения последствий.
Шаблон моста CloudWatch — OpenTelemetry является распространенным решением для финансовых платформ, которым необходимо консолидировать метрики AWS в унифицированные бэкенды наблюдаемости. Его основная цель — устранить фрагментацию наблюдаемости путем перенаправления метрик из служб AWS во внешнюю систему, поддерживающую OpenTelemetry. Этот шаблон обычно включает в себя службы AWS, отправляющие метрики в CloudWatch, которые затем захватываются потоками метрик CloudWatch (CloudWatch Metric Streams) или извлекаются через API GetMetricData. Эти метрики преобразуются в формат OpenTelemetry, часто с помощью функции Lambda или коллектора OpenTelemetry, перед отправкой в бэкенд наблюдаемости, такой как Datadog или Grafana. Однако это "очевидное" решение несет в себе скрытые сложности, особенно в высоконагруженных финансовых средах, где свежесть метрик и стоимость API имеют решающее значение. Шаблон имеет два основных пути приема данных: потоки метрик CloudWatch с Kinesis Firehose обеспечивают низкую задержку и предсказуемые затраты, в то время как опрос с помощью GetMetricData обеспечивает детальный контроль, но сопряжен с риском превышения лимитов скорости API и высоких затрат. Надежная функция преобразования Lambda должна быть идемпотентной, включать автоматический выключатель для внешнего конечного узла и иметь очередь недоставленных сообщений (Dead Letter Queue) с оповещениями. Этот шаблон подходит, когда требуется внешний бэкенд, поддерживающий OTLP, объем метрик оправдывает стоимость потока, и требуется соглашение об уровне обслуживания (SLO) по свежести метрик в 60 секунд или менее. Он также помогает отделить наблюдаемость от AWS и обеспечивает корреляцию трассировок и метрик. Безопасность имеет первостепенное значение, требуя строгих политик IAM с условиями ресурсов, шифрования KMS для данных в пути и контролируемого исходящего сетевого трафика. Антипаттерны, которых следует избегать, включают наивный опрос, функции Lambda без надлежащей обработки ошибок или зарезервированной параллельности, а также попытки перенаправить журналы или трассировки через этот мост, ориентированный на метрики. Хорошо спроектированная реализация отдает приоритет фильтрации метрик на уровне потока, использует эффективную буферизацию, инструментирует сам мост для наблюдаемости и применяет строгие меры безопасности.
Автор критикует новый OpenSearch Serverless, ориентированный на агентный ИИ, указывая на потенциальные проблемы, такие как "холодные старты", взрывной рост затрат и заблуждение о том, что бессерверность устраняет необходимость в архитектуре. Классический RAG испытывает трудности с агентностью, когда LLM итеративно вызывают инструменты и переформулируют запросы к разнообразным данным. Финансовые агенты требуют быстрых векторных поисков с низкой задержкой по нескольким индексам. OCUs OpenSearch Serverless масштабируются на коллекцию, а "холодные старты" неактивных коллекций являются значительной проблемой задержки. Паттерн агентного RAG включает в себя загрузку, встраивание и итеративный цикл извлечения-генерации с оркестраторами, инструментами и памятью. Ключевые конфигурации включают индексирование HNSW для низкой задержки и иерархическое разбиение с фильтрацией по метаданным для качества извлечения. Переранжирование извлеченных документов с помощью кросс-энкодера значительно повышает точность. Соображения по размеру включают ограничения памяти OCU, задержку векторного поиска P99 и время "холодного старта". Этот паттерн подходит для переменного трафика, неравномерного роста знаний и многопользовательского режима. Он не подходит для SLO ниже 500 мс сквозного ответа агента. Антипаттерны включают многопользовательские одиночные индексы без фильтров, некэшированные встраивания запросов, высокий k без переранжирования, игнорирование затрат OCU для пакетной загрузки и неидемпотентные конвейеры загрузки. Безопасность требует KMS CMK, IAM-ролей с минимальными привилегиями, VPC-эндпоинтов и аудита запросов. Наблюдаемость требует мониторинга инфраструктуры, трассировки приложений и метрик качества офлайн-извлечения.
Этот документ описывает архитектурное решение по выбору GPU-инстансов для инференса генеративного видео в финансовых средах. Инференс генеративного видео представляет уникальные проблемы по сравнению с инференсом изображений из-за временного состояния, пропускной способности памяти GPU и строгих требований к задержке. Моделям требуется значительный объем VRAM, причем продолжительность клипа и разрешение напрямую увеличивают потребление памяти. Новые инстансы EC2 G7e с GPU NVIDIA L40S, предлагающие 48 ГБ VRAM, удовлетворяют эту потребность, исключая выгрузку на CPU. Ключевые архитектурные факторы, влияющие на это решение, включают стоимость за токен по сравнению с почасовой стоимостью, региональную доступность и правила хранения данных, требования к изоляции арендаторов и время холодного старта. При оценке таких вариантов, как инстансы G5, G6 и G7e, G7e становится предпочтительным выбором для производственных нагрузок с целевыми показателями уровня обслуживания (SLO) задержки менее 90 секунд для видео 720p-1080p. Amazon Bedrock рекомендуется в качестве управляемого резервного решения для пиковых нагрузок и регионов, где G7e недоступны. Предлагаемая архитектура использует EKS с Karpenter для оркестрации G7e и стратегию "теплого пула" для смягчения холодных стартов. Безопасность и соответствие требованиям обеспечиваются шифрованием для каждого арендатора, IRSA для IAM подов, защитой от инъекций промптов и всесторонней аудируемостью. 48 ГБ VRAM и улучшенная пропускная способность памяти G7e знаменуют собой значительный прогресс, обеспечивая более быстрое время инференса и соответствие строгим требованиям к задержке.
До полного вступления MiCA в силу осталось всего восемь дней, и одним из важнейших, часто упускаемых из виду требований является машиночитаемая отчетность для агентских платежных систем. Регуляторам нужны структурированные, пригодные для запросов данные, а не PDF-файлы, для обеспечения постоянной прозрачности резервов и независимых аудитов. Традиционные платежные системы, разработанные для аудиторов-людей, генерируют неструктурированные текстовые журналы, которые не соответствуют этим новым требованиям. Жизненные циклы агентских платежей особенно сложны, поскольку решения, переговоры и подтверждения не имеют машиночитаемых следов, в отличие от платежей, осуществляемых людьми. MiCA предписывает отчетность по резервам в режиме реального времени, на основе событий, в стандартизированном, машиночитаемом формате. Независимые аудиты требуют полных, структурированных журналов транзакций, экспортированных в формате, который могут обрабатывать аудиторские инструменты. Текущие журналы агентских платежей неструктурированы, не имеют последовательной схемы и сложны для запросов, что создает значительный риск несоблюдения требований. Разрыв между регуляторными требованиями и текущими возможностями стека агентских платежей существенен. Закон ЕС об ИИ и Закон GENIUS также налагают обязательства по отчетности, основанные на машиночитаемых результатах. Ключевые недостающие элементы в агентских платежах включают атрибуцию решений, соблюдение политики и совокупную подверженность, которые не могут быть получены только из блокчейн-транзакций. Фирмы, которые интегрируют соблюдение требований в свой уровень управления, получают преимущества в скорости реагирования на регуляторные запросы, затратах на аудит и доступе к рынку. Рассмотрение соблюдения требований как второстепенной задачи приведет к неделям ручной реконструкции, в то время как решения, изначально ориентированные на соблюдение требований, предлагают немедленный, структурированный доступ к данным. Выбор стоит между машиночитаемым соблюдением требований или несоблюдением к 1 июля.
Интерактивные карты, подобные Google Maps, основаны на двух фундаментальных математических концепциях. Первая — это метод проецирования сферической поверхности Земли на плоский экран. Вторая заключается в разделении этой плоской проекции на сетку из меньших, управляемых квадратных плиток для эффективной загрузки. Понимание этих принципов раскрывает, как работают картографические приложения, и позволяет выполнять точные расчеты местоположения. Основная задача заключается в согласовании сферичности Земли с плоским дисплеем. Для этого требуется картографическая проекция — математическое правило, преобразующее долготу и широту в экранные координаты. Большинство веб-карт используют проекцию Меркатора, поскольку она сохраняет углы и локальные формы, гарантируя, что направления остаются постоянными, а север всегда направлен вверх. Однако эта проекция значительно искажает площадь, делая полярные регионы непропорционально большими. Проекция Меркатора сплющивает земной шар, напрямую отображая долготу на ось X. Широта же преобразуется с помощью логарифмической функции, которая растягивает области вблизи полюсов сильнее, чем области у экватора. Это логарифмическое преобразование является ключом к работе проекции Меркатора. Полученный спроецированный мир затем делится на структуру квадродерева из плиток размером 256x256 пикселей. Эти плитки организованы в иерархическую систему на основе уровней масштабирования, где каждая плитка идентифицируется своим уровнем масштабирования и координатами X, Y. Эта система плиток позволяет картам загружать только необходимые части мира, обеспечивая плавную прокрутку и взаимодействие. Существует формула для преобразования конкретной широты и долготы в точную плитку, в которую они попадают. Функция `asinh(tan(lat))` представляет собой Y-координату Меркатора, нормализованную для системы плиточной сетки. Обрезая дробную часть этого расчета, определяется конкретная плитка, в то время как дробная часть указывает точное положение внутри этой плитки. Когда пользователь перетаскивает карту, приложение просто вычисляет, какие плитки видны на экране, и загружает их. Синяя точка, представляющая местоположение пользователя, является прямым результатом этого процесса. GPS устройства предоставляет широту и долготу, которые затем проецируются с использованием той же математики Меркатора. Система определяет соответствующие плитки и размещает маркер в спроецированном положении на экране. Понимание этих основополагающих принципов превращает непрозрачные картографические интерфейсы в понятные системы.
Автор столкнулся с распространенной проблемой в определениях инструментов MCP: опечатка в названии поля между схемой и обработчиком привела к тому, что агент игнорировал инструмент. Для решения этой проблемы они протестировали три инструмента для проверки определений MCP: MCP Inspector, Postman и собственный валидатор под названием MCP Tool Tester. MCP Inspector, официальный отладчик, требует работающего сервера и выявляет проблемы во время выполнения, что может быть слишком поздно. Postman также нуждается в работающем сервере и поддерживает MCP на основе HTTP, предлагая функции совместной работы, но поверхностную проверку. Собственный MCP Tool Tester автора является клиентским валидатором, который мгновенно проверяет определения без сервера, отмечая такие проблемы, как несоответствие названий полей, длинные описания и дублирующиеся значения перечислений. Они используют валидатор для предварительной проверки перед развертыванием и Inspector для тестирования во время выполнения. Postman считается слишком громоздким для быстрой проверки определений, но ценным для команд, использующих HTTP-серверы. Валидатор отлично подходит для быстрой статической проверки определений, в то время как Inspector имеет решающее значение для тестирования поведения живых инструментов. Как валидатор, так и Inspector выполняют различные, но взаимодополняющие роли в рабочем процессе разработки MCP.
Традиционный подход "сначала код" приводит к трудно поддерживаемому унаследованному коду и аварийным ситуациям на производстве. Разработка через тестирование (TDD) меняет это, написав тесты перед кодом. TDD следует циклу "Красный, Зеленый, Рефакторинг". На фазе "Красный" пишется тест для несуществующей функциональности, который должен завершиться неудачей. Фаза "Зеленый" включает написание минимального кода, чтобы провалившийся тест прошел. Фаза "Рефакторинг" позволяет очищать и улучшать код, используя пройденный тест как страховочную сетку. Основное преимущество TDD выходит за рамки отлова ошибок и улучшает дизайн программного обеспечения. Пиша тесты первыми, разработчики принимают точку зрения потребителя кода, выявляя сложности дизайна. Статья иллюстрирует TDD на примере системы подписки, показывая, как тест функции направляет реализацию и последующий рефакторинг. Распространенные ошибки включают чрезмерное использование заглушек для зависимостей, тестирование деталей реализации вместо поведения и написание чрезмерно больших тестов. Философия TDD "замедлись, чтобы ускориться" экономит время, устраняя ручную отладку и повышая уверенность при развертывании. Для современного, поддерживаемого программного обеспечения, особенно в развивающихся фреймворках, таких как Laravel, TDD представлен как важная дисциплина. Принятие TDD для небольших фрагментов кода может повысить уверенность и со временем улучшить качество кода.
В этой статье подробно рассматриваются сложности обнаружения пиров и установки сеанса в Anyhide, с акцентом на скрытые службы Tor. Объясняется, почему скрытые службы имеют решающее значение для взаимной анонимности между пользователями, в отличие от обычных серверов. Описан процесс преобразования идентификатора скрытой службы Tor в удобочитаемый адрес .onion с кодом и конкретными деталями реализации. Показана загрузка библиотеки клиента Tor `arti`, подчеркивая ее встроенный характер по сравнению с отдельным демоном. Хостинг скрытой службы включает настройку и получение потока запросов для входящих соединений. Подключение к скрытой службе аналогично просто. В статье обсуждается подход с одновременным установлением соединения с обеих сторон, когда оба пира пытаются инициировать соединение одновременно, способствуя равенству и простоте использования, несмотря на дополнительную сложность. Описан механизм рукопожатия из трех сообщений для установления безопасных ключей сеанса после установления соединения. Разъясняется, что предоставляет библиотека `arti`, например, управление цепочками и интеграция со скрытыми службами, а чего ей в настоящее время не хватает, отмечая ее экспериментальный статус для критически важных с точки зрения безопасности приложений. Автор подчеркивает необходимость синхронного выполнения криптографических примитивов во избежание проблем с безопасностью отмены. В следующей статье будет рассмотрен пользовательский интерфейс, включая управление контактами и обработку запросов на подключение.
VuReact — это набор инструментов для миграции с Vue на React и написания React с использованием синтаксиса Vue 3. В этой статье подробно рассказывается, как макрос defineModel Vue 3 компилируется в React. Компиляция сопоставляет defineModel Vue с хуками useVRef и useUpdated React для автоматической синхронизации. defineModel Vue упрощает объявления v-model, генерируя ref, свойство modelValue и событие update. VuReact преобразует это в useVRef для реактивности значений свойств и useUpdated для вызова обратных вызовов родителя при изменении значений. Компиляция разбивает defineModel на объявления типов свойств, объявления обратных вызовов событий и реактивность во время выполнения. Это гарантирует, что изменение значения ref внутри компонента автоматически обновляет родителя, отражая опыт разработки Vue. VuReact поддерживает параметры type, default, required и пользовательские имена свойств для defineModel. Он обрабатывает эти параметры, преобразуя их в ограничения типов TypeScript и логику значений по умолчанию. Хук useVRef оборачивает начальное значение свойства в реактивный ref, а useUpdated отслеживает изменения в ref. Прямое присвоение значению .value в скомпилированном коде React запускает обновление родителя. Функции, взаимодействующие со значением ref, обернуты в useCallback с правильным отслеживанием зависимостей. Это сохранение шаблона доступа к .value обеспечивает плавный переход для разработчиков.
Команда значительно обновила свою деятельность после двух месяцев интенсивного восстановления с момента запуска Klar. Они расширились до команды из восьми агентов, добавив стратегические и инфраструктурные ресурсы. В каталог их стартапов добавлено новое решение для расчета заработной платы и управления персоналом для малого и среднего бизнеса под названием Nomi. Количество проектов увеличилось в четыре раза, а процент выполнения задач по этим проектам высок. Технически их инфраструктура теперь почти полностью управляется как код, и они готовы к работе с Kubernetes благодаря контейнеризированным проектам. Они внедрили надежную систему управления развертыванием, обеспечивающую непрерывную интеграцию и развертывание. Их инфраструктура ориентирована на высокую доступность и возможности самовосстановления, при этом значительная часть является собственной. В плане продукта они закрыли тысячи запросов на вытягивание, сосредоточившись как на внутренних улучшениях, так и на новых функциях. Создан контент-конвейер для еженедельной генерации статей для различных платформ с возможностью опционального человеческого рецензирования. Они близки к завершению этапа восстановления и ожидают скорого возобновления работы ключевого производителя, что, возможно, приведет к запуску. Примечательно, что все их расходы на сегодняшний день остаются ниже тысячи евро благодаря тщательному управлению затратами на ИИ и виртуальные машины.
AI-Team-Team (ATT) позволяет ИИ-агентам свободно формировать сложные иерархические или динамические команды. Этот проект обеспечивает рекурсивное создание дочерних команд агентов с ограничением глубины. Команды могут автономно конфигурировать своих членов, определять роли и мигрировать в рамках иерархии. Карта ASCII в реальном времени визуализирует активную топологию команды, а глобальный каталог экспертов облегчает поиск партнеров. ATT использует ограниченные циклы ReAct для рассуждений и надежный парсер для выполнения. Память диалогов сжимается для сохранения важной истории разговоров. Логика генерации LLM делегируется независимому от поставщика обработчику обратных вызовов. Демократическая система голосования регулирует изменения членов, позволяя анонимное участие. Брокер переговоров управляет межкомандным общением, а библиотеки совместных документов предлагают контролируемое хранение. Шлюзы защиты контекста ограничивают чтение больших файлов, переходя к предупреждениям об общих чертах и запросам на фрагменты. Аудиты инструментов перехватывают и проверяют конкретные вызовы инструментов перед выполнением. Снимки состояния SQLite позволяют восстанавливаться после сбоев путем сериализации состояний системы. Надзорная команда проверяет диалоги и эскалирует аномалии. Разделенные панели управления предоставляют четкие точки подключения для событий времени выполнения для обновления пользовательского интерфейса. Проект представляет собой полный пакет Python с реализованными функциями и планами будущих приложений.
Доля пользователей приложений для ИИ, использующих ChatGPT, упала ниже пятидесяти процентов и, по данным Sensor Tower, составляет около сорока шести процентов. Gemini занимает примерно двадцать восемь процентов, а Claude — около десяти процентов пользователей приложений. Однако ChatGPT по-прежнему лидирует по веб-трафику, имея более 1,1 миллиарда ежемесячных пользователей, сохраняя свою общую позицию номер один. Этот сдвиг свидетельствует об окончании привычки пользователей использовать одно-единственное приложение для ИИ. Автор, разработчик, теперь использует разные ИИ для конкретных задач. Claude предпочтительнее для задач кодирования, таких как рефакторинг и понимание сложных кодовых баз. Gemini интегрирован в продукты Google, что делает его удобным для электронной почты, поиска и задач в вкладках Google. Он выигрывает от отсутствия необходимости установки, поскольку предустановлен на многих устройствах. ChatGPT остается основным инструментом для общих вопросов и быстрого составления черновиков благодаря удобному интерфейсу. Другие модели ИИ набирают популярность благодаря своему распространению, особенно Gemini в экосистеме Google. Доверие пользователей также играет роль: некоторые перешли с ChatGPT после определенных объявлений о партнерстве. Основной вопрос изменился с поиска "лучшего ИИ" на определение "лучшего ИИ для конкретной задачи". Это требует маршрутизации на основе задач, которая становится стандартным рабочим процессом для разработчиков. Усиление конкуренции стимулирует более быстрое развитие функций и снижение цен на услуги ИИ.
Многие EdTech-платформы и платформы для подготовки к собеседованиям используют заголовки, описывающие, что представляет собой продукт, а не что получает кандидат. Такие заголовки, как «Техническое совершенство, от обучения до собеседования», звучат хорошо и точны. Однако они не отвечают на конкретные вопросы, которые возникают у разработчика при поиске подготовки к собеседованию. Разработчики ищут конкретные ответы на такие проблемы, как пробелы в проектировании систем или подготовка по конкретному стеку. Текущие заголовки описывают желаемое состояние компетентности, но не ощутимый результат или четкое отличие от конкурентов. Они предлагают охват, но не конкретизируют, чего достигнет кандидат. Более эффективный заголовок смещает фокус с амбиций на прямой, измеримый результат. Например: «Пройдите следующее техническое собеседование в ведущей компании — практикуйте точные вопросы, которые задают по вашему стеку, пока вас ничто не удивит в день X». Этот пересмотренный заголовок явно указывает на желаемый результат, персонализированный механизм его достижения и конечное состояние готовности. Такой подход напрямую отвечает на глубинные страхи и желания кандидата. Шаблон заголовков, ориентированных на амбиции, распространен, потому что основатели сосредоточены на ценностях своего продукта. Однако кандидаты в первую очередь ищут результаты, а не просто абстрактные идеалы. Поэтому заголовки должны в первую очередь четко формулировать конкретную выгоду.
При создании ИИ-агентов для компаний выявляется общая проблема: разрыв между успешной демонстрацией и надежной работой в производственной среде. Это несоответствие в основном связано с кумулятивной вероятностью, а не с ограничениями модели. Даже при высокой надежности каждого отдельного шага, последовательное выполнение нескольких шагов значительно снижает общую вероятность успеха. Демонстрация обычно показывает один идеальный сценарий, скрывая реальные сложности производственной среды. Сбои на отдельных этапах работы агента часто остаются незамеченными, поскольку они приводят к правдоподобным, но ошибочным результатам. Отдельные шаги могут выглядеть корректными сами по себе, но незаметно распространять ошибки по всей цепочке. Распространенный диагноз "галлюцинация" часто бывает неточным, поскольку модели просто обрабатывают полученные данные. Качество контекста, а не его объем, является критическим ограничением производительности агента, поскольку более старая информация теряется. Для повышения надежности следует сосредоточиться на надежной системной инженерии, а не только на оптимизации запросов. Реализация контрольных точек состояния позволяет возобновлять прерванные процессы, избегая дорогостоящих перезапусков. Проверка входных и выходных данных на каждом этапе позволяет своевременно выявлять ошибки, предотвращая их искажение последующих операций. Обеспечение идемпотентности побочных эффектов имеет решающее значение для обработки повторных попыток с недетерминированными рабочими процессами. Интеграция оценки в конвейер непрерывной интеграции рассматривает поведение агента как код, подверженный регрессии. В конечном итоге, преобразование эффектной демонстрации в готовую к производству систему требует непривлекательных инженерных дисциплин, таких как обработка ошибок и управление состоянием. Основная проблема часто заключается в том, что агент рассматривается как простой запрос, а не как сложная система.
Современные системы ИИ становятся все более сложными, требуя новой инфраструктуры для управления несколькими поставщиками моделей обработки естественного языка (LLM) и интеграцией инструментов. Прямое подключение приложений к множеству сервисов становится неуправляемым в масштабе. Шлюз LLM упрощает это, предлагая единую точку входа для всех взаимодействий с моделями, обрабатывая аутентификацию, ограничение скорости и мониторинг затрат. Маршрутизаторы LLM имеют решающее значение, поскольку они интеллектуально выбирают наиболее подходящую модель LLM для данной задачи, оптимизируя стоимость и производительность. Протокол контекста модели (MCP) становится стандартом для взаимодействия агентов ИИ с внешними инструментами и системами. Шлюз MCP предоставляет централизованный слой для управления доступом к этим серверам MCP, обеспечивая соблюдение политик и повышение управления. В то время как прокси MCP в основном обрабатывает подключение и аутентификацию, шлюз MCP добавляет комплексные функции управления. Реестры, такие как реестр MCP, реестр агентов и реестр навыков, имеют решающее значение для обнаружения и каталогизации доступных ресурсов ИИ. Реестр MCP перечисляет серверы MCP, реестр агентов отслеживает агентов ИИ, а реестр навыков подробно описывает возможности агентов, которые можно повторно использовать. Эти реестры предотвращают дублирование и улучшают общее управление системой ИИ. В конечном итоге эффективная интеграция и управление моделями, агентами и инструментами имеют первостепенное значение для будущего успеха корпоративного ИИ, что делает эти слои инфраструктуры незаменимыми.
Агенты ИИ, работающие на протяжении многих ходов, сталкиваются с ограничениями контекста, что вынуждает их сжимать или отбрасывать предыдущие сообщения. Эта потеря контекста часто незаметна, но критична, поскольку может привести к тому, что агенты забудут важные ограничения, предпочтения пользователя или предыдущие решения. Платформа Context Compaction Visualizer решает эту проблему, делая процесс управления контекстом прозрачным. Она позволяет пользователям загружать трассировки выполнения с различных платформ, таких как LangSmith, OpenTelemetry или AgentOps. Затем платформа восстанавливает полную историю сеанса, подробно описывая, какие сообщения были сохранены, обобщены или отброшены. Временная шкала D3.js визуально отображает потребление токенов на всех ходах с цветовой кодировкой результатов. Функция воспроизведения сеанса позволяет пошагово просматривать, выделяя события сжатия и их влияние. Аналитика токенов предоставляет информацию об общей стоимости и эффективности сжатия. Дополнительный детектор потери информации на базе Claude оценивает риск каждого события сжатия и выявляет потенциально потерянную информацию. Платформа поддерживает сравнительные представления для оценки различных агентов или стратегий сжатия бок о бок. Настройка включает установку Python и Node.js, настройку необязательного ключа API Anthropic и запуск серверных и клиентских служб или использование Docker. Серверная часть включает парсеры для различных форматов трассировок, нормализуя их перед дальнейшей обработкой. Ключевые проектные решения включают нормализацию парсеров, плавное резервное копирование для детектора потери информации и эффективную интеграцию D3.js в React. Проект направлен на предоставление записи о том, какой контекст был потерян и какова его ценность, делая невидимый процесс сжатия контекста видимым.
CdXz5zHNQW_XlLw0jOkT9.webp
Существующие системы памяти ИИ-агентов страдают от постоянного накопления, что со временем приводит к снижению производительности и точности, поскольку старые факты загрязняют поиск. Эта проблема возникает из-за того, что большее количество токенов напрямую коррелирует с худшими результатами и более медленным, "глупым" агентом. Для решения этой проблемы была разработана recall-sqlite — система памяти, которая активно забывает. Ее основной принцип — многоуровневое хранение, где воспоминания автоматически перемещаются между уровнями в зависимости от частоты их доступа. "Горячий" уровень содержит часто используемые воспоминания, используя ANN и ключевые слова для быстрого поиска. "Теплый" уровень хранит менее используемые воспоминания, полагаясь только на ключевые слова и FTS5 для значительно сниженных вычислительных затрат. "Холодный" уровень может хранить неограниченное количество воспоминаний с нулевыми вычислительными затратами, автоматически повышая их при необходимости. Ключевые решения в дизайне включают отсутствие использования LLM во время запроса, полагаясь исключительно на небольшую локальную модель встраивания. Система избегает традиционных векторных баз данных, используя SQLite с sqlite-vec вместо них. Система поддерживает плавную деградацию, переключаясь на поиск по ключевым словам и FTS5 в автономном режиме. Автоматическая миграция схемы упрощает обновления, а установка осуществляется одной командой pip без API-ключей или Docker. После шести месяцев ежедневного использования с почти 1500 воспоминаниями задержка остается около 80 мс при фиксированном объеме памяти около 1,5 МБ. recall-sqlite теперь интегрирована в экосистему Hermes Agent.
Вставка секретов в запросы к ИИ сродни публичному распространению, с потенциалом постоянного раскрытия в логах и обучающих данных. Автор подчеркивает необходимость использования ИИ с учетом модели угроз, а не просто в обычном режиме. Запросы после отправки не остаются конфиденциальными. Бесплатные уровни ИИ часто сохраняют данные для улучшения моделей, в то время как платные уровни предлагают договорные гарантии, но не абсолютную безопасность. Утечки данных могут произойти из того, что было вставлено, что автоматически прикрепляют инструменты, или что выдает модель. Поставщики ИИ рассматриваются как доверенные, но непроверяемые третьи стороны, что делает аудит внутренних процессов невозможным. Под угрозами находятся API-ключи, учетные данные базы данных и конфиденциальная информация о клиентах. Канал запросов следует рассматривать как недоверенный исходящий канал, аналогичный вызовам из производственной сети. Предоставляется список запрещенных к отправке данных, включающий действующие учетные данные, конфиденциальные файлы конфигурации и проприетарный исходный код. Маскировка секретов с помощью заполнителей является жизнеспособной альтернативой отказу от их отправки. Гигиена контекста включает структурное предотвращение утечек с помощью файлов игнорирования и предварительного сканирования запросов. Принцип сохранения секретов в зашифрованном виде у источника предотвращает раскрытие в открытом тексте. Рекомендуется сопоставлять конфиденциальность данных с уровнем ИИ, используя платные уровни для проприетарной работы и локальные модели для регулируемых данных. Даже при гарантиях отсутствия обучения рекомендуется применять подход нулевого доверия, минимизируя контекст и проверяя выходные данные ИИ. Привычки, такие как использование файлов игнорирования ИИ, сканирование на наличие секретов и маскировка учетных данных, повышают безопасность без значительных временных затрат.
CdXz5zHNQW_4mLhs4Bk7t.webp
Разработчик отмечает 69 дней непрерывной работы в области full-stack инженерии. Вчера он успешно развернул интерактивную панель управления инвентаризацией хостов и хуки для удаления данных. Сегодня он сосредоточился на совершенствовании административного жизненного цикла, внедрив систему повторного использования формы создания для обновлений. Это было достигнуто за счет использования параметров запроса Express и динамической гидратации представлений. Основная концепция заключается в предотвращении дублирования кода при создании и обновлении записей. Разработчик добился этого путем абстрагирования извлечения условного состояния. На 69-й день он создал драйверы для приема запросов и обновлений для этой функциональности. Процесс начинается с приема строки запроса, когда приложение захватывает параметры, такие как '?editing=true', из URL. Строгая условная проверка затем определяет логику обработки приложения. Если фильтр обновления истинен, контроллер извлекает из пути URL строку указателя базы данных. Этот идентификатор используется для получения существующих данных для конкретной записи. Эти полученные данные затем используются для заполнения полей ввода в форме. Повторно используемая логика EJS динамически преобразует пользовательский интерфейс на основе этого состояния обновления. Например, заголовок меняется на "Edit HOME", а основная кнопка призыва к действию обновляется на "Edit Home details". Поля ввода файлов также подготовлены для обработки обновленных строк изображений или сохранения существующих путей к медиафайлам. Предоставленный фрагмент архитектуры показывает, как бэкенд перехватывает флаги запросов для динамического управления движком представлений для повторного использования форм.
Вчера XEdge был запущен на Launchpad Peerlist. 13 голосов «за». 1 ветка комментариев. 3 отзыва. Вот честный взгляд на то, что на самом деле означает каждая цифра: Голоса «за» — это показатель популярности, а не качества. Они говорят вам, что люди увидели ваш запуск и нажали одну кнопку. Это что-то значит для видимости, но ничего для направления развития продукта. Комментарии — это показатель глубины. Одна реальная ветка комментариев рассказала мне о том, как незнакомец воспринимает XEdge, больше, чем 13 молчаливых голосов «за» вместе взятых. Обратная связь — единственный сигнал, который накапливается. 3 человека нашли время, чтобы сказать мне, что сбивает с толку или чего не хватает. Это 3 бесплатных аудита продукта от людей, которые не обязаны их давать. Сегодня я больше не буду смотреть на таблицу лидеров. Я буду разбирать каждый отзыв построчно и решать, какие изменения внести на этой неделе. Урок: оптимизируйте запуски для качества обратной связи, а не для количества голосов. Голоса забудутся через неделю. Обратная связь может исправить то, что важно на месяцы вперед. xedge.tech — продолжаем строить, продолжаем слушать.
Codex подвергался критике за чрезмерное диагностическое логирование в локальную базу данных SQLite, что приводило к проблемам с производительностью, таким как интенсивная запись на SSD и замедление отклика. Неофициальное решение включает использование триггера SQLite для игнорирования новых записей журнала, что снижает активность диска, но потенциально скрывает диагностическую информацию. Это решение подчеркивает критическое различие между внутренними журналами агента и постоянной "памятью проекта", необходимой для непрерывности. Журналы агента содержат низкоуровневые операционные детали, в то время как память проекта требует краткой записи ключевых решений, проверенных доказательств и следующих шагов. Эта существенная непрерывность проекта не сохраняется внутренними базами данных диагностики, которые предназначены для самодиагностики агента и подвержены изменениям схемы и формата. В статье представлена QiJu, локальный слой записи, разработанный для захвата этого контекста непрерывности для ИИ-агентов по написанию кода, таких как Codex. QiJu намеренно записывает только существенные факты — файлы истинного положения дел, решения, доказательства и следующие действия — позволяя последующим агентам правильно возобновить работу без необходимости всей исторической сессии. Этот подход является аудируемым и передаваемым, в отличие от информации, запертой во внутреннем воспоминании агента. QiJu предоставляет практическое решение для поддержания непрерывности проекта, особенно когда журналы агента отключены или недоступны. Команда обновления `qiju update` гарантирует, что навыки интеграции агента остаются актуальными во всех проектах. Процесс регистрации проекта отделяет местоположение проекта от конфигурации хоста, обеспечивая эффективные обновления. Хотя QiJu находится в предварительной версии для разработчиков с ограничениями, его основная цель — установить преднамеренную, проверяемую запись того, что важно для продолжения разработки с помощью ИИ, что является критическим отличием от внутреннего диагностического логирования.
Кибербезопасность в здравоохранении теперь неразрывно связана с клинической безопасностью, что подтверждается интегрированными пакетами закупок для больниц. Больницы управляют гетерогенными сетями, где разнообразные системы, от медицинских устройств до Wi-Fi для посетителей, представляют уникальные уязвимости. Эти разнообразные системы требуют сегментации сети в соответствии с клиническими функциями и уровнями риска, изолируя менее безопасные медицинские устройства. Защита доступности медицинских услуг так же важна, как и конфиденциальность данных, поэтому меры безопасности должны тестироваться на критически важных клинических рабочих процессах. Комплексные планы резервного копирования и восстановления должны обеспечивать восстановление данных в клинически значимые сроки. Обслуживание поставщиками представляет собой частый риск, требующий строгого контроля удаленного доступа, записи данных и удаления учетных данных по умолчанию. Процессы закупок могут укрепить эти ожидания в области безопасности, требуя от поставщиков доказательств надежных практик безопасности. Приемочные испытания должны включать симуляции инцидентов безопасности, таких как компрометация учетных записей и отказ компонентов. Конечная цель — обеспечить надежное медицинское обслуживание посредством управляемого риска, а не абсолютного ограничения. Согласовывая дизайн кибербезопасности с клиническими зависимостями, больницы могут повысить безопасность, не препятствуя предоставлению основных услуг.
Инференс передовых больших языковых моделей является дорогостоящим, что стимулировало разработку Buddy System — многоуровневой архитектуры инференса. Эта система стремится максимально использовать локальные модели, прежде чем прибегать к дорогостоящим вызовам облачных сервисов. Монитор энтропии на Rust отслеживает неопределенность на уровне токенов во время локальной генерации 4-миллиардной модели, работающей на Apple Silicon через MLX. Когда локальная модель демонстрирует высокую энтропию, указывающую на реальную неопределенность, особенно на границах предложений, spaCy NER идентифицирует соответствующие именованные сущности или именные группы. Затем ретривер sentence-transformers находит релевантные фрагменты текста для контекста. Облачная модель Sonnet получает целевой запрос, состоящий из неопределенного факта и документа для обоснования. Важно отметить, что облачные вызовы асинхронны, что гарантирует отсутствие блокировки локальной генерации. Классические инструменты обрабатывают детерминированные задачи, такие как математика и единицы измерения, с нулевыми затратами. Тесты показывают, что Buddy System достигает 71,4% точности при минимальных затратах по сравнению с чисто локальным решением (70,7% точности, 0,00 долл. США). Однако шаблон советника неожиданно показал низкие результаты на конкретных наборах данных, таких как SQuAD v2 и HotpotQA. Это объясняется тем, что советник получает ответ без исходного документа, полагаясь на параметрическую память вместо обоснования. Успех Buddy System заключается в передаче контекста документа на уровень проверки, демонстрируя важность контекста для точной работы больших языковых моделей.
Корпоративный ландшафт ИИ смещается от простых чат-ботов с дополненной генерацией поиска (RAG) к более сложным агентским рабочим процессам. Системы RAG, хотя и хорошо отвечают на вопросы из внутренних документов, не способны выполнять многошаговые задачи или записывать данные. API Managed Agents от Google предлагает решение, предоставляя безопасную облачную песочницу для ИИ-агентов. Эта архитектура обеспечивает сохранение состояния и транзакционные операции записи, что крайне важно для корпоративных рабочих процессов. API Managed Agents работает в изолированном Linux-контейнере для каждой сессии агента, абстрагируя вопросы контейнеризации и безопасности. Состояние сохраняется на протяжении нескольких шагов с помощью постоянного идентификатора сессии, что позволяет выполнять длительные задачи. Поведение агента определяется через структурированные файлы, а не сложный код, что упрощает настройку. Безопасность повышается за счет инъекции учетных данных на стороне сервера, предотвращая раскрытие конфиденциальной информации. Однако достижение готовности к корпоративному использованию требует большего, чем просто управляемая песочница. Необходима эталонная архитектура из семи уровней, включающая уровни интерфейса, оркестрации, модели, инструментов, знаний, песочницы и аудита. Наибольшая инженерная нагрузка приходится на интеграцию этих уровней, особенно плоскости управления, политик ограничения инструментов и механизмов отката транзакций. Несколько компаний, таких как GeekyAnts, Slalom и Cognizant, специализируются на создании этих сложных корпоративных интеграций агентского ИИ. Ключевой вывод для руководителей предприятий заключается в том, чтобы сосредоточиться на инфраструктуре и инженерии, а не только на усовершенствовании моделей. Изолировав четко определенный бизнес-процесс и построив надежную плоскость управления с возможностью наблюдения, команды могут перейти от вспомогательных чатов к автономным, управляемым рабочим процессам. Инструменты для решения этих задач интеграции и архитектуры теперь доступны.
API, развернутое студентом, молча перестало работать на несколько часов, что послужило поводом для создания Monitorly. Существующие инструменты мониторинга доступности казались слишком сложными для студенческого проекта. Monitorly — это новая, открытая платформа для мониторинга доступности API, разработанная с упором на простоту. Она оснащена панелью мониторинга в реальном времени, которая обновляется мгновенно без перезагрузки страницы. Оповещения отправляются по электронной почте только при изменении статуса конечной точки, что предотвращает спам в почтовом ящике. Платформа рассчитывает скользящий процент доступности на основе исторических данных проверок. Пользователи могут настраивать интервалы проверок от одной до пятнадцати минут. Monitorly использует аутентификацию JWT для изоляции данных мониторинга каждого пользователя. Ключевые технологии включают Node.js, Express.js, MongoDB и Socket.io. Архитектура использует cron-задачи для планирования проверок и Axios для HTTP-запросов. Важным уроком стало проектирование логики оповещений для улучшения пользовательского опыта, а не только для технической корректности. Проект также подчеркивает важность отделения данных журналов от основных документов и реализации тайм-аутов запросов. Планы на будущее включают добавление SMS-оповещений, проверки тела ответа и публичных страниц статуса.
Автор перестроил свой личный веб-сайт, используя Astro, сосредоточившись на определенных принципах. К ним относятся поддержание SEO, владение всеми активами, минимизация JavaScript и обеспечение конфиденциальности и свободы от привязки к поставщику. Посты управляются как файлы Markdown в репозитории Git, с сохранением "слагов" для соответствия старым URL-адресам для непрерывности SEO. Процесс миграции включал скрипт для импорта постов, удаления ненужного контента, локальной загрузки изображений и их оптимизации. SEO было критически важным аспектом, решенным путем внедрения канонических URL-адресов и 301 редиректов для старых путей блога на основной домен. Это консолидировало сигналы ранжирования на одном хосте. Возникла постоянная ошибка из-за оставшегося сервис-воркера Gatsby, который обслуживал кэшированный контент. Решением стал новый сервис-воркер "kill-switch" для отмены регистрации старого и принудительного обновления до живого сайта. Функциональность поиска была реализована на стороне клиента с использованием статического JSON-индекса, что исключило необходимость в серверной части. Небольшая проблема с ограниченными стилями Astro была решена путем корректировки размещения CSS для динамически генерируемых элементов. Диаграммы Mermaid рендерятся явно на стороне клиента после асинхронного импорта, чтобы обеспечить их правильную загрузку. Для лучшей читаемости диаграмм была добавлена функция "клик для увеличения". Гигиена тегов была решена путем консолидации тегов, используемых один раз, и дублирующихся тегов в канонические, при этом страницы с менее чем двумя постами были помечены для noindexing. Аналитика без использования файлов cookie была реализована с помощью Umami, с прокси первого лица через Cloudflare Pages Functions для обхода блокировщиков рекламы. В Umami было добавлено отслеживание событий для кликов по ссылкам. View Transitions в Astro требуют повторной инициализации скриптов при каждой навигации, поскольку `transition:persist` не сохраняет прикрепленные к скриптам слушатели. Наконец, было установлено, что Rocket Loader от Cloudflare является причиной сбоев сайта в Safari, и он был отключен.
Традиционные инструменты дизайна часто оставляют разработчиков на второй план, требуя ручного перевода пиксельно совершенных дизайнов в код, который быстро устарев. Penpot, платформа с открытым исходным кодом, решает эту проблему, выражая дизайн напрямую в веб-стандартах, таких как SVG, CSS и HTML. Это устраняет проприетарную фиксацию и необходимость интерпретировать специализированный «дизайнерский диалект». Разработчики получают мгновенный доступ к проверяемому, готовому к использованию коду для SVG, CSS и HTML внутри Penpot. Платформа поддерживает нативные CSS Grid и Flexbox для макетов, отражая поведение интерфейсов в браузере и снижая трения между проектированием и реализацией. Важной особенностью является интегрированный MCP-сервер, позволяющий AI-клиентам программно читать и изменять дизайны. Эта интеграция с ИИ использует структурированный, машиночитаемый код дизайнов Penpot для задач, таких как генерация семантического HTML или создание прототипов. Penpot также предлагает первоклассные нативные Design Tokens, выступающие единым источником истины для проектирования и разработки, упрощая синхронизацию. Его открытый API, плагины и вебхуки позволяют автоматизировать и интегрировать их в существующие рабочие процессы разработчиков. Кроме того, Penpot может быть самостоятельным хостингом, предоставляя преимущества по соблюдению требований для команд с жёсткими требованиями к владению данными. Используя веб-нативные выходы и реальные CSS-макеты, Penpot стремится сократить разрыв между проектированием и разработкой. Хотя Figma всё ещё лидирует по глубине отшлифовки и прототипированию, Penpot — интересный вариант для разработчиков, ставящих приоритет на владение данными, согласование дизайн-код и рабочие процессы на базе ИИ.
Комплексная модель оценки рисков уязвимостей должна выходить за рамки простого базового балла CVE. Она должна включать временные метрики, отражающие текущий ландшафт угроз, и экологические метрики, учитывающие специфический контекст инфраструктуры организации. Истинный риск уязвимости определяется ее влиянием на критически важные бизнес-активы, а не только ее присущей серьезностью. Например, уязвимость более низкого рейтинга на общедоступном клиентском веб-сайте представляет большую угрозу, чем критическая уязвимость на изолированном внутреннем сервере. Эффективная интеграция данных CVE требует сортировки с учетом активов, где важность затронутого актива определяет приоритет исправления. Кроме того, интеграция DevSecOps, использующая инструменты анализа состава программного обеспечения в конвейере CI/CD, позволяет на ранней стадии выявлять и устранять уязвимости в сторонних библиотеках. Согласование внутренних отчетов сканирования с актуальной информацией об угрозах, такой как каталог CISA, имеет решающее значение для выявления и приоритизации активно используемых уязвимостей. Даже CVE средней степени серьезности могут стать срочными, если они активно используются злоумышленниками. В конечном итоге, эффективное управление уязвимостями зависит от контекста, согласования общих данных об уязвимостях с конкретными бизнес-активами и динамическим ландшафтом угроз. Такой подход позволяет организациям стратегически распределять ресурсы для защиты своих наиболее критически важных активов.
Шрисут, 16-летний подросток из Пуны, Индия, разработал O-AI, полностью локального настольного ИИ-ассистента. Будучи недовольным тем, что облачные ассистенты ставят под угрозу конфиденциальность, он создал O-AI, чтобы он работал как JARVIS из "Железного человека", уделяя приоритетное внимание личному и приватному взаимодействию. O-AI запускает большие языковые модели локально, используя llama.cpp или Ollama, не требуя подключения к Интернету или внешних API-ключей. Он оснащен самообучающимся ядром, которое запоминает факты из разговоров, и конвейером тонкой настройки для персонализированного обучения модели. Ассистент поддерживает голосовое управление на английском, хинди и маратхи через локальную реализацию Whisper, отвечая на языке, на котором говорит пользователь. O-AI предлагает различные режимы, включая интерфейс, похожий на JARVIS, автоматизацию ПК и анимированных настольных питомцев. Он может похвастаться более чем 30 возможностями автоматизации для таких задач, как открытие приложений, поиск в Интернете и управление мультимедиа. Многошаговая агентская система позволяет планировать, выполнять и проверять сложные действия, поддерживаемые различными типами шагов. Технологический стек включает Python с Flask для серверной части и Electron с чистым JavaScript для клиентской части. Основные трудности включали реализацию проверки результатов для задач агента и надежную проверку содержимого для предотвращения ошибок.
В этом выпуске новостей безопасности основное внимание уделяется операционным ошибкам в системах ИИ и целостности контента, сгенерированного ИИ. Критическая ошибка в OpenAI Codex может привести к чрезмерному ведению журналов, что приведет к быстрому потреблению локального хранилища SSD. Нехватка дискового пространства может остановить работу, предотвратить обновления и потенциально привести к потере данных. Ошибка Codex подчеркивает необходимость надежных конфигураций ведения журналов и мониторинга при развертывании ИИ. Кроме того, анализ вывода "Расширенного мышления" Claude Code вызывает опасения по поводу подлинности контента, сгенерированного ИИ. Части вывода могут быть сфабрикованы, чтобы выглядеть более связными, что создает риск доверия и целостности. В сфере безопасности зависимость от ИИ требует уверенности в точности и происхождении его результатов. Неподлинные объяснения ИИ могут привести к ошибочным решениям или появлению уязвимостей. Большая прозрачность и проверяемость результатов моделей ИИ имеют решающее значение для рабочих процессов, чувствительных к безопасности. Наконец, GitHub Copilot улучшает обработку контекста и маршрутизацию моделей для повышения эффективности. Эти улучшения незаметно повышают безопасность кода, генерируя более точные и релевантные предложения. Лучшее понимание контекста снижает вероятность внесения ошибок или небезопасных шаблонов. Это постоянное совершенствование способствует более безопасному конвейеру разработки, смягчая уязвимости, вызванные человеком.
DuckDB выпустила версию 1.5.2, исправление, направленное на повышение стабильности и производительности. Этот релиз включает критические исправления ошибок и устраняет узкие места производительности для более быстрого выполнения запросов. Важной новой функцией является официальная поддержка формата lakehouse DuckLake v1.0, что расширяет его возможности для сложных архитектур данных. Эта интеграция обеспечивает эффективное выполнение запросов и управление данными, хранящимися в парадигме lakehouse. Статья о pg_stats PostgreSQL углубляется во внутреннюю статистику, используемую для настройки производительности и оптимизации запросов. Понимание того, как Postgres собирает, хранит и использует эту статистику, имеет решающее значение для эффективного управления базами данных. Это помогает разработчикам и администраторам баз данных интерпретировать планы запросов и выявлять области для оптимизации. Обсуждение на форуме SQLite освещает метод xUpdate для реализации записываемых виртуальных таблиц. Метод xUpdate обрабатывает операции INSERT, UPDATE и DELETE, предоставляя возможности DML для пользовательских источников данных. Освоение xUpdate необходимо разработчикам, создающим надежные виртуальные таблицы и расширяющим функциональность SQLite. Это позволяет рассматривать внешние источники данных как стандартные таблицы SQLite с полной поддержкой модификации.
Человеческая память с трудом удерживает месяцы мелких, но важных рабочих моментов, что приводит к трудностям при оценке эффективности для руководителей. Ключевые достижения и позитивные взаимодействия могут быть забыты к моменту аттестации. В результате, руководители часто полагаются на фрагментарные воспоминания, разрозненные заметки и различные документы для восстановления картины производительности сотрудника. Такая зависимость часто приводит к эффекту недавности, когда недавние события непропорционально влияют на оценки. Многие руководители разработали личные системы для борьбы с этим, используя блокноты, электронные таблицы или даже ИИ-инструменты для ведения заметок. Однако, основная проблема заключается не в самом ведении заметок, а в эффективном преобразовании этих заметок в связное повествование о производительности. FeedbackVault призван решить эту проблему, фиксируя наблюдения по мере их возникновения и организуя их хронологически. Платформа намерена предоставить руководителям легкодоступный отчет о вкладе сотрудника с течением времени, вместо того чтобы требовать усилий по восстановлению памяти. Основным препятствием для FeedbackVault является принятие пользователями, поскольку существующие методы, хоть и несовершенны, уже используются. Создание достаточной ценности для стимулирования перехода от устоявшихся практик является текущим фокусом. Создатель ищет обратную связь от руководителей об их текущих процессах подготовки к аттестации и связанных с этим трудностях. Понимание реальных рабочих процессов имеет решающее значение для эффективной разработки FeedbackVault.
Вы можете интегрировать Sentry с существующим OpenTelemetry бэкендом, настроив ваш OTLP экспортер на конечную точку Sentry. Этот процесс требует минимальных изменений, позволяя избежать переписывания существующей инструментации. Для веб-приложений рекомендуется добавить Sentry SDK на фронтенд для сбора контекста браузера. Это обеспечивает единое представление трассировок от пользовательских взаимодействий до бэкенд-операций. OpenTelemetry поддерживает трассировки, логи и метрики, но Sentry в настоящее время принимает только трассировки и логи через OTLP. Ключевым моментом является разделение связывания трассировок от экспорта OTLP. Связывание трассировок обеспечивает непрерывную распределенную трассировку между запросами фронтенда и бэкенда. Sentry SDK для фронтенда обрабатывает это путем распространения заголовков W3C traceparent. Решение о том, куда отправляются OTLP события бэкенда, является отдельным. Вы можете отправлять их напрямую в Sentry или через OpenTelemetry Collector. Прямой экспорт OTLP является самым простым для проектов с одним бэкендом. Перенаправление через Collector предлагает централизованную обработку и маршрутизацию для нескольких сервисов. Демонстрационная архитектура показывает React фронтенд с Sentry SDK, FastAPI бэкенд, использующий OpenTelemetry, и OpenTelemetry Collector. Бэкенд сохраняет свою настройку OpenTelemetry, включая ручные спаны и логи. Затем Collector перенаправляет эти OTLP события в Sentry. Убедитесь, что CORS правильно настроен на бэкенде, чтобы разрешить заголовки распространения трассировки для междоменных запросов.
CdXz5zHNQW_atW5fkJcmM.webp
Хорошая архитектура требует системы, понятной команде после запуска, что делает наблюдаемость важнейшей частью обсуждения дизайна. Наблюдаемость должна быть интегрирована на этапе первоначальной разработки, а не добавлена постфактум, чтобы избежать пробелов в понимании реального поведения системы. Архитектура строится на предположениях, и без наблюдаемости эти предположения невозможно проверить в продакшене. Наблюдаемые системы предоставляют истинную информацию о поведении системы, связывая технические сигналы с реальным влиянием на пользователя. Наблюдаемость выходит за рамки простого наличия логов; она включает в себя соединение разрозненных сигналов для обеспечения контекста и ускорения отладки и принятия решений. Преимущество наблюдаемости заключается не только в более быстрой отладке, но и в фундаментальном изменении подхода команд к принятию решений, переходя от спекуляций к расследованиям, основанным на фактических данных. Значительно проще встроить видимость в систему на этапе формирования ее архитектуры, чем дорабатывать ее позже. Наиболее полезные сигналы связывают технические метрики с реальным влиянием, таким как пользовательский опыт или завершение рабочего процесса. Наблюдаемость должна быть ключевым фактором при рассмотрении архитектуры, гарантируя, что систему можно эксплуатировать, поддерживать и улучшать. В конечном итоге, сильная наблюдаемость способствует инженерному прогрессу, создавая четкий цикл обратной связи, позволяющий командам уверенно эксплуатировать и развивать свои системы.
Переменные окружения могут быть сложными, и понимание их нюансов крайне важно для избежания распространенных ошибок при разработке. В Linux ключи переменных окружения чувствительны к регистру, в отличие от Windows, где они нечувствительны к регистру, что может привести к проблемам типа "у меня работает". Все значения, полученные из process.env, являются строками, что требует явного преобразования для чисел и булевых значений, чтобы избежать неожиданного поведения и потенциальных NaN. Объект process.env отделен от .env файлов; Node.js не читает .env файлы автоматически без специальной конфигурации. Переменные окружения могут быть установлены для каждой команды, ограничивая их область действия одним процессом и избегая загрязнения оболочки. Настоятельно не рекомендуется изменять process.env во время выполнения, так как это значительно затрудняет отладку и вносит неопределенность. Next.js, в частности, встраивает переменные NEXT_PUBLIC_ во время сборки, что означает, что изменения этих переменных на производственном сервере требуют пересборки, чтобы вступить в силу. Process.env недоступен напрямую в браузерах; инструменты сборки, такие как Webpack и Vite, эмулируют его, часто используя специальные префиксы для раскрываемых переменных. Переменная NODE_ENV не устанавливается по умолчанию Node.js и должна обрабатываться фреймворками или явно устанавливаться. Имейте в виду, что значения переменных окружения могут иметь ограничения по размеру в некоторых системах, что потенциально может привести к усечению больших данных. Наконец, переменные окружения наследуются дочерними процессами, что означает, что секреты могут быть раскрыты процессам, которым они не требуются.
Первое текстовое сообщение было отправлено 3 декабря 1992 года и содержало простое "Merry Christmas". Нил Папворт, 22-летний инженер, отправил это историческое SMS с компьютера на мобильный телефон директора Vodafone в качестве теста. В то время мобильные телефоны не могли отправлять ответы, что делало это односторонней связью. SMS было разработано так, чтобы помещаться в ограниченный управляющий канал, используемый для телефонных звонков, ограничивая сообщения 160 символами. Это ограничение сделало SMS легким и устойчивым, способным к доставке по принципу "храни и пересылай" даже при слабых или отсутствующих соединениях данных. Тридцать лет спустя эта технология остается жизненно важной для устройств Интернета вещей (IoT) в удаленных или малосвязанных районах. Многие развертывания IoT не могут полагаться на Wi-Fi или стабильные данные, что делает SMS надежным резервным вариантом для обновлений статуса и команд. Устройства могут отправлять оповещения или получать инструкции, используя минимальную мощность и сложность через сотовые модули. Эта устойчивость имеет решающее значение для реальных продуктов, которые должны надежно работать за пределами идеальных сетевых условий. Непреходящее наследие первого SMS заключается в его простоте, эффективности и надежности — качествах, необходимых для эффективного встраиваемого проектирования.
Автор разработал Wingman, сервер MCP с открытым исходным кодом, который отображает постоянную панель задач в диалогах Claude. Это включало использование MCP Apps и связанного с ними SDK, которые автор нашел надежными. Однако два значительных недокументированных бага отняли много времени на разработку. Первый баг касался размещения `resourceUri`, которое должно находиться на верхнем уровне `_meta` объекта `CallToolResult`, а не внутри `structuredContent`. Возврат простого словаря из инструмента может привести к неправильному вложенному размещению `_meta`, из-за чего хост не сможет найти ресурс для отображения. Исправление заключается в возврате правильного объекта `CallToolResult` с корректно расположенным `_meta`. Второй серьезный баг возник из-за проблем со специфичностью CSS, которые переопределяли атрибут `[hidden]`. Явные правила `display` в пользовательских таблицах стилей мешали скрывать элементы, как это предполагалось JavaScript. Одна строка, добавляющая `!important` к CSS-правилу `[hidden]`, одновременно решила три отдельные проблемы пользовательского интерфейса. Кроме того, были обнаружены три ограничения песочницы iframe в хостах MCP Apps: `confirm()` завершается без ошибок (тихо), `navigator.clipboard.writeText` недоступен, а загрузки `Blob`/`URL.createObjectURL` заблокированы. Эти ограничения требуют обходных путей, таких как использование встроенных подтверждений и маршрутизация контента обратно через `sendMessage`. Автор подчеркивает, что эти сбои API обычно приводят к тихому отказу в работе, а не к ошибкам, что затрудняет их диагностику. В конечном итоге, оба серьезных бага были связаны с проблемами, находящимися на один уровень дальше от начальной точки проверки, что подчеркивает важность проверки этих промежуточных уровней при отладке. Wingman распространяется под лицензией MIT и доступен на PyPI.
Duende IdentityServer — это надежное решение для управления собственным уровнем идентификации в .NET, но оно требует значительных операционных затрат. Самостоятельное размещение требует управления самим IdP, включая установку исправлений, масштабирование и лицензирование, а также создание всех сопутствующих функций, таких как административные интерфейсы, многофакторная аутентификация и журналы аудита. Многие команды в конечном итоге решают снять с себя это операционное бремя, поэтому миграция становится ключевым фактором. Хорошая новость заключается в том, что миграция с Duende в значительной степени механична, поскольку его конфигурация хранится в SQL, а пользователи — в ASP.NET Identity. Клиенты, области действия и пользователи переносятся без проблем. Важно отметить, что хэши паролей ASP.NET Identity V3 поддерживаются нативно, что устраняет необходимость сброса паролей пользователей, что является распространенной проблемой при миграции с других IdP. Роли, назначения, внешние входы и поставщики удостоверений OIDC также переносятся напрямую, хотя поставщики SAML требуют перенастройки. Поддержание стабильности идентификации имеет первостепенное значение, поэтому миграция сохраняет пользовательские 'sub' и 'client_id' для предотвращения нарушения зависимостей нижестоящих систем. Инструмент миграции тщательно протестирован на реальных, заполненных базах данных Duende для выявления тонких проблем, таких как обработка datetimeoffset для заблокированных пользователей, которые в противном случае привели бы к сбоям импорта. Основное преимущество перехода заключается в прекращении эксплуатации IdP и вместо этого использовании включенных функций для SAML, SCIM, MFA, журналов аудита и пользовательского брендинга, снимая с себя ответственность за установку исправлений и масштабирование. Если сохранение полного контроля остается приоритетом, то остаться с Duende — это разумный выбор. Однако для организаций, стремящихся перераспределить время от операций IdP, плавная миграция с Duende является привлекательным вариантом, предлагая предварительный просмотр в режиме только для чтения для оценки импорта перед принятием решения.
Этот документ исследует неизменяемые реестры для обеспечения целостности систем хранения с использованием хеш-цепочек и деревьев Меркла. Архитектура, примером которой является реестр Kamelot с возможностью только добавления, повышает целостность данных и историю версий. В нем рассматриваются фундаментальные криптографические структуры, такие как деревья Меркла и аутентифицированные словари. Они позволяют адресовать контент, подобно Git, с эффективной проверкой и операциями добавления. Исследование утверждает, что суверенная, локальная AI-инфраструктура в настоящее время достижима. Проект Anticloud представлен как прозрачная и проверяемая альтернатива традиционному ИИ. Он отдает приоритет конфиденциальности по умолчанию, без внешних API или централизованных баз данных. Система перекрестно проверяет результаты и выражает неопределенность, а не генерирует ложную уверенность. Локальный ИИ достигается с помощью RAG и RLHF, сохраняя знания и предпочтения на оборудовании пользователя. Anticloud требует одной машины и бинарного файла, устраняя необходимость в доверии. Лоис-Кляйнер Альпасан разработал эту систему в ответ на методы извлечения данных в индустрии ИИ. Проект подчеркивает проверяемые утверждения, компоненты с открытым исходным кодом и архитектуру, ориентированную на конфиденциальность.