Pull to refresh
-10
Юрий @addewydread⁠-⁠only

Программист

Send message

Использование архитектуры Composition root в Unity. Часть 1. Настройка проекта с нуля

Reading time8 min
Views7.2K

Привет всем, кто неравнодушен к архитектурным решениям в рамках проектов на Unity и не только. Если вопрос выбора для вас ещё актуален или просто интересуетесь вариантами, то готов рассказать о реализации архитектуры Composition root с примерами простейшей логики. Здесь есть единая точка входа и Dependency Injection, то есть всё как мы любим.

Читаем и разбираемся
Total votes 2: ↑2 and ↓0+2
Comments16

Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности

Reading time6 min
Views5.8K

Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!

Читать далее
Total votes 12: ↑12 and ↓0+12
Comments6

Как создать Minecraft на Python? Обзор библиотеки Ursina Engine

Reading time11 min
Views36K

Среди любителей Minecraft много энтузиастов: пока одни просто играют, другие запускают целые серверы и пишут модификации. А кто-то идет дальше и разрабатывает собственные песочницы. Последнее достаточно просто сделать на Python.

Под катом делюсь основами работы с библиотекой Ursina Engine и показываю, как с помощью нее создать мир из кубов.
Читать дальше →
Total votes 49: ↑48 and ↓1+58
Comments21

Язык програмирования Ü — нелёгкий путь написания самодостаточного компилятора

Reading time17 min
Views15K

Уже несколько лет я веду разработку собственного языка программирования — Ü. Около двух лет назад я публиковал вводную статью о нём на Хабре. Компилятор этого языка написан на C++ и долгое время он таковым и оставался. Но после той публикации я пришёл к выводу, что язык Ü уже достаточно продвинут, чтобы написать на нём компилятор языка Ü. О написании этого компилятора и будет повествовать данная статья.

Читать дальше →
Total votes 21: ↑20 and ↓1+29
Comments10

Фракталы, порожденные zeta-функцией

Reading time2 min
Views7.5K

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

Будет много картинок и мало формул!

Читать далее
Total votes 42: ↑42 and ↓0+42
Comments8

Разбираемся с Docker: как создаются образы

Reading time13 min
Views45K

От любого инструмента, который внедряем в проект, мы ждём стабильной работы. Docker не исключение. Чтобы иметь возможность оперативно выявлять потенциальные проблемы и избегать сбоев, необходимо понимать внутренние особенности технологии. Эта статья — сборник заметок, которые помогут разобраться, как создаются образы контейнеров. 

Читать далее
Total votes 29: ↑28 and ↓1+33
Comments3

Вычисление значения частоты любой ноты и интересное звучание «псевдонатурального» строя

Reading time4 min
Views13K

Какие у нот частоты? Почему они такие? Как рассчитать частоту любой ноты в любом аккорде? Как добиться необычного звучания? Когда новый релиз у Моцарта?

Узнать о нотах больше
Total votes 18: ↑14 and ↓4+15
Comments36

Что не так с попытками модифицировать теорию гравитации

Reading time8 min
Views21K

Скопление Волос Вероники (или Кома). Кроме двух гигантских галактик в скоплении содержится более тысячи галактик разных размеров

Одно из базовых предположений физики заключается в том, что законы физики должны быть одинаковыми повсюду. Им должны подчиняться все объекты как на Земле, так и вне её – Луна, все тела Солнечной системы, звёзды, галактики и структуры ещё большего размера. Кроме того, мы предполагаем, что всё, что мы можем увидеть, существует за счёт тех же самых элементарных частиц, что составляют и нас с вами. К сожалению, по меньшей мере одно из этих предположений должно быть неверным – применяя известные законы физики к известным частицам, описываемым Стандартной Моделью, мы не можем описать все структуры Вселенной и всё их поведение.

Уже довольно давно мы исходим из предположения о том, что для объяснения поведения всех наблюдаемых структур не хватает одного ингредиента. Мы назвали его «тёмной материей», а свойства у неё должны быть следующими:
Читать дальше →
Total votes 44: ↑42 and ↓2+50
Comments258

Илон Маск кисти Ван Гога, или специализированные модели Stable Diffusion

Reading time3 min
Views4.4K

Благодаря сообществу, stable diffusion развивается стремительнее, чем можно было предположить. Как я писал в предыдущей статье, вскоре мы должны получить много специализированных моделей под конкретные задачи. 

Уже сейчас помимо основной модели весов у stable diffusion есть модели для получения артов в строго определенном стиле. 

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

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments1

Гипотеза Эскобара

Reading time28 min
Views14K
Эскобар — великий математик, живший на Земле на прошлом витке общемирового времени.
На прошлом витке чего-о?


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

Комплексные числа были открыты без участия Эскобара, но это не значит, что мы должны отказываться от его наследия. Все знают, что 2+2=4, 2×2=4, 2^2=4. Только, при возведении в степень существует разница в порядке аргументов. Что если применить гипотезу Эскобара на нашем убеждении, что у порядка при возведении в степень может быть только два варианта? Ну а вдруг — больше?
Пишет тексты нам никто
Total votes 22: ↑16 and ↓6+15
Comments19

Дэвид Кроненберг — психолог ужасов

Reading time10 min
Views5.8K
image

Мало кто поспорит, что жанр хорроров как был, так и остаётся темой табуированной — те немногие работы, что по праву дорвались до признания как критиков, так и аудитории, а при этом ещё и кассу собрали, постфактум тихо меняют жанровую принадлежность на более массовые «триллеры» и «боевики». «Молчание ягнят» или «Экзорцист» тому пример. И, тем не менее, жанр этот стоял у истоков кинематографа, и будет существовать до его конца, ибо человек всегда будет чего-то бояться, а творчество — один из наиболее действенных способов преодоления страха как для автора, так и для зрителя.

Есть именитые режиссёры, которые пробовали свои силы в этом жанре в тот или иной момент своей карьеры (Питер Джексон начинал с треш-хорроров, а Тарантино как-то раз объединился с давними друзьями Робертом Родригесом и Элаем Ротом для создания фарсовой дилогии «Грайндхаус»). Есть же те, кто с первых опытов в киноиндустрии зарекомендовал себя мастером конвенциональных «ужастиков» и таковым остался (как вечно старый Джон Карпентер). Но каково это — на протяжении уже пятидесяти лет завораживать зрителя бесконечным насилием, оставаясь на своём пути тонким философом и предвестником новых тревог и страхов? Канадец Дэвид Кроненберг, а точнее его разношёрстная фильмография, попытается дать ответ на этот вопрос.
Читать дальше →
Total votes 40: ↑37 and ↓3+46
Comments8

Полное руководство по модулю asyncio в Python. Часть 1

Reading time11 min
Views110K

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

Перед вами — подробное и всестороннее руководство по использованию модуля asyncio в Python. В частности, здесь будут рассмотрены следующие основные вопросы:

Читать далее
Total votes 21: ↑19 and ↓2+27
Comments8

Самую холодную капельку во Вселенной уронили с высокой колокольни

Reading time18 min
Views45K

И остались довольны результатом. Теперь хотят отправить ее на орбиту Земли.

Сегодня мы попробуем разобраться в физике пятого состояния материи и выясним, зачем ее сбрасывать с башни.
Читать дальше →
Total votes 80: ↑78 and ↓2+113
Comments38

Сверхлёгкие частицы размером с галактику

Reading time41 min
Views36K

Расправившись со статьёй про «волны-убийцы», я ещё некоторое время по инерции запускал описанную там модель с различными начальными условиями. На каком-то этапе пришла мысль обобщить код на большие измерения и произвести расчёт для поля, заполненного случайными возмущениями. Результат крайне озадачил и увёл меня в совсем другое направление, заставив на несколько месяцев погрузиться в космологию и физику тёмной материи.
Читать дальше →
Total votes 108: ↑107 and ↓1+135
Comments34

Квантовые компьютеры: без математики и философии

Reading time13 min
Views32K

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

Первое и самое главное, что нужно знать - квантовые компьютеры не имеют ничего общего с обычными. Квантовые компьютеры по своей природе - аналоговые, там нет бинарных операций. Вероятно, вы уже слышали про Кубиты, что у них есть состояние 0, 1 и 0-1 одновременно, и благодаря этому вычисления выполняются очень быстро: это заблуждение. Кубит - это магнит (обычно атом или электрон), подвешенный в пространстве, который может вращаться по всем трем осям. Собственно, вращение магнита в пространстве - это и есть операции квантового компьютера. Почему это может ускорить вычисления? Было очень сложно найти ответ, но самые стойкие читатели увидят его в конце статьи. Начнем разоблачения.

Читать далее
Total votes 77: ↑71 and ↓6+82
Comments95

Москва — Проксима

Reading time6 min
Views2.8K

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

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

Этот флаг над пиком Балмера всегда маячил нам, указывая путь и направление, но неумолимо скрывался в плотном густом непроглядном тумане, стоило подступиться к нему на расстояние двух-трех шотов.

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

(Сам Сердюк, закончив Движок, ушел во внутреннюю мобилизацию, оставив вместо документации кода лишь записку “хорошо весьма”. И был вечер, и было утро, а Сердюка больше не было).

Употребить (21+)
Total votes 20: ↑19 and ↓1+22
Comments2

Бот для определения болезней собак

Reading time2 min
Views2.1K

Несколько месяцев назад я написал статью про бота определяющего болезни кошек. За это время я сделал несколько улучшений и создал еще одного бота, но уже для собак. Ссылка на бота для кошек Бот для определения болезни кошек / Хабр (habr.com)

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

Читать далее
Total votes 2: ↑2 and ↓0+2
Comments2

Приручаем многопоточность в Node.js (часть 5/5: автомасштабирование под нагрузку)

Reading time19 min
Views7K

В прошлых частях цикла мы:

- рассмотрели базовые концепты работы с многопоточностью в JavaScript на примере среды Node.js;

- научились формировать общую очередь и каналы обмена данными и сигналами, чтобы более эффективно управлять загрузкой потоков;

- использовали разделяемую память и Atomics-операции как самое быстрое средство обмена большими блоками данных;

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

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

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

Читать далее
Total votes 15: ↑15 and ↓0+15
Comments6

Information

Rating
Does not participate
Location
Ижевск, Удмуртия, Россия
Date of birth
Registered
Activity