Как стать автором
Поиск
Написать публикацию
Обновить

Разработка

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

Дополняем EXPLAIN Postgres'a информацией об использованной статистике.

Незадолго до код-фриза PostgreSQL 18, Роберт Хаас закомитил возможность, разрешающую внешним модулям добавлять в EXPLAIN дополнительную информацию.

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

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

В список опций EXPLAIN был добавлен параметр STAT, принимающий булевы значения ON/OFF. Если он включён, то в конец эксплейна будет вставляться информация об использованной статистике: наличии MCV, гистограммы, количестве элементов в них. А также значения stadistinct, stanullfrac и stawidth.

Зачем это нужно? - спросите вы. Ведь набор статистик прямо следует из списка выражений, участвующих в запросе? Разве нельзя понять, какая статистика была непосредственно использована, заглянув в код cost-model того или иного вида выражения?

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

CREATE TABLE sc_a(x integer, y text);
INSERT INTO sc_a(x,y) (
SELECT gs, 'abc' || gs%10 FROM generate_series(1,100) AS gs);
VACUUM ANALYZE sc_a;
LOAD 'pg_index_stats';

EXPLAIN (COSTS OFF, STAT ON)
SELECT * FROM sc_a s1 JOIN sc_a s2 ON true
WHERE s1.x=1 AND s2.y LIKE 'a';

Nested Loop
-> Seq Scan on sc_a s1
Filter: (x = 1)
-> Seq Scan on sc_a s2
Filter: (y ~~ 'a'::text)
Statistics:
"s2.y: 1 times, stats: {

MCV: 10 values, Correlation,
ndistinct: 10.0000, nullfrac: 0.0000, width: 5 }
"s1.x: 1 times, stats: {

Histogram: 0 values, Correlation,
ndistinct: -1.0000, nullfrac: 0.0000, width: 4 }

Здесь можно увидеть, что была использована статистика по колонкам s1.x и s2.y.
При этом, у нас всего десять MCV значений по y, а по х MCV статистика отсутствует вовсе; гистограмма вроде есть, но нулевой длины. И никаких нуллов в обеих колонках.

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

Для отслеживания использованной статистики здесь был использован get_relation_stats_hook. Было бы полезно знать также, используется ли в планировании расширенная статистика, однако она находится слишком глубоко в ядре, и текущий набор хуков здесь никак не поможет.

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

THE END.
12 апреля 2025, аэропорт "Шереметьево"

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

🚀 x.ai представили публичный API для Grok 3

Ссылка на документацию

🔍 Основные детали:

1. Доступные модели:

🟣 флагман Grok 3

🟣 облегченная Grok 3 Mini

Контекстное окно у обеих: 131k токенов.

2. Что у Grok 3 Mini:

🟣 Единственная модель с двумя режимами reasoning (low/high).

🟣 На презентации показала лучшие результаты, чем Grok 3, из-за более долгого обучения.

Хотя разработчики обещают дообучить Grok 3, но сроки не ясны.

3. Стоимость (в пересчете на 1 млн токенов):

🟣 Grok 3:

- Стандартная скорость: $3 (input) / $15 (output)

- Fast mode: $5 / $25 (но работает *медленнее* по тестам OpenRouter 😅)

🟣 Grok 3 Mini:

- Стандарт: $0.3 / $0.5

- Fast mode: $0.5 / $4

В целом Grok 3 Mini выглядит выгодно: цена ниже, чем у аналогов (например, o3 mini), а качество на уровне.

Grok 3 пока видимо проигрывает конкурентам (GPT-4.5, Gemini 2.5 Pro, Sonnet 3.7) по функционалу и скорости. Сам же Fast mode вызывает вопросы: высокая цена при текущей скорости выглядит странно.

Посмотрим, как дообучат Grok 3, но mini сейчас выглядит интересно!

*P.S. Кто уже тестил? Делитесь впечатлениями в комментах!* 👇

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии0

GNU Emacs 31: новые возможности по управлению окнами

В новой версии Emacs появились долгожданные функции по управлению окнами: вращение буферов по окнам, вращение раскладок и обмен между левой и правой половинами фрейма (как в Norton Commander и Midnight Commander). Подробности в статье.

Источник: https://www.reddit.com/r/emacs/comments/1jqfivv/emacs_31_new_window_commands/

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

Против компании подан иск после масштабной утечки данных

Против австралийской финкомпании FIIG Securities подан судебный иск от Австралийской комиссии по ценным бумагам и инвестициям (ASIC). Регулятор инициировал разбирательство после киберинцидента с раскрытием конфиденциальная информация 18 тыс. клиентов FIIG.

В иске сказано, что FIIG Securities обладала неадекватно-слабой ИБ-защитой, нарушая свои обязательства как лицензиата австралийских финансовых сервисов (AFS). В результате хакер проник в ИТ-инфраструктуру FIIG и оставался незамеченным около трех недель, с 19 мая по 8 июня 2023 г. Он скачал около 385 ГБ данных, которые впоследствии были опубликованы в дарквебе. Имена, адреса, даты рождения, водительские права, паспорта, банковские реквизиты и пр.

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

По данным ASIC, компания даже не подозревала о взломе.

Теги:
Всего голосов 2: ↑1 и ↓1+1
Комментарии0

Пошла мода писать манифесты, напишу и я что-нибудь эдакое.

Система не сводится к сумме своих частей.

Поэтому декомпозиция, как метод проектирования, ущербна.

Встаёт вопрос, как же тогда нам просто описывать сложное? Здесь скрывается некоторая смысловая тонкость. Мы можем просто описывать сложное сложными словами. А дальше настоящее наше дело – представить эти сложные слова другими, простыми словами, которыми описать сложное сложно, но технически возможно.

То есть метаязыковая абстракция решает, и DSL – наше всё.

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

Теги:
Всего голосов 6: ↑5 и ↓1+5
Комментарии2

Верните мой 2007-й: превращаем старые фотки в снимки с зеркалок с помощью ИИ

Однажды группе ИИ-энтузиастов пришла идея: а что если обучить искусственный интеллект улучшать смартфонные снимки до профессиональных с помощью парных фотографий? Задумка понравилась. Для сбора датасета выбрали актуальные в то время Sony Xperia Z, iPhone 3GS, BlackBerry Passport и цифровую зеркалку Canon EOS 70D в качестве эталона. Модель обучили улучшать фотографии, сделанные на смартфонах, в соответствии с такими же изображениями, полученными с камеры. Проект реализовали, исходный код опубликовали на GitHub, а подробное описание — на arXiv.org. Но что же в нем интересного сейчас, почти десять лет спустя?

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

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

В своей статье команда регионального научно-образовательного центра «Искусственный интеллект и анализ больших данных» при НГТУ им. Р. Е. Алексеева запустила DPED на свежих версиях софта, преодолев все проблемы совместимости, и попробовала через него улучшить фото с современного планшета.

Теги:
Всего голосов 6: ↑6 и ↓0+7
Комментарии0

По мотивам статьи, которую я перевел и опубликовал у себя в ленте - https://habr.com/ru/articles/899382/

Я чекнул этот кейс на своем проекте и результаты не совпали с выводами автора.

Я сделал все точно также, как описано в статье и нет, не увидел я корреляции между 130 днями и статусом просканировано не проиндексировано. Страницы с таким статусом есть и меньше чем через 130 дней после последнего сканирования, как показано на скрине.

Такие страницы пропадают только на 13 днях, а с 13 и выше периодически встречаются выпавшие страницы.

Так что, не сходится кейс, но как мнение, почему бы и нет)))

Смотрел проект в тревел сегменте, трафик по всему миру (чистый бурж).

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

Куда утекают ваши данные? | Новые технологии мошенников | Биометрия и борьба с дипфейками

Ваши персональные данные уже утекли в сеть — но возможно, не всё так страшно. Только как понять, когда ситуация из рядовой становится критической? И что в целом полезно знать о клиентских данных в 2025 году?

Разбирались вместе с Никитой Назаровым, CTO компании HFLabs, который 12 лет работает с данными клиентов по всей России. Обсудили, как методы социальной инженерии помогают мошенникам, меры государства по защите наших данных и способы обеспечить себе приватность в цифровую эпоху.

Также в выпуске:

  • Ваши персональные данные утекли в сеть: чем это грозит и что предпринять?

  • Биометрия — реальная мера защиты или проклятие?

  • Как компании на самом деле работают с клиентскими базами

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

Посмотреть новый выпуск Sravni Tech Podcast можно здесь:

VK
RUTUBE
YouTube

А послушать — здесь:

Яндекс Музыка

Оставляйте реакции, делитесь ссылкой!📣

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

В начале 2024 года, в условиях активного импортозамещения и опасений возможных принудительных мер со стороны властей по переходу на отечественное ПО, мы начали искать альтернативные решения. Основываясь на опыте использования 1С, которое активно применяется в России, и после изучения материалов Гилева, мы решили рассмотреть PostgresPro Ent.

Проведя базовые тесты, нас устроила его функциональность, встроенная кластеризация BiHa PostgresPro Ent и административная панель PPEM. Все выглядело красиво и удобно. В итоге было принято решение закупить лицензии на PostgresPro Ent для двух серверов и развернуть на них часть баз 1С.

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

В процессе эксплуатации выявились некоторые неприятные особенности. В частности, очень долгое резервное копирование с использованием pg_probackup. База 1С на MS SQL, объемом около 100 ГБ, копируется на сервер резервного копирования за 5-10 минут, в то время как аналогичная база на PostgresPro Enterprise требует более 2 часов. Многие могут предложить использовать более мощное оборудование или смотреть в сторону инкрементальных бэкапов (в плане обслуживания MSSQL мы используем как полные таки и инкрементальные). Но проблема заключается в самой логике работы pg_probackup, которая не позволяет сразу архивировать все файлы в один архив и далее работать уже с ними, а фактически учитывая структуру базы 1С там не одна тысяча мелких файлов которые очень "замечательно" копируются по сети, даже 10GBps не изменяет ситуацию. Также возникло множество мелких вопросов, требующих дополнительных компетенций, но пути решения были найдены, хотя и не всегда оптимальные. Вывод: PostgresPro требуется значительного много времени что бы догнать MS SQL в удобстве использования и обслуживания.

Однако главная особенность PostgresPro Enterprise заключается в следующем: при покупке бессрочной лицензии PostgresPro Enterprise, после окончания базовой подписки на техническую поддержку, вы не можете использовать ПО как вам хочется. Вы становитесь привязанными к тому оборудованию, на которое было установлено ПО (вспомним OEM лицензии от MicroSoft), и ваша бессрочная лицензия фактически превращается в лицензию по подписке. Этот факт выяснился через год после покупки, когда мы решили заменить серверы на более новые. Доступ к репозиторию уже был закрыт, так как закончился срок базовой техподдержки. Обращения в техническую поддержку не дали результатов: ответ сводился к предложению купить подписку на техническую поддержку или отказаться от использования ПО.

Таким образом, могу посоветовать: тщательно взвесить все за и против перед переходом на отечественное ПО, чтобы избежать подобных проблем.

p.s. Если у администрации ресурса возникнут сомнения в правдивости этого поста, могу предоставить номера обращений и даже предоставить скрины ответов PostgresPro Enterprise.

upd: Сравнение скорости создания резервных копий на MSSQL и PostgresPro производилось на аналогичных лезвиях в одной и той-же корзине, бэкапы льются в одно и то-же хранилище.

upd2: Покупая MSSQL вы имеете "вечный" доступ к загрузке дистрибутива, обновления в в рамках релиза, обновления безопасности до конца времени поддержки данной версии и так далее, в случае с PostgresPro без наличии активного сертификата на тп вы не имеете ничего.

Теги:
Всего голосов 3: ↑2 и ↓1+1
Комментарии2

Шпаргалка, которая поможет быстро найти нужный ИИ-сервис. Все нейросети актуальные и удобно разбиты по категориям.

Теги:
Всего голосов 4: ↑2 и ↓20
Комментарии1

Инцидент ИБ в облаке Oracle

Исследователи кибербезопасности из CloudSEK заявили, что компания Oracle стала жертвой взлома и утечки данных. Они зафиксировали инцидент ИБ после того, как неизвестный злоумышленник опубликовал в дарквебе объявление о продаже 6 млн записей, похищенных из Oracle Cloud. Это подразделение Oracle, которое занимается облачными вычислениями и предоставляет сервисы хранения данных в облачных средах. Инцидент мог затронуть около 140 тыс. клиентов.

Представители Oracle опровергли сообщение о взломе, но CloudSEC представила отчет с неопровержимыми доказательствами инцидента. Инцидент связан с эксплуатацией уязвимости в программном продукте Oracle Access Manager, обеспечивающем аутентификацию в различных Web-приложениях. Эта уязвимость с критическим уровнем опасности.

Хакер предлагал всем желающим помочь ему за вознаграждение расшифровать пароли к системе единого вход (SSO), чтобы оказать давление на компании с целью получения от них выкупа за удаление данных.

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

Новая маленькая, но полезная утилита:

password.hyoo.ru - генератор стойких уникальных паролей.

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

Вам достаточно помнить лишь один стойкий мастер-пароль и генерировать на его основе уникальные стойкие пароли для всех приложений.

Пароли соответствуют самым распространённым требованиям:

  • Длина 20 символов

  • Есть заглавные и строчные буквы

  • Есть хотя бы один спецсимвол

  • Есть хотя бы одна цифра

  • Только латиница

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

Ах да, и ещё можно подписаться на новости об этом и других наших оупенсорс приложениях, а то и обсудить эту и другие важные темы на форуме гильдии.

Теги:
Всего голосов 10: ↑5 и ↓50
Комментарии8

Тестировщики, общий сбор!

Мы часто видим исследования про разработчиков, продактов, аналитиков… А про QA? Почти ничего. Пора это исправить.   

Мы запускаем исследование сообщества QA, чтобы разобраться:

  • что нас радует и раздражает,

  • какие инструменты и практики мы выбираем,

  • как меняется наша роль и работа.   

Присоединяйтесь! Это важно и интересно 🔥

Пройти опрос → https://qa-25.testograf.ru

В анкете 45 вопросов, потребуется 15–20 минут времени. А среди всех участников разыграем оригинальный подарок. Доходи до конца и всё поймёшь:)

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

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

Как в тулбар одного компонента добавить кнопку, которую будет обрабатывать другой компонент Joomla 5?

Для примера добавим в компонент стандартных материалов (com_content) кнопку из компонента очистки кэша (com_cache).

Как работают стандартные кнопки

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

<joomla-toolbar-button id="toolbar-new" task="article.add">
    <button class="button-new btn btn-success" type="button">
        <span class="icon-new" aria-hidden="true"></span>
        Создать
    </button>
</joomla-toolbar-button>

Как вы видите, у тега joomla-toolbar-button есть аттрибут task, со значением article.add. Когда вы нажимаете на подобную кнопку, Joomla находит на странице форму adminForm, устанавливает в её поле с именем task значение из атрибута и отправляет форму. По значению поля task мы понимаем что будет вызван метод add контроллера article. А на компонент com_content нам указывает атрибут action формы.

Значит нам нужна отдельная форма

Создадим системный плагин и добавим в конец страницы форму с id 'cacheAdminForm':

/**
 * @return  void
 *
 * @since 1.0.0
 */
public function onAfterRender(): void
{
	$app = $this->getApplication();

	if (!$app->isClient('administrator'))
	{
		return;
	}

	$option = $app->getInput()->getCmd('option', '');
	$view = $app->getInput()->getCmd('view', '');

	if ($option == 'com_content' && $view == 'articles')
	{
		$buffer = $app->getBody();

		$buffer .= '<form'
			. ' action="' . Route::_('index.php?option=com_cache') . '"'
			. ' method="post"'
			. ' name="cacheAdminForm"'
			. ' id="cacheAdminForm"'
			. '>'
			. '<input type="hidden" name="task" value="" />'
			. HTMLHelper::_('form.token')
			. '</form>';

		$app->setBody($buffer);
	}
}

А теперь добавим на тулбар нашу кнопку:

/**
 * @param   Event  $event  Event
 *
 * @return void
 *
 * @throws Exception
 *
 * @since 1.0.0
 *
 * @noinspection PhpUnused
 * @noinspection PhpUnusedParameterInspection
 */
public function onBeforeRender(Event $event): void
{
	$app = $this->getApplication();

	if (!$app->isClient('administrator'))
	{
		return;
	}

	$option = $app->getInput()->getCmd('option', '');
	$view = $app->getInput()->getCmd('view', '');

	if ($option == 'com_content' && $view == 'articles')
	{
		/** @var Document $document */
		$document = $app->getDocument();

		/** @var Toolbar $toolbar */
		$toolbar = $document->getToolbar();

        // Метод standardButton добавляет кнопку и возвращает её
		$toolbar->standardButton(
			'cachedeleteall',
			'PLG_SYSTEM_WISHBOXTOOLBARBUTTONTODIFFERENTCOMPONENT_BUTTON_TO_DIFFERENT_COMPONENT',
			'deleteAll'
		)
			->icon('icon-remove')
			->listCheck(false)
			->buttonClass('button-remove btn btn-primary')
			->form('cacheAdminForm');
	}
}

Обратите внимание что в кнопку мы передали id формы 'cacheAdminForm'.

GitHub c кодом плагина

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

Частично переписал рейкаст по Брезенхему-Доку (нет, ну правда, «колесо пред-рассчитанных лучей» от @Swamp_Dokдало прямо роскошный буст к скорости) под чистые 8 бит старого доброго 6502-го.

Всё, как и обещал в камменте: 16 бит в первом приближении как бы не быстрее 8 бит, потому что выковыривать нибблы из байта на процессоре, который даже сместить на 4 бита одной командой не может (надо использовать 4 сдвига на 1 бит) — такое себе, а в этих 16 битах старший и младший байты живут в основном самостоятельными жизнями, довольно редко взаимодействуя в переносе (что ещё больше углубляет мой восторг от гениальности алгоритма «Брезентыча», если это вообще возможно). Я уже мысленно собрал уровни из тех замечательных крошек-чанков 16х16 клеточек и даже продумал, как бы нам хранить в одном байте 4 клетки, чтобы пореже из памяти тянуть (итого 2 бита на клетку — пустота, стенка, первый моб и второй моб из двух возможных на один чанк), да и даже как именно нам связывать такие чанки, как анимировать переходы и т. д, но, судя по всему — не пригодится. Не похоже, чтобы было где хранить данные для повторного использования, не похоже, чтобы можно было быстро вытащить нужные биты.

Разберу сейчас подробно один из 8 вариантов ветвления (раньше было два — шаг по X, смещение по Y и наоборот, а сейчас добавились ещё и варианты для разных знаков шага и смещения, ибо индивидуальная обработка каждого случая позволяет ещё кучу тактов сэкономить). Самый простой вариант — первый, X и все в плюс.

Дам этот кейс скрином, ибо.
Дам этот кейс скрином, ибо.

Координаты игрока мы храним нормальными 16-битными, 8 бит на номер клетки и 8 бит на координаты в ней. Работать с ними мы будем один раз — в рамках физики. Для рейкаста они нужны отдельно в виде старшего байта, отдельно в виде младшего. Три из них мы видим в трёх верхних строчках, где они копируются в координаты луча. Четвёртая — чуть ниже, где BrezToStart вычисляется «по-старинке», там я ещё не изжил пекашный код. Зато смещение мы берём (четвёртая строчка) уже из «колеса», расчётов — ноль!

Дальше мы видим, что предыдущее значение координаты смещения стало 8-битным. Дело в том, что нам не нужно значение клетки — мы его и так знаем. А вот пиксельное значение — запомнили.

Дальше мы делаем 8-битное сложение. Первая величина — младший байт координаты смещения POS PIX, вторая — (long)BrezToStart*(long)RayDY/RayDX. Её я тоже пока вычисляю явно — но она, несомненно, напрашивается на табличное представление. В результате имеем новый POS PIX и флаг переноса.

Тут, как я уже намекал, мы можем не проверять память, если не было переноса. Ну, и полного 16-битного суммирования не делаем, максимум — инкремент (в отличие от компилятора, мы знаем, какие бывают суммы, а какие — нет).

Проверка памяти требует вычислить довольно длинный адрес. Тут я хочу пойти на грязный хак: возможно, сделать карту [32][256], чтобы ничего не умножать на 64, и старший байт писать прямо в код, в тело инструкции LDA. Кармак в Wolf3D, помнится, раздухарился ещё жёстче… да, хранение переменной прямо в коде, да ещё в 4 разных местах — тоже потребует копирования её туда-сюда. Но после входа в «основной цикл шагания» обратно мы уже не возвращаемся — возможно, я придумаю способ держать её и в коде, и в одном экземпляре. Это позволит проверять карту простым LDA $DEAD, X (где X — вторая координата, которая до 256, а вместо $DEAD мы подкидываем нашу переменную, в case 0 это будет POS CELL, которая меняется от адреса карты до него же плюс 32<<8). Хотя, возможно, через Indirect я это сделаю ещё быстрее! Не попробуешь — не узнаешь, собственно, почему я и «подсел» на эту задачу. Никакие Factorio рядом не валялись :)

Функция AddToZBuffer8Bit тоже демонстративно отрицает 16-битное суммирование — фишка в том, что переносов там не возникает! Поэтому все аргументы вычисляются через 8-битные суммы.

Ну, и косые стенки я убрал, а смещение всей сцены на доли тайла — вернул. Надо какой-то шлем там нарисовать, который «не успевает за мышкой» :) Тогда можно рефрешить рендер «через кадр», пусть дёргается вместе со статусбаром — типа фича :)

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии16

Если вероятность события ноль, то это "невозможное" событие, которое никогда не произойдёт. А событие с вероятностью единица (100%) - напротив, случается всегда. Так ли это? Популярная тема из области прикладной теории вероятностей. Например, вот довольно старый ролик на канале Бориса Трушина, где утверждается, что нет, всё не так, и считать, что событие с вероятностью 100% обязательно происходит, а с нулевой вероятностью - не происходит, "это распространённое заблуждение". Пример тоже привычный: пусть вероятность попасть в конкретную точку окружности (над ℝ), выбирая точки случайно, равна нулю, однако такое событие всё равно произойдёт, потому что в какую-то точку попасть всегда можно.

Нулю вероятность должна быть равна из-за того, что точек на окружности, так сказать, слишком много, даже больше, чем натуральных чисел, и все точки равноправны: если бы одной точке назначить сколь угодно малую вероятность, отличную от нуля, то суммарная вероятность по всем точкам получится бесконечно большой, а хотелось бы, исходя из свойств выбранного вероятностного пространства, чтобы была единица ("вероятность не бывает больше 100%"). Естественно, в нужный момент происходит предельный переход и оказывается, что вероятность нуль - это означает, что должно стремиться к нулю отношение исходов экспериментов. Занятно, что в бесконечном случае, на минуточку, событие с нулевой вероятностью как бы может произойти любое конечное количество раз, и при этом его вероятность не перестанет быть нулевой. Интересно.

Это всё верно, но запутывает достаточно сильно, чтобы спрашивать на собеседованиях (непонятно только на какую должность).

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

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

Можно развить вычислительный подход. Предположим, что мы строим случайным образом из центра окружности луч, который пересекает окружность в какой-то точке. Но формировать луч и подсчитывать точки требуется при помощи программы на языке Python (например), выводя уравнение луча и координаты попадания. С одной стороны, попадание в иррациональную точку станет строго невозможным (нулевая вероятность, почти так же, как и в исходном примере), с другой стороны - луч должен нередко проходить "сквозь" окружность без пересечения, так как мы, с точки зрения алгебры, потребовали, чтобы решения для системы уравнений луча и окружности всегда были рациональными (даже целыми, на самом деле), а над рациональными числами луч и окружность могут не пересекаться. И какова тогда вероятность того, что подобная программа на Python завершится, успешно обнаружив луч, который не пересекает окружность? Должна бы быть единица.

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

Задача о поиске чувствительных данных в дампе трафика

Условие
Представьте, что кто-то получил нелегитимный доступ к серверу по API. Вы провели внутреннее расследование и — о ужас! — нашли опубликованный в интернете файловый сервер. Его серый адрес — 192.168.1.47. Известно, что сервер использовался как файлообменник для IT-специалистов. Возможно, что-то ценное утекло именно оттуда.

Задача
Скачайте дамп трафика по ссылке dump.pcap и проанализируйте его. Найдите, в каком файле находились чувствительные данные, используемые для доступа к серверу по API.

Делитесь своим ответом в комментариях. А посмотреть полное решение можно в Академии Selectel.

Теги:
Всего голосов 4: ↑4 и ↓0+6
Комментарии1

В Турции дают 12 лет за хакерство

В марте хакеры устроили кибератаку на турецкого провайдера TürkNet. Украдены данные 1,5 млн пользователей.

TürkNet признал факт взлома, рассказав, что утекшие данные включают в себя полные имена, национальные ID, номера телефонов, адреса, данные о подписке и статические IP-адреса.

По данным СМИ, злоумышленники потребовали от TürkNet выкуп в 3 биткойна — около $250 тыс. — в обмен на возврат украденной информации.

Эта кибератака вызвала обеспокоенность официальных лиц Турции по поводу кибербезопасности в стране. Недавно министр транспорта и инфраструктуры Турции Абдулкадир Уралоглу (Abdulkadir Uraloğlu) заявил, что только в течение января 2025 года официальные органы кибербезопасности заблокировали более миллиарда попыток несанкционированного доступа к 1,5 млн IP-адресов в стране.

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

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

Регистрируйтесь на Fine Day 2025 в GlowByte: Как избежать скрытых расходов при внедрении BI?

Внедрение бизнес-аналитики (BI) — это не просто покупка инструмента, а долгосрочная инвестиция. Но знаете ли вы, сколько на самом деле тратит ваша компания на поддержку и развитие BI-системы?

Друзья, 17 апреля в 16:00 (МСК) GlowByte проведет ежегодную онлайн-конференцию, посвященную реальной стоимости BI-решений. Приглашаем всех, кто хочет оптимизировать затраты на BI!

Что обсудим?

Скрытые расходы: какие неочевидные траты есть в BI-проектах и как их избежать?
Self-service BI: как оценить эффективность и снизить стоимость владения?
Реальные кейсы: опыт компаний, уже внедривших BI.

Где прячутся переплаты?

BI помогает бизнесу расти, но неконтролируемые затраты могут свести пользу на нет. На конференции разберем вопросы:
- Как оценить реальную цену данных.
- Оптимизация расходов без потери качества аналитики.
- Ошибки, которые удорожают BI-проекты.
- Успешный опыт компаний.

Почему стоит участвовать?

 Вас ждут кейсы топ-компаний:

  • Альфа-Лизинг – Реальная стоимость данных: за что платит бизнес?

  • Газпромбанк – BI: центр затрат или источник экономии? Опыт интеграции FineBI с Service Desk.

  • СИБУР – Self-service BI: как контролировать расходы.

  • t2 – Как не уйти в минус при внедрении BI?

Будут только практические решения – реальный опыт, без воды.
Бонусы для участников: GlowByte предоставит чек-лист «BI без переплат», сделает запись эфира, и вы получите возможность задать вопросы спикерам.

Участие бесплатное! Регистрация по ссылке.

Будет круто и очень полезно, подключайтесь!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Представлена подборка из 100 ресурсов для создания ИИ-агентов под большинство задач по всевозможным темам: от RAG, MCP-cерверов, мульти-агентов и саморефлективных моделей до узкоспециализированных агентов для подбора ресторанов, отелей, буста продуктивности и организации рабочих задач.

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