Обновить

Все потоки

Сначала показывать
Порог рейтинга

The.Hosting — всё.

Сегодня The.Hosting разослал юзерам такое сообщение:

IMPORTANT: Notice of Service Discontinuation and Account Closure

Dear Customer,

We are writing to inform you that due to unforeseen and unavoidable force majeure circumstances, THE.Hosting is forced to permanently discontinue all its operational services and wind down its activities.

As a result, our platform, support channels, and all associated services will be closed in the coming days.

What this means for you:

New Orders & Renewals: All active forms of registration, ordering, and renewals have been disabled. No new services can be purchased.

Data & Accounts: If you have any active data, configurations, or account details stored within our systems, we urgently advise you to retrieve and back up your information immediately.

Final Termination: Once the wind-down process is completed, all accounts and data will be permanently deleted from our systems.

We deeply regret that we are forced to take this step and understand the inconvenience this causes. We want to thank you sincerely for your partnership and trust in THE.Hosting over the past period.

Sincerely,The Management of THE.Hosting


Суть в том, что деятельность компании будет прекращена в течение нескольких дней. Данные необходимо спасать вручную. Деньги вряд ли будут возвращены (создать тикет уже невозможно).

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

Теги:
+1
Комментарии1

Пришло требование из ФНС в рамках камеральной проверки декларации по УСН (совмещение с ПСН) за 2025 год — предоставить пояснения в части зарубежного дохода от нерезидентов

В это время года ФНС проверяет отчетность ИП/ООО за 2025 год и в рамках п. 3 ст. 88 НК РФ направляет требования о представлении пояснений (форма по КНД 1165050). Срок ответа — как получили + 5 рабочих дней.

Само по себе требование еще ни о чем не говорит.

Чаще всего налоговикам просто не хватает сведений, чтобы понять, откуда взялся задекларированный доход.

Например, ИП на УСН отразил 5 млн рублей, но на расчетном счете этих денег не видно — доход пришел на зарубежный счет.

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

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

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

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

В рамках камеральной проверки ФНС формально не вправе истребовать конкретные документы — контракт, инвойсы, выписки. Но регулярно это делает, и судебная практика в этих вопросах как правило на стороне ФНС.

На этом многие теряют осторожность и решают: быстро покажу все, что есть, и даже немного больше — пусть видят, что я открытый и добросовестный.

Там разберутся.

На практике именно такая проактивность чаще всего и провоцирует более глубокие вопросы и реальные претензии.

Факт в том, что в части ВЭД сегодня каждый документ может выстрелить.

— Заказчик-нерезидент по контракту — это одно лицо, а плательщик по банку — другое

— Суммы (валюты) в контракте не совпадают с поступлениями на счет

— Часть денег зависла на балансе платежной системы взаиморасчетов с нерезидентом

— Условия контракта не бьются с применяемой системой налогообложения: по ПСН заявлена разработка, а по факту — консалтинг

— Контракт должен был встать на учет в банке при сумме обязательств свыше 10 млн рублей, но не встал.

Каждая из этих деталей по отдельности не создает общей картины. Но в одной папке, переданной инспектору по первому требованию, они складываются в ситуацию, которую вы уже не контролируете.

Первичное требование — не та крайняя необходимость, ради которой стоит отдавать первичку. Это сигнал проверить себя, а не повод выгрузить все досье контракта.

И если отвечаете не сами, а через бухгалтера, консультанта, юриста — попросите показать ответ до отправки.

Прочитайте лично.

Убедитесь, что понимаете написанное, готовы поддержать на словах и документами.

Грань между безопасным ответом и спровоцированной претензией проходит в формулировках ответа и документах, которые стали очевидны для инспектора.

Цена ошибок или бездействия — как минимум акт налоговой проверки с доначислениями и (или) штрафы за нарушение валютного законодательства.

Если вы получили требование и не уверены, как ответить, — обязательно пишите мне. Посмотрю на требование и скажу свое мнение.

Теги:
-2
Комментарии0

AI brain fry: когда ИИ увеличивает эффективность(зачеркнуто) вероятность перегруза

В Harvard Business Review это уже описали как AI brain fry. Авторы из BCG опираются на исследование среди 1 488 работников крупных компаний в США и пишут про перегруз внимания, рост числа ошибок, перегрузку решениями и желание уйти с работы.

В той же статье есть фраза пользователя Gas Town:

Too much going on for you to reasonably comprehend.

На русский это можно перевести как:

Слишком много, чтобы осмыслить.

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

  • Их надо ограничивать во избежание мусорной информации.

  • Полуечнный результат надо интерпретировать, так как не всегда понятно, что имеется в виду.

  • Часто ошибки приходится разбирать уже в боевом продукте, а не в тестовом.

LeadDev хорошо описывает это на примере агентов, которые пишут код. Причём всем людям из статьи всё это нравится. Из-за этого они начинают дольше сидеть за компьютером, в таком же темпе работать и в выходные, и жить с ощущением, что можно успеть сделать ещё немного. Это замкнутый круг. Но вообще это FOMO.

Оригинальнал статьи опубликован в блоге: https://www.ytdev.me/essays/The-Risks-of-AI-Implementation-in-Business-Why-Efficiency-May-Be-an-Illusion

Теги:
+1
Комментарии4

Биллинг — это не «простая логика». Четыре грабли за два года разработки

«Напишем за неделю, там простая логика» — так начинается каждая вторая история с биллингом. Через два года получаем систему, которую понимает один человек, пересчёты вручную и клиентов, которым непонятно, почему именно такая сумма. Разбираем типичные ошибки и что закладывать до первого клиента.

Проблема начинается с недооценки. Команда видит базовую математику: тариф × количество × период = счёт. На бумаге выглядит элементарно. В реальности через месяц появляются льготные периоды, через три — пересчёты при смене тарифа, через полгода — клиенты с индивидуальными условиями, которые не вписываются ни в одну модель.

Граблі №1: Отсутствие аудита изменений

Первое, что ломается — прозрачность расчётов. Клиент звонит с вопросом «почему 47 320 рублей, а не 45 000». Разработчик лезет в код, смотрит логи, пытается восстановить цепочку применённых правил. Если изменения тарифа или скидок не пишутся в отдельную таблицу с timestamp и причиной — готовьтесь к ручным разборам каждого спорного счёта.

Решение — event sourcing для биллинговых операций. Каждое изменение тарифа, применение скидки, пересчёт — отдельная запись с контекстом. Не нужен полноценный event store, достаточно таблицы billing_events с полями: timestamp, entity_id, operation_type, old_value, new_value, reason, author. Это база для автоматической генерации детализации и разбора конфликтов.

Граблі №2: Пересчёты при смене тарифа

Клиент переходит с тарифа A на тариф B в середине периода. Простая логика говорит: пропорционально разделить. Реальность добавляет нюансы: минимальный платёж по старому тарифу, неделимые единицы потребления, уже выставленный аванс. Без явной модели пропорционального расчёта получается хардкод под каждый кейс.

Закладывайте prorated billing с первого дня. Это не про сложную математику, а про чёткие правила: как считается остаток периода, как учитывается уже оплаченное, что делать с неделимыми единицами. Пропишите эти правила в коде явно, с комментариями и тестами на граничные случаи.

Граблі №3: Единственный человек, который понимает систему

Через год разработки логика биллинга живёт в голове одного разработчика. Он знает, почему вот этот if обрабатывает старых клиентов иначе, почему там hardcoded исключение для корпоративных аккаунтов и почему пересчёт запускается дважды для определённых тарифов. Документации нет, код читается как алгебра с магическими константами.

Биллинг — это не feature, это критическая инфраструктура. Требуется документация на уровне ADR: почему выбрана такая схема пересчёта, какие альтернативы рассматривались, какие trade-offs. Код должен быть самодокументируемым: явные named-константы для льготных периодов, enum для типов тарифов, отдельные функции для каждого правила расчёта.

Граблі №4: Нет разделения на фазы расчёта

Весь расчёт происходит в одной транзакции: собрали данные, применили скидки, выставили счёт, записали результат. Если где-то ошибка — откатываем всё, клиент не получает счёт. Если нужно пересчитать задним числом — переписываем половину логики.

Разделите расчёт на фазы: 1) сбор данных о потреблении, 2) применение правил тарификации, 3) применение скидок и льгот, 4) генерация счёта, 5) отправка клиенту. Каждая фаза — отдельная функция с чёткими входами и выходами. Это позволяет тестировать изолированно, пересчитывать отдельные этапы и логировать промежуточные результаты.

Что закладывать до первого клиента

  • Аудит всех изменений: таблица событий с timestamp, контекстом и автором операции.

  • Модель пропорционального расчёта: явные правила для смены тарифа, остатка периода, минимальных платежей.

  • Разделение на фазы: сбор данных → тарификация → скидки → счёт → отправка. Каждая фаза изолирована и тестируема.

  • Документация решений: ADR для ключевых правил, комментарии в коде для неочевидной логики.

  • Тесты на граничные случаи: смена тарифа в последний день, нулевое потребление, отрицательный баланс после возврата.

TG @ciologia

Теги:
-6
Комментарии0

Звёздная гонка ИИ-агентов в мае 2026

Наткнулся на свежий разбор от Rost Glukhov, он 21 мая выгрузил через API число звёзд у 20 самых популярных опенсорсных фреймворков для агентов.

Что по цифрам:

OpenClaw — 373 тыс. звёзд. В апреле обогнал React и стал самым «звёздным» репозиторием в истории GitHub. Тот самый агент Штайнбергера, который живёт на твоём железе и общается через мессенджеры. Ритм — 62 релиза за месяц, по одному каждые 12 часов.
Hermes Agent от Nous Research — 160 тыс. за 12 недель. Растёт быстрее в неделю, чем OpenClaw в том же возрасте. Держит память между сессиями и сам пишет файлы навыков из успешных задач.
→ Середина таблицы спрессована между 26 и 43 тыс. — там позиции тасуются за сутки от одного поста на HN: Nanobot (Python, ~4 тыс. строк кода, от лаборатории HKU), AstrBot (самый активный по релизам), PicoClaw (Go, под встраиваемые устройства от Sipeed), AionUi (TypeScript, агентный UI) и ZeroClaw на Rust.

Что мне было интересно из выводов автора:

Во-первых, релизы и звёзды почти не коррелируют. OpenClaw выкатывает 62 релиза в месяц, а пара проектов с десятками тысяч звёзд — ноль.

Во-вторых — и это главное — звёзды измеряют любопытство, а не использование. Что люди реально запускают, показывают токены на OpenRouter, загрузки npm/PyPI и история CVE, а не счётчик в углу репозитория. Звезда стоит один клик; она не значит, что софт хоть раз запустили в проде.
Полезное напоминание перед тем, как в следующий раз выбирать стек по «самому популярному на гитхабе».

Оригинал и полный датасет: glukhov.org

Больше и раньше у меня в канале. Подпишись!

Теги:
+2
Комментарии0

Представлен открытый проект FluentCleaner (аналог CCleaner), который умеет очищать ПК на Windows 10/11 от мусора, бесполезных процессов, дубликатов файлов и всяческого хлама, замедляющего ОС. Все удаления на ПК согласовываются с пользователем.

«Современный, прозрачный, без шпионского ПО, без скрытых ненужных вставок, без тёмных паттернов, без навязчивой рекламы, без фальшивой магии реестра», — пояснил разработчик проекта по имени Belim (aka Builtbybel). Этот автор является создателем проекта Winslop для удаления ненужного системного мусора в Windows 10/11 (он недавно был переименован в Winslopr — Windows Slop Remove).

Теги:
+1
Комментарии0

🚀 Golang Roadmap 2026 — полная карта обучения на русском языке

Это бесплатный open-source roadmap на русском языке. Внутри — 19 модулей, каждый со своей теорией, практикой, бесплатными ресурсами и финальным проектом. Программа собрана так, чтобы провести вас от полного нуля до уровня Senior/Staff Go Engineer за 12–18 месяцев при темпе 10–15 часов в неделю.

Главный принцип обучения - практика > видосы. Каждую тему вы закрываете кодом: пишете, ломаете, чините, рефакторите. Любой модуль завершается мини-проектом, который можно положить в портфолио.

🎯 Кому подойдёт

🐹 Новичкам в Go — даже если до этого писали только на Python/JS/PHP

🛠 Backend-разработчикам с другого стека — хотите перейти на Go

📈 Junior Go-разработчикам — нужен путь до Middle/Senior

🚀 Middle-инженерам — закрыть пробелы в архитектуре, observability, distributed

🤖 Тем, кто хочет писать AI-инфраструктуру — модуль 18 специально про это

https://github.com/Develp10/golangroadmap2026

Теги:
0
Комментарии0

✔️ NVIDIA переводит все свои открытые модели на единую лицензию от Linux Foundation

На лицензию OpenMDW-1.1 переходят 4 семейства: Cosmos, Isaac GR00T, Ising и Nemotron.

Стандарт разработан Linux Foundation для ИИ-индустрии и одним документом покрывает все компоненты релиза: исходный код, датасеты, веса, метаданные и документацию. Лицензия позволяет делать дообученные модели и производные продукты проприетарными.

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

https://openmdw.ai/

Теги:
0
Комментарии0

Мы с друзьями решили глубже разобраться, как работает алгоритм трансформера -- и в результате сделали ролик про то, как он устроен. Чтобы алгоритм проще запоминался, мы представили его в виде цикла размножения марсианских гусениц. Это мой первый опыт в видео, и было бы здорово получить фидбек.

На русском: https://youtu.be/bUSgXVV1NmA?si=1ZGifD0vPdmLsIT5

На английском: https://youtu.be/WEvOt5mpRj8?si=-hSbLP-SrRTqxKJW

Теги:
+2
Комментарии0

Большинство HR-команд сегодня используют нейросети точечно: написать вакансию, переформулировать ответ кандидату. Это работает, но не меняет картину системно. Настоящий эффект наступает, когда ИИ встраивается в регулярные процессы — от первичного скрининга до онбординга и построения HR-бренда.

Приглашаем вас на бесплатный вебинар «Как внедрить ИИ в HR-процессы: от рекрутинга до онбординга и HR-бренда», на котором разберем, как сделать ИИ настоящим помощником с измеримым результатом.

Когда: 1 июня, 16:00–17:00 (Мск)

О чем поговорим:

💪 Какие HR-процессы уже сейчас автоматизируются с помощью ИИ и GPT-агентов без сложной технической подготовки.

💪 Промпт-инжиниринг для HR: чем хороший запрос отличается от бесполезного и как получить рабочий ответ с первого раза.

💪 ИИ в рекрутменте: ускорение коммуникаций, автоматизация скрининга и закрытие вакансий быстрее.

💪 Онбординг и адаптация: как создавать программы ввода в должность с помощью ИИ.

💪 Усиление HR-бренда и внутрикома через корпоративные базы знаний на базе ИИ.

💪 Реальные кейсы, примеры промптов и готовые подходы для немедленного внедрения.

Кому будет полезно:

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

Рекомендация: заранее зарегистрируйтесь в ChatGPT или аналогичной платформе, чтобы сразу пробовать инструменты на практике.

👉 Зарегистрироваться

Теги:
0
Комментарии0

OpenRouter прислал письмо "счастья":
⚠️ NOTICE: OpenRouter does not support account access from your geography. Your access to OpenRouter will end within the next 30 days. A temporary refund window is now open for unused credits and will close within the next 30 days. You may request a refund using the refund button on the Credits page.

зареген был через гугл-аккаунт

похоже придётся искать другие недорогие аналоги...

Теги:
0
Комментарии0

Влог из Казани

Вместе с командой Т1 мы приехали на конференцию Merge, чтобы впервые провести Ресурсный батл в Казани. На кону — проектные карточки и ограниченные ресурсы. А победит тот, кто умеет договариваться и строить стратегию на ходу.

Смотри в нашем видео, как мы готовились, настраивались на игру и общались с коллегами.

Ещё больше о мероприятиях — в нашем TG-канале.

Теги:
0
Комментарии0

В Южной Корее появились две отдельные полосы для пешеходов — первая для медленных и спокойных, вторая для суетливых и нервных. Так власти планируют снизить уровень стресса людей и повысить комфорт всех пешеходов сразу.

Теги:
+2
Комментарии5

Ближайшие события

Поставлю на автопубликацию на пятницу, для любителей всякого ретро-железа.

Интересно, если DVI-D видеокарта получит по EDID информацию о том, что монитор имеет разрешение 3200×600×75Hz (и если мы её туда вообще сумеем запихать), каковы шансы, что она это нормально переварит? В сумме частоты вроде должны в Dual-link укладываться, по горизонтали перебор, но по вертикали запас сильно больше…

Просто есть идея (как всегда, просто идея, без шансов на реализацию мной) — эдакий полу-пассивный переходник с DVI-D на четыре ретро-монитора VGA 800×600. Запоминает одну строчку (много памяти это не требует) и раздаёт её части всей четвёрке одновременно. Смыть, повторить.

Я назвал эту штуку «Ковэкс-адаптер».

Теги:
+3
Комментарии6

Риск забастовки редакторов на Википедии

На Википедии есть предпосылки для забастовки.

Против… Викимедии. Против Wikimedia Foundation.

В январе 2026 года пост гендира Wikimedia заняла Bernadette Meehan, работавшая до этого в JPMorgan и Lehman Brothers. А ещё она была ни много ни мало послом США в Чили.

Wikimedia – это некоммерческая организация, управляемая советом директоров.

На Wikimedia работает больше 700 человек, а доход компании, кстати, очень стабильный, составляет почти 200 миллионов долларов в год.

Сотрудники Wikimedia создали для защиты своих прав профсоюз - Wiki Workers United.

Wikimedia, пишут, повела себя как типичная корпорация, и начала на этот профсоюз давить.

Недавно было уволено несколько членов профсоюза, включая менеджера Community Tech team. Группы, иронично, занимавшейся обратной связью с волонтёрами.

На данный момент профсоюз призывает подписать письмо солидарности: “Мы, нижеподписавшиеся, выражаем солидарность с Wiki Workers United и подтверждаем нашу готовность принять участие в коллективных действиях, если WWU призовет к этому, вплоть до организации забастовки редакторов. Редакторы, участвующие в коллективной акции, смогут использовать обычные методы достижения консенсуса в Википедии для определения условий акции и, при желании, выдвигать свои собственные требования в дополнение к требованиям WWU”.

Теги:
+1
Комментарии2

Всем привет.

У меня два вопросах к подобным мне разработчикам open source, живущим в России.

  1. Как вы осуществляете поддержку своих проектов?

    Я - через github и свой дискордик. Не похоже, чтобы блокировка последнего нанесла сильный удар по русскоязычной аудитории. Я наблюдаю целые русскоязычные сервера, которые никуда не делись. И даже не похоже, чтобы поубавили в активности.
    Впрочем, справедливости ради, один человек обратился ко мне за саппортом через steam, поскольку через дискорд не мог.
    В общем, переформулируя вопрос: добавили ли вы новые каналы поддержки после официальной блокировки дискорда?

  2. Как вы принимаете донаты?

    Я - через бусти и telegram wallet. Интересно, какие есть ещё простые пути?

Теги:
+2
Комментарии2

Prompt Injection: как работает и как защититься

🫢 «Игнорируй предыдущие инструкции…»

Именно с такой фразы сегодня могут начинаться атаки на ИИ-системы.

Prompt Injection — это атака, при которой злоумышленник внедряет инструкции в пользовательский ввод, email, документ или другой контент так, что LLM начинает игнорировать исходные правила (system prompt/политики безопасности) и выполнять действия, задуманные атакующим: раскрывать конфиденциальные данные, обходить ограничения или генерировать команды для внешних систем.

В OWASP эта проблема входит в список ключевых рисков для GenAI как LLM01:2025 Prompt Injection. Особенно опасны такие атаки для ИИ-агентов, Copilot-систем и RAG-приложений, у которых есть доступ к корпоративным данным и внешним API.

Инъекция может быть прямая, когда инструкция приходит прямо от атакующего, или непрямая, когда инструкция спрятана во внешнем контенте.

Как работает

  1. Пользователь вводит последовательность: «игнорируй прежние инструкции, теперь ты …; выполни …».

  2. Модель переопределяет приоритеты и выдаёт запрещённый контент или «готовые» команды/URL/SQL.

  3. Если есть агент/инструменты, неподтверждённые команды трактуются как действия → утечки/доступ к внутренним ресурсам.

Представьте ИИ-ассистента, который работает с корпоративной почтой и документами. Атакующий может отправить email или разместить файл со скрытыми инструкциями, и когда агент начнет его обрабатывать, модель станет выполнять команды злоумышленника. Обнаружить такие атаки крайне сложно. Даже если вредоносных документов в базе меньше 1%, этого уже может быть достаточно, чтобы нарушить поведение агента. Для злоумышленников подобные неординарные данные становятся “серебряной пулей”, потому что показывают сверхвысокую эффективность.
— поделился Михаил Черешнев, ведущий инженер по ИИ и безопасности ГК Swordfish Security.

Как защититься

✅ До инференса: нормализовать/санитизировать ввод, выстраивать жесткую иерархию инструкций (system > user), запрещать текстовые «перенастройки роли».

✅ После ответа модели: не трактовать вывод LLM как команды без валидации, использовать типизированные схемы аргументов, allow-list доменов и операций, HITL для чувствительных действий.

✅ Использовать sandbox и egress-фильтры для tools, вводить квоты, тайм-ауты и бюджеты, применять DLP для ответов, логов и кэшей.

Теги:
0
Комментарии0

В каком городе вы живете?

Рекрутеры часто задают такой вопрос, когда хотят проверить, совпадает ли часовой пояс кандидата с временем работы команды. Допустим, в его городе -5, а у вашей команды +3. Разница в 8 часов. Но почему вообще важно, в каком городе он живет?

Что если кандидат назвал город, но собирается оттуда переехать? Или он постоянно путешествует и живет в разных часовых поясах. А что если его жизнь вообще не привязана к часовому поясу?

Ошибка в том, чтобы спрашивать часовой пояс у кандидата, а не предлагать ему свой. Неважно, в каком городе он живет сегодня или будет жить через месяц. Если вам нужно, чтобы он работал в определённое время суток, просто спросите у него, согласен ли он работать в эти часы.

Blog • Telegram

Теги:
+1
Комментарии4

Бриллиант почти не виден 💎

В ходе анализа дампов команда департамента комплексного реагирования на киберугрозы (PT ESC IR) периодически сталкивается с новыми семействами ВПО, которые не обнаруживаются по известным индикаторам и YARA-сигнатурам и хорошо мимикрируют под легитимные или системные файлы.

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

🧐 На первом скриншоте показано распределение исполняемых файлов nix-подобной системы с учетом размера файлов (масштаб «обратно-логарифмический»: большие файлы системы расположены ближе к центру, малые — на периферии). Для группировки файлов с учетом их размера и сходства содержимого (необходимо учитывать, что данные переменные не всегда являются независимыми — например, при использовании алгоритма TLSH) потребуется провести процедуру «кластеризации» с учетом матрицы «перекрестных расстояний» между всеми (N) файлами системы, которая будет иметь размер (N^2).

Очевидно, что для сокращения размера данной матрицы возможно ввести разбиение диапазона размеров файлов одной либо нескольких совместно анализируемых систем — весь диапазон размеров может быть представлен как совокупность непересекающихся отрезков [x-ax;x+ax], где a<1, а x — центральная точка отрезка. Опыт показывает, что такое разделение позволяет, как правило, получить менее сотни размерных «поясов» при значении a=0.1. При дальнейшем анализе в пределах отдельных «поясов» количество образцов будет существенно меньше исходного общего количества.

Анализ «аномальности» образцов в пределах отдельного «пояса» возможно произвести с учетом различных факторов — среднего расстояния до остальных образцов, количества образцов, схожих с данным в пределах заданного порогового значения и т.п., за исключением случаев, когда в пределах «пояса» оказывается совсем малое (например, менее 10) количество файлов — в таком случае можно считать, что все они являются «условно аномальными».

Финальным этапом подобного анализа является выявление в пределах полученных для каждой из анализируемых систем «аномальных» групп файлов, которые удовлетворяют следующим критериям:

1️⃣ имеют малое количество схожих образцов либо высокое среднее расстояние до остальных образцов (для формализации можно задаться верхней половиной динамического диапазона);

2️⃣ не имеют в пределах одной системы файлов с идентичным именем, но отличным путем (что позволяет фильтровать системные файлы nix-подобных систем);

3️⃣ имеют малое количество файлов с аналогичным путем/именем на совместно анализируемых системах (или не имеют аналогов вовсе — то есть не являются обязательными для функционирования системы).

👀 Результатом подобного анализа является картина, показанная на втором скриншоте: размер файлов снова в «обратно-логарифмическом» масштабе, «максимально отличающиеся» файлы в пределах «размерного пояса» стремятся к угловой координате π радиан, а минимально отличающиеся — к 0. «Условно аномальные», т.е. практически уникальные по размеру файлы, имеют угловую координату 3π/2.

Общее количество определенных «аномалий» составляет для различных систем от 0,7% до 8% от исходного количества анализируемых исполняемых файлов, что позволяет проводить дальнейший анализ в ряде случаев просто «глазами» — из исходных тысяч файлов остается около полусотни.

Первый же «существенно отличающийся» файл в данном случае действительно представляет собой ВПО, причем для ансамбля из 12 анализируемых систем аналогичный образец уверенно обнаруживается еще на одной машине, а дальнейший поиск при «TLSH-расстоянии» не более 70 единиц позволяет выявить еще 5 образцов на различных машинах ансамбля с одинаковыми путями — все они принадлежат к одному семейству и реализуют закрепление ВПО посредством использования system-generators.

(Источник: https://t.me/ptescalator)

Теги:
+2
Комментарии0

TalkBack в 2ГИС

Уже несколько лет мы поддерживаем VoiceOver на iOS — это был сложный и многоступенчатый путь к доступности приложения. После релиза мы увидели, что это реально работает, и людям с нарушением зрения стало проще пользоваться 2ГИС. В этом году мы решили, что пришло время для Android. 

Под капотом — собственный мини-фреймворк

Дальше рассказывает ведущий разработчик Дмитрий Торопчин.

Когда начинаешь делать доступность под Android, кажется, что всё уже предусмотрено. Каждый View знает, как предоставить своё описание для служб доступности, как выполнять действия и какие события отправлять после их выполнения.

2ГИС устроен немного иначе: наш интерфейс написан на Qt Quick и с точки зрения Android это один пустой View. Никаких кнопок, списков и текстовых полей TalkBack «внутри» не видит. Сам Qt предоставляет кроссплатформенный API для работы со службами доступности из Qt Quick, но его платформенная интеграция для Android на данный момент поддерживает весьма ограниченный набор методов, которого категорически не хватает для разработки по-настоящему удобных и доступных приложений.

Поэтому мы решили написать свой мини-фреймворк для работы со службами доступности Android из Qt Quick. Основную архитектуру мы подсмотрели в Qt:

  • визуальные элементы в Qt Quick размечаются через attached-свойства;

  • из этой разметки получается дерево accessibility-узлов, управляемое из C++;

  • это дерево accessibility-узлов предоставляется службам доступности Android через virtual view hierarchy посредством JNI.

При этом мы добавили поддержку многих недостающих API из Android SDK:

  • научились работать с текстовыми полями ввода;

  • научились описывать коллекции элементов;

  • поддержали автоматическую прокрутку списков при перемещении accessibility-фокуса;

  • поддержали детализацию навигации по тексту: озвучку любого элемента можно прослушать как целиком, так и по словам или по символам.

Пользовательские сценарии

Мы честно признали, что озвучить всё приложение сразу невозможно. Поэтому сделали MVP. Теперь можно:

  • найти место и узнать актуальную информацию о нём;

  • прослушать карточку организации и быстро сориентироваться в деталях;

  • позвонить по контактному номеру прямо из карточки;

  • построить маршрут и пройти его шаг за шагом;

  • понять, какой транспорт подходит, где садиться и на какой остановке выходить.

Для этих сценариев мы разметили 555 UI‑элементов.

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

Теги:
+2
Комментарии0