Pull to refresh
14
0

Пользователь

Send message

Переворачивающиеся при умножении числа

Level of difficultyMedium
Reading time7 min
Views21K

Здравствуйте!

Расскажу о серии задач, которая случайно возникла в процессе решения другой задачи. Мне на глаза попалось равенство:

81 * 27 = 2187

– Интересно, – подумал я. – А бывают ли ещё такие числа, чтобы цифры слева и справа повторялись?

Читать далее

Звёздный десант: как показать проигранное сражение

Level of difficultyEasy
Reading time7 min
Views16K

Приветствую! Не так давно мы с вами обсуждали образцовую постановку батальной сцены на примере «Братства кольца» Питера Джексона, где показанные в кадре толковые действия одной из сторон приводят к победе? Сегодня предлагаю поговорить об изображении в кино противоположной ситуации: батальной сцены, снятой с перспективы проигравшей стороны, причем так, что причины разгрома удачно объяснены зрителю. Примером послужит, как вы уже поняли, Первая битва за Клендату из фильма «Звёздный десант» Пола Верховена.

Насекомых хватит на всех!

Метрики в задачах машинного обучения

Reading time9 min
Views694K

Привет, Хабр!



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


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


Читать дальше →

Анализ аудиоданных (часть 3)

Reading time15 min
Views11K

Машинное обучение

В третьей части анализа аудиоданных мы разберем относительно простой и более быстрый способ классификации аудиофайлов - алгоритм машинного обучения - SVM (Support Vector Machines) / машины опорных векторов.

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

Мы получили набор данных, содержащий значимые характеристики аудиоданных (45 значений) в машиночитаемом виде - Двухмерная таблица - Dataframes, состоящая из 47столбцов и 50000 строк.

1 часть

2 часть

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

При прохождении воздуха через голосовые связки возникают вибрации, которые в виде упругих волн распространяются в среде. Каждый звук представляет собой набор волн. Это основной тон - волны гендерной идентификации ( у каждого говорящего базовая частота основного тона  индивидуальна и обусловлена особенностями строения гортани, в среднем для мужского голоса она составляет от 80 до 210 Гц, для женского - от 150 до 320 Гц. ). Это волны - обертоны ( призвуки, которые выше основного тона) и волны форманты (распознавание речи) связанные с уровнем частоты голосового тона, которые образуют тембр звука.

Читать далее

Как была устроена графика NES

Reading time14 min
Views22K
image

Выпущенная в 1983 году домашняя консоль Nintendo Entertainment System (NES) была дешёвой, но мощной машиной, достигшей феноменального успеха. При помощи блока обработки изображений (Picture Processing Unit, PPU) система могла создавать достаточно впечатляющую по тем временам графику, которая и сегодня в нужном контексте выглядит вполне неплохо. Самым важным аспектом была эффективность памяти — при создании графики приходилось обходиться как можно меньшим количеством байтов. Однако вместе с этим NES предоставила разработчикам мощные и простые в использовании функции, позволившие ей выделиться на фоне более старых домашних консолей. Поняв принципы создания графики NES, можно проникнуться техническим совершенством системы и осознать, насколько проще работать современным разработчикам игр.

Фоновая графика NES собиралась из четырёх отдельных компонентов, комбинация которых образовывала изображение, которое мы видим на экране. Каждый компонент отвечал за отдельный аспект; цвет, расположение, «сырая» пиксельная графика и т.д. Такая система может показаться излишне сложной и громоздкой, но в конечном итоге она намного эффективнее использовала память и позволяла создавать простые эффекты в малом объёме кода. Если вы хотите понимать графику NES, то ключевой информацией будут эти четыре компонента.

В этой статье подразумевается, что вы знакомы с компьютерной математикой, и в частности с тем, что 8 бит = 1 байт, а 8 бит могут обозначать 256 значений. Также необходимо понимание того, как работает шестнадцатеричная запись. Но даже без этих технических знаний статья может показаться интересной.
Читать дальше →

Как я учил нейросеть играть в Rocket League

Reading time10 min
Views7K

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

Читать далее

Гауссов сплэтинг: как это выглядит

Level of difficultyEasy
Reading time11 min
Views20K
Пример работы гауссова сплэтинга. Этот ролик — не видеосъёмка реального мира, а рендер в реальном времени на настольном компьютере

Всплеск внимания к технике сплэтинга связан с представленной в августе этого года статьей 3D Gaussian Splatting for Real-Time Radiance Field Rendering [Трёхмерный гауссов сплэтинг для рендера radiance field в реальном времени]. До этого, в июле, эта научная работа исследователей Университета Лазурного берега, Института информатики Общества Макса Планка и французского Национального института исследований в информатике и автоматике вошла в пятёрку лучших работ SIGGRAPH 2023.

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

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

Исходники закрыты, но мы не сдадимся: Пишем полностью нативное GUI-приложение под No-Name смартфон без Android

Level of difficultyMedium
Reading time10 min
Views21K
image

Для многих разработчиков приложений далеко не секрет, что экосистема Android не предполагает написание полностью нативных приложений: в этой платформе очень многое завязано на Java и без ART можно запустить только простые службы без какого-либо интерфейса. Однако, есть один способ писать практически под «голый» Linux, не перекомпилируя ядро и при этом пользоваться самыми интересными фишками устройства без оверхеда в виде тяжелого Android: ускорение 3D-графики (OpenGLES), микшер звука, ввод с различных устройств, OTG, Wi-Fi и если очень постараться — даже 3G. Это открывает множество разных интересных применений старым устройствам: «железо» смартфонов зачастую гораздо мощнее современных недорогих одноплатников. Сегодня я покажу вам, как написать и запустить программу, которая полностью написанное на C без Android, на No-Name Android-смартфоне практически без модификаций. Интересно? Жду вас в статье!
Читать дальше →

Шумные разработчики, или Какие виды шума бывают?

Reading time4 min
Views5.7K

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

Продолжение следует

Leakpocalypse: Rust может неприятно удивить

Reading time10 min
Views9.9K

Прим. пер.: Кто-то должен был сделать перевод этой статьи, несмотря на то, что она достаточно стара (2015 год), поскольку она показывает очень важную особенность работы с памятью в Rust — с помощью безопасного (не помеченного как unsafe) кода можно создавать утечки памяти. Это должно отрезвлять народ, верящий во всемогущность borrow checker'а.
Спойлер — внутри про невозможность отслеживания циклических ссылок, а также старые болезни некоторых типов из std, на момент перевода благополучно вылеченные.
Несмотря на наличие в Книге главы про безопасный код (спасибо за напоминание ozkriff), а также разъяснительной статьи русскоязычного сообщества (спасибо за напоминание mkpankov), я решил выполнить перевод для наглядной демонстрации серьезности непонимания возможностей управления памятью Rust.
Вероятнее всего, данная статья ранее не переводилась по причине весьма специфических терминов автора, которые НЛО в тираж не пропустит. По этой причине перевод не совсем дословный.

Читать дальше →

Как работает метод Левенберга-Марквардта

Reading time8 min
Views24K
Алгоритм Левенберга-Марквардта прост. Алгоритм Левенберга-Марквардта эффективен.

А еще о нем говорят, что он где-то посередине между градиентным спуском и методом Ньютона, что бы это ни значило. Ну, с методом Ньютона и его связью с градиентным спуском вроде как разобрались. Но что имеют в виду когда произносят эту глубокомысленную фразу? Попробуем слегка подразобраться.
Читать дальше →

О том, как я сломал Ubuntu и убил день на то, чтобы починить

Level of difficultyEasy
Reading time2 min
Views46K

Бывало у вас такое, что Snapd User Session Agent входит в бесконечный цикл? Вы вводите правильный пароль и... попадаете на тот же экран входа.

Это широко известная ситуация, которая может происходить из-за самых разных факторов. Не менее широко известен и универсальный рецепт: попадите в терминал bash через tty (Ctrl + Alt + F1), найдите проблему и устраните её.

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

Итак, вы впервые сталкиваетесь с infinite login loop и пытаетесь залогиниться в терминал при помощи tty. Но тут вас встречает "родная" русская раскладка вместо родной английской. Никакие хоткеи не работают: вы попробовали Shift + Alt, Alt + Shift, Cmd (Win) + пробел и все до единой остальные. Ничего не помогает. Можно сколько угодно стрессовать и сомневаться в своей вменяемости ("каким идиотом надо быть, чтобы поставить русскую раскладку как основную на машине Ubuntu???"), это не отменяет тупиковой ситуации. Как итог - вход невозможен. Вы перезагружаете машину, зажимаете Esc (иногда также Shift, но не в моем случае), чтобы попасть в grub menu и входите в recovery mode. Но - о ужас - и тут вас преследует ненавистная раскладка.

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

Читать далее

Самодельный компилятор и игровая библиотека Raylib. Опыт стыковки

Reading time4 min
Views6.5K
image

Говорят, что успех того или иного языка программирования или компилятора во многом зависит от его умения взаимодействовать со сторонним кодом. Конечно, «успех» любительского компилятора нужно понимать с известной долей условности и даже иронии. Однако и здесь интеграция с внешними библиотеками, написанными на С, может стать неплохой школой жизни.

О моём компиляторе XD Pascal уже было несколько постов на Хабре. Компилятор написан предельно просто и целиком вручную, при этом язык имеет весьма нетипичные расширения — методы и интерфейсы, позаимствованные из Go. На сегодняшний день базовый язык реализован полностью, работает самокомпиляция, введены простейшие оптимизации. Тут и возникло естественное желание наладить взаимодействие компилятора с какой-нибудь несложной игровой библиотекой. Выбор пал на Raylib — но никогда бы он на неё не пал, если бы я сразу предвидел её подводные камни. Невинная затея превратилась в борьбу с соглашениями о вызове.
Читать дальше →

Эволюционные вычисления: учим табуретку ходить

Reading time15 min
Views39K
image


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

Обучение с подкреплением: неформальное знакомство

Reading time6 min
Views21K

Обучение с подкреплением (Reinforcement learning, RL) сыграло ключевую роль в стремительном развитии технологий искусственного интеллекта, которое можно было наблюдать в последнее десятилетие. В этом материале мы простыми словами расскажем о том, что такое обучение с подкреплением, поговорим о том, почему оно важно не только как объект исследований, но и как инструмент, который находит множество самых разных вариантов практического применения.

Читать далее

Как без проблем просыпаться рано по утрам

Reading time8 min
Views86K

image


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


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

Читать дальше →

Whonix: руководство для начинающих

Reading time2 min
Views112K


Whonix — это дистрибутив Linux на основе Debian, который разработан для обеспечения повышенной безопасности и конфиденциальности. Высокая анонимность достигается средствами VirtualBox и Tor. Whonix снижает угрозу от распространенных векторов атак, сохраняя при этом удобство использования.


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


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


Более подробно о Whonix и других ОС для безопасности.


Содержание:


  • Что нужно для работы с Whonix?
  • Что такое Whonix Gateway и Whonix Workstation?
  • Установка и настройка
  • Рекомендации по использованию

Что нужно для работы с Whonix?


  1. VirtualBox
  2. Непосредственно Whonix:
    • Whonix Gateway
    • Whonix Workstation

Сейчас оба идут в одном файле .ova


Что такое Whonix Gateway и Whonix Workstation?


  • Whonix Gateway – выступает в качестве шлюза во всемирную сеть, направляя весь трафик через сеть Tor.
  • Whonix Workstation — это место, где мы работаем как пользователь. Находится в полностью изолированной сети.

ПРИМЕЧАНИЕ: Помните, что нужно запустить Gateway и Workstation


Установка и настройка


Загружаем и устанавливаем VirtualBox.


Читать дальше →

Как от «пугающего дальнодействия» можно прийти к существованию мультивселенной

Reading time4 min
Views8.7K

Рождение параллельных вселенных в результате флуктуаций квантовой пены

В некоторых интерпретациях квантовой механики вся наша Вселенная описывается одной универсальной волновой функцией, которая постоянно расщепляется и множится, порождая новые реальности для всех возможных квантовых взаимодействий. Утверждение довольно смелое. Как же мы к нему пришли?

В самом начале квантовой механики у учёных родилось понимание того, что у материи есть волновые свойства. Первым это предположил Луи Де Бройль, утверждавший, что с каждой субатомной частицей ассоциируется волна – как и у света, который может вести себя и как частицы, и как волны.

Другие физики вскоре подтвердили эту радикальную для своего времени идею, в частности в экспериментах, в которых электроны рассеивались в тонкой фольге перед тем, как попасть в мишень. Рассеивание электронов больше походило на волны, чем на поведение частиц. Тогда возник вопрос: а какова по сути волна материи? Как она выглядит?
Читать дальше →

GUI Генератор паролей на Python

Reading time16 min
Views34K

Штош. В этой статье я научу вас делать кроссплатформенное приложение генератор паролей с графическим интерфейсом. Мы будем использовать язык Python и библиотеку PySide6 - привязку к инструментарию фреймворка Qt.

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

В статье я постарался затронуть все моменты создания и сборки приложения. Ознакомиться с проектом можно на GitHub.

Штош

Знакомимся с дата-ориентированным проектированием на примере Rust

Reading time13 min
Views11K
image

James McMurray


В этом посте мы исследуем основные концепции «Data-Oriented Design» (далее «дата-ориентированное проектирование» на языке Rust.
Весь исходный код для этого поста выложен на Github.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity