Привет всем, кто неравнодушен к архитектурным решениям в рамках проектов на Unity и не только. Если вопрос выбора для вас ещё актуален или просто интересуетесь вариантами, то готов рассказать о реализации архитектуры Composition root с примерами простейшей логики. Здесь есть единая точка входа и Dependency Injection, то есть всё как мы любим.
Программист
Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности
Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!
Как создать Minecraft на Python? Обзор библиотеки Ursina Engine
Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.
Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
Язык програмирования Ü — нелёгкий путь написания самодостаточного компилятора
Уже несколько лет я веду разработку собственного языка программирования — Ü. Около двух лет назад я публиковал вводную статью о нём на Хабре. Компилятор этого языка написан на C++ и долгое время он таковым и оставался. Но после той публикации я пришёл к выводу, что язык Ü уже достаточно продвинут, чтобы написать на нём компилятор языка Ü. О написании этого компилятора и будет повествовать данная статья.
Фракталы, порожденные zeta-функцией
В своей последней статье я попытался создать фрактал, порожденный простыми числами. Но он меня не очень устроил эстетически. Поэтому я решил воспользоваться zeta функцией Римана для создания фракталов.
Будет много картинок и мало формул!
Разбираемся с Docker: как создаются образы
От любого инструмента, который внедряем в проект, мы ждём стабильной работы. Docker не исключение. Чтобы иметь возможность оперативно выявлять потенциальные проблемы и избегать сбоев, необходимо понимать внутренние особенности технологии. Эта статья — сборник заметок, которые помогут разобраться, как создаются образы контейнеров.
Вычисление значения частоты любой ноты и интересное звучание «псевдонатурального» строя
Какие у нот частоты? Почему они такие? Как рассчитать частоту любой ноты в любом аккорде? Как добиться необычного звучания? Когда новый релиз у Моцарта?
Что не так с попытками модифицировать теорию гравитации
Скопление Волос Вероники (или Кома). Кроме двух гигантских галактик в скоплении содержится более тысячи галактик разных размеров
Одно из базовых предположений физики заключается в том, что законы физики должны быть одинаковыми повсюду. Им должны подчиняться все объекты как на Земле, так и вне её – Луна, все тела Солнечной системы, звёзды, галактики и структуры ещё большего размера. Кроме того, мы предполагаем, что всё, что мы можем увидеть, существует за счёт тех же самых элементарных частиц, что составляют и нас с вами. К сожалению, по меньшей мере одно из этих предположений должно быть неверным – применяя известные законы физики к известным частицам, описываемым Стандартной Моделью, мы не можем описать все структуры Вселенной и всё их поведение.
Уже довольно давно мы исходим из предположения о том, что для объяснения поведения всех наблюдаемых структур не хватает одного ингредиента. Мы назвали его «тёмной материей», а свойства у неё должны быть следующими:
Настройка Webpack 5
Пошаговое руководство по настройке сборщика Webpack 5 совместно с такими инструментами как Pug, Sass, JavaScript, React и Markdown.
Илон Маск кисти Ван Гога, или специализированные модели Stable Diffusion
Благодаря сообществу, stable diffusion развивается стремительнее, чем можно было предположить. Как я писал в предыдущей статье, вскоре мы должны получить много специализированных моделей под конкретные задачи.
Уже сейчас помимо основной модели весов у stable diffusion есть модели для получения артов в строго определенном стиле.
В этой статье я покажу как это работает на практике и дам небольшую инструкцию для начинающих по добавлению специализированных моделей.
Гипотеза Эскобара
На прошлом витке чего-о?
Изобрёл плоскостные числа — у нас они называются комплексными. Выдвинул гипотезу о знаке, что числа могут быть не только положительными и отрицательными, но и ещё, подобно тому как можно двигаться на плоскости не только вперёд и назад, но и вправо и влево — числа тоже могут быть расположены в других направлениях. В конце своей жизни Эскобар разочаровался в математике, да и вообще во всём. И в нашем витке времени он стал музыкантом. И никто бы не узнал, что он в душе математик, если бы на одном из концертов у него не взяли интервью, где в ответ на предложение сравнить два варианта он категорически выдал свою гипотезу за аксиому: двух вариантов недостаточно.
Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить гипотезу Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Дэвид Кроненберг — психолог ужасов
Мало кто поспорит, что жанр хорроров как был, так и остаётся темой табуированной — те немногие работы, что по праву дорвались до признания как критиков, так и аудитории, а при этом ещё и кассу собрали, постфактум тихо меняют жанровую принадлежность на более массовые «триллеры» и «боевики». «Молчание ягнят» или «Экзорцист» тому пример. И, тем не менее, жанр этот стоял у истоков кинематографа, и будет существовать до его конца, ибо человек всегда будет чего-то бояться, а творчество — один из наиболее действенных способов преодоления страха как для автора, так и для зрителя.
Есть именитые режиссёры, которые пробовали свои силы в этом жанре в тот или иной момент своей карьеры (Питер Джексон начинал с треш-хорроров, а Тарантино как-то раз объединился с давними друзьями Робертом Родригесом и Элаем Ротом для создания фарсовой дилогии «Грайндхаус»). Есть же те, кто с первых опытов в киноиндустрии зарекомендовал себя мастером конвенциональных «ужастиков» и таковым остался (как вечно старый Джон Карпентер). Но каково это — на протяжении уже пятидесяти лет завораживать зрителя бесконечным насилием, оставаясь на своём пути тонким философом и предвестником новых тревог и страхов? Канадец Дэвид Кроненберг, а точнее его разношёрстная фильмография, попытается дать ответ на этот вопрос.
Полное руководство по модулю asyncio в Python. Часть 1
Python-модуль asyncio
позволяет заниматься асинхронным программированием с применением конкурентного выполнения кода, основанного на корутинах. Хотя этот модуль имеется в Python уже много лет, он остаётся одним из самых интересных механизмов языка. Но asyncio
, при этом, можно назвать ещё и одним из модулей, которые вызывают больше всего недоразумений. Дело в том, что начинающим разработчикам бывает трудно приступить к использованию asyncio
.
Перед вами — подробное и всестороннее руководство по использованию модуля asyncio
в Python. В частности, здесь будут рассмотрены следующие основные вопросы:
Сверхлёгкие частицы размером с галактику
Расправившись со статьёй про «волны-убийцы», я ещё некоторое время по инерции запускал описанную там модель с различными начальными условиями. На каком-то этапе пришла мысль обобщить код на большие измерения и произвести расчёт для поля, заполненного случайными возмущениями. Результат крайне озадачил и увёл меня в совсем другое направление, заставив на несколько месяцев погрузиться в космологию и физику тёмной материи.
Автогенерация музыки без AI
Автоматическое создание музыки по заданным параметрам.
Используется Web Audio API, TypeScript, Android WebView, таблично-волновой синтез и элементарная теория музыки.
Квантовые компьютеры: без математики и философии
В этой статье я разберу по косточкам все тайны квантовых компьютеров: что такое суперпозиция (бесполезна) и запутанность (интересный эффект), могут ли они заменить обычные компьютеры (нет) и могут ли они взломать RSA (нет). При этом я не буду упоминать волновую функцию и столь раздражающих Bob и Alice, которых вы могли встречать в других статьях про квантовые машины.
Первое и самое главное, что нужно знать - квантовые компьютеры не имеют ничего общего с обычными. Квантовые компьютеры по своей природе - аналоговые, там нет бинарных операций. Вероятно, вы уже слышали про Кубиты, что у них есть состояние 0, 1 и 0-1 одновременно, и благодаря этому вычисления выполняются очень быстро: это заблуждение. Кубит - это магнит (обычно атом или электрон), подвешенный в пространстве, который может вращаться по всем трем осям. Собственно, вращение магнита в пространстве - это и есть операции квантового компьютера. Почему это может ускорить вычисления? Было очень сложно найти ответ, но самые стойкие читатели увидят его в конце статьи. Начнем разоблачения.
Москва — Проксима
Утром я, конечно, никуда не лечу. Утром кто меня куда пустит, когда я - бесформенный блоб безадресных битов, готовых распасться на бессмысленные чанки, и только третья к ряду банка “Тимлидовского” огромным усилием едва держит их вместе. “Тимлидовское” отупляет, и я позволяю его себе только утром, когда тупить назначено нам рабочим графиком, который я однажды сам и составил, за что и получил тимлидовские лавры, переходящую прибавку к зарплате и три банки свежего пива, ежеутренне ожидавшие меня у трехглавого монитора.
Чтобы не так тошнило, я принялся перечитывать Код Движка. Код Движка написал Тим Сердюк, который, единственный из нас, взобрался на пик Балмера и установил там его как флаг, символ покорения и символ недостижимости, поскольку такой красоты и лаконичности код сообщал узревшему его, что не про тебя пик Балмера, потому что ты такой код не то что написать, ты все его смыслы умом охватить не сможешь, ибо они в челобайт твой не втиснутся, сколько ты это дело градусом не конфигурируй. Ведь ты имеешь дело с тем самым случаем, когда полиморфизм кода переходит в бездонность смыслов. Чистая поэзия.
Этот флаг над пиком Балмера всегда маячил нам, указывая путь и направление, но неумолимо скрывался в плотном густом непроглядном тумане, стоило подступиться к нему на расстояние двух-трех шотов.
Каждое утро мы начинали с пересброки. Не мы пересобирали Код Движка, но он пересобирал нас, всякий раз оставляя в новой, улучшенной версии.
(Сам Сердюк, закончив Движок, ушел во внутреннюю мобилизацию, оставив вместо документации кода лишь записку “хорошо весьма”. И был вечер, и было утро, а Сердюка больше не было).
Бот для определения болезней собак
Несколько месяцев назад я написал статью про бота определяющего болезни кошек. За это время я сделал несколько улучшений и создал еще одного бота, но уже для собак. Ссылка на бота для кошек Бот для определения болезни кошек / Хабр (habr.com)
Бот может по симптомам определить болезнь собаки. Всего в списке есть 32 болезни. Это и заболевания внутренних органов, и опорно-двигательной системы и так же банальная чумка и бешенство.
Приручаем многопоточность в Node.js (часть 5/5: автомасштабирование под нагрузку)
В прошлых частях цикла мы:
- рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js;
- научились формировать общую очередь и каналы обмена данными и сигналами, чтобы более эффективно управлять загрузкой потоков;
- использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных;
- и создали отдельный поток-координатор, чтобы устранить негативное влияние синхронного кода в основном потоке исполнения на загрузку потоков вспомогательных.
В сегодняшней, заключительной, части я продемонстрирую, как все эти механики вместе позволяют сделать эффективный микросервис, автоматически подстраивающийся под изменения входящей нагрузки.
В данном случае эффективность - это не про максимально возможную скорость обработки каждой отдельной задачи, а про сбалансированное использование аппаратных ресурсов с учетом тех ограничений, на которые мы готовы пойти. Особенно актуально это для различных "облачных" размещений, где оплата идет за фактически потребленные CPU и RAM.
Information
- Rating
- Does not participate
- Location
- Ижевск, Удмуртия, Россия
- Date of birth
- Registered
- Activity