Search
Write a publication
Pull to refresh
0
0
Светлов Александр @Mehalich

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

Send message

Про модель, логику, ООП, разработку и остальное

Reading time29 min
Views111K
Часто ли вы задумываетесь – почему что-то сделано так или иначе? Почему у вас микросервисы или монолит, двухзвенка или трехзвенка? Зачем вам многослойная архитектура и сколько у вас вообще слоев? Что такое бизнес-логика, логика приложения, презентационная логика и почему все так разделено? Посмотрите на свое приложение – как оно вообще спроектировано? Что в нем и где находится, почему это сделано именно так?
Потому что так написано в книжках или так говорят авторитетные личности? Какие ВАШИ проблемы решает тот или иной подход/паттерн?
Даже то, что на первый взгляд кажется очевидным, порой бывает очень сложно объяснить. А иногда, в попытке объяснения, приходит понимание того, что очевидные мысли были и вовсе ошибочны.
Давайте попробуем взять какой-нибудь пример и изучить на нем эти вопросы со всех сторон.
Читать дальше →

Магия тензорной алгебры: Часть 10 — Получаем вектор угловой скорости. Работаем над недочетами

Reading time7 min
Views16K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение




Введение на этот раз будет «активным». Мы сразу начнем работать, и, пользуясь результатами предыдущих статей 6 и 9, получим псевдовектор угловой скорости твердого тела, выраженный через параметры конечного поворота.

Итак, путем долгих мучений вручную и, недолгих, но кропотливых преобразований в Maxima, мы пришли к тому, что антисимметричный тензор угловой скорости 2 ранга выглядит так

\Omega_{\,mk} = \left(1 - \cos\varphi \right )\left(\dot u_{\,m} \, u_{\,k} - u_{\,m} \, \dot u_{\,k}\right ) + \sin\varphi \, \left(1 - \cos\varphi \right ) \, u^{\,i} \left( \varepsilon_{\,ijk} \, \dot u^{\,j} \, u_{\,m} - \varepsilon_{\,ilm} \, \dot u^{\,l} \, u_{\,k} \right ) +

+ \sin\varphi \cos\varphi \, \varepsilon_{\,mjk} \, \dot u^{\,j} + \dot\varphi \, \varepsilon_{\,mik} \, u^{i} \quad (1)

Мы говорили о том, что получить псевдовектор угловой скорости можно, свернув (1) с тензором Леви-Чивиты

\omega^{\,r} = \varepsilon^{\,mkr} \, \Omega_{\,mk} \quad (2)

Однако дальнейшее исследование показало, что формула (2) содержит ошибку, которая приводит к получению не совсем верного результата. Отгадка нашлась путем изучения литературы и дальнейшего самостоятельного осмысления результатов из статьи о свертке тензора Леви-Чивиты.

Приглашаю под кат всех, кому интересно, что получилось в итоге.
Читать дальше →

Как устроен цвет

Reading time1 min
Views58K
Почему формальное определение цвета то ли есть, то ли нет, и связано ли это с тем, что его дал тот самый Шрёдингер? Что имел в виду Вейнберг, когда назвал свою революционную статью «Геометрия цветов»? Почему у цветового треугольника два угла, хотя интуитивно кажется, что должен быть один? Почему обычный детский рисунок показывает, что у автора всё в порядке с цветовосприятием, и зачем художник-академист всю жизнь учится его отключать? Почему в цветовом пространстве находятся кластеры, но они не находятся? Почему любая женщина знает о явлении метамерии окрасок, а ученые всё время забывают? Сколько должно быть цветовых каналов у хорошего фотоаппарата? А у монитора? А почему ответ разный? А красок у принтера?

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



Лектор — Дмитрий Николаев, заведующий сектором зрительных систем в Институте проблем передачи информации им. А.А. Харкевича РАН. Кандидат физико-математических наук, защитил диссертацию на тему «Алгоритмы цветовой сегментации, применимые в условиях сложного освещения сцены».
Читать дальше →

Радиоуправляемый катер на Arduino и радио модуле NRF24L01 из потолочной плитки

Reading time2 min
Views59K
Хочу рассказать о моем увлечении радио моделями, в частности катерами.

Для управления моторами решил использовать ардуину и готовый пульт для квадрокоптеров. Данный пульт собран с использованием радио модуля NRF24L01, и к тому же один добрый человек раскодировал протокол.
Читать дальше →

Еще одно применение станка ЧПУ

Reading time7 min
Views26K
ЧПУ станок — это станок с числовым программным управлением. Позволяет изготавливать детали по заранее подготовленной программе с высокой точностью, повторяемостью и скоростью. В этой статье пойдет речь о созданном мною намоточном станке, которому я дал название Орбитер (Orbiter).

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



За последний десяток лет цена на ЧПУ комплектующие и электронику заметно снизилась, поэтому собрать ЧПУ станок может себе позволить практически каждый. При сборке станка, я руководствовался инженерным образованием, бюджетом и здравым смыслом. По этому детали для станка старался искать в свободной продаже с минимумом слесарной обработки, что-то заказывалось в Китае, что-то покупалось в авто- и строительных магазинах, что-то допиливалось в гаражах друзей. Некоторые детали все равно пришлось заказать токарю.

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

Интеграция Unity с Google Таблицами

Reading time9 min
Views29K


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

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

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

Как компьютеры складывают числа

Reading time1 min
Views43K
Мы в Хекслете любим разрабатывать не только прикладные курсы, но и более фундаментальные (например, про алгоритмы или операционные системы). Но мы пока не спускались ниже уровня ОС в иерархии абстракций. А там, внутри, столько всего интересного! Для многих людей, да даже для многих профессиональных программистов остаются загадкой процессы, происходящие внутри микропроцессора, на уровне отдельных транзисторов.

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


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

Концепт: самогонный аппарат — полный автомат

Reading time16 min
Views76K
image

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

Под концептом подразумевается то, что система находится в стадии разработки, но имеет законченную структурную идею, и не претендует на то, что она работает на 100%. В действительности, когда реально начинаешь собирать устройство, где-нибудь что-нибудь точно да откажет: или драйвер не заработает, или температура неправильно рассчитана. Поэтому концепт — он и в Африке концепт.

Что касается алгоритма работы, то по температурам задатчиков он рабочий. Взят алгоритм из других источников и форумов. Собиралось по крупицам. Временные интервалы взяты с запасом и зависят от объема перегонного куба. Мой куб планируется литров на 20-25. Для куба объемом 5 литров (от скороварки), естественно, временные интервалы будут другими, заведомо меньшие.
Читать дальше →

Серии Фейнмана [Озвучка Vert Dider]

Reading time1 min
Views33K


«Серии Фейнмана» — образовательный проект, созданный с целью повысить уровень научной грамотности в обществе. От создателей «Серий Карла Сагана».
Читать дальше →

Магия тензорной алгебры: Часть 9 — Вывод тензора угловой скорости через параметры конечного поворота. Применяем Maxima

Reading time8 min
Views15K

Содержание


  1. Что такое тензор и для чего он нужен?
  2. Векторные и тензорные операции. Ранги тензоров
  3. Криволинейные координаты
  4. Динамика точки в тензорном изложении
  5. Действия над тензорами и некоторые другие теоретические вопросы
  6. Кинематика свободного твердого тела. Природа угловой скорости
  7. Конечный поворот твердого тела. Свойства тензора поворота и способ его вычисления
  8. О свертках тензора Леви-Чивиты
  9. Вывод тензора угловой скорости через параметры конечного поворота. Применяем голову и Maxima
  10. Получаем вектор угловой скорости. Работаем над недочетами
  11. Ускорение точки тела при свободном движении. Угловое ускорение твердого тела
  12. Параметры Родрига-Гамильтона в кинематике твердого тела
  13. СКА Maxima в задачах преобразования тензорных выражений. Угловые скорость и ускорения в параметрах Родрига-Гамильтона
  14. Нестандартное введение в динамику твердого тела
  15. Движение несвободного твердого тела
  16. Свойства тензора инерции твердого тела
  17. Зарисовка о гайке Джанибекова
  18. Математическое моделирование эффекта Джанибекова


Введение


Утекло уже порядком времени, как я обещал получить тензор угловой скорости твердого тела, выразив его через параметры конечного поворота. Если взглянуть на КДПВ, то станет понятно, почему я так долго думал — стопка бумаги на столе, это ход моих мыслей.

Преобразование тензорных выражений то ещё удовольствие…


Жестокие тензоры не хотели упрощаться. Вернее, они то хотели, но при преобразованиях, раскрытии скобок, в силу невнимательности возникали мелкие ошибки, которые не позволяли взглянуть на картину в целом. В итоге результат таки был получен. Не последнюю роль в этом сыграла СКА Maxima, которой я обратился, во многом благодаря статье пользователя EugeneKalentev. Акцент упомянутой статьи смещался в сторону вычислительной работы с тензорами, компоненты которых представлены конкретными структурами данных. Меня же интересовал вопрос работы с абстрактными тензорами. Оказалось, что Maxima может с ними работать, хоть и нет так, как может быть хотелось, но всё же она серьезно упростила мне жизнь.

Итак, мы возвращаемся к механике твердого тела, а заодно посмотрим, как работать с тензорами в Maxima.
Читать дальше →

«Галоп пикселя — часть вторая» — перспектива, цвет, анатомия и прикладные упражнения

Reading time40 min
Views96K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)линк)

Первая статья данного цикла была воспринята тепло, вследствие чего затягивать с продолжением не имело никакого смысла, но, увы – это произошло. Зимнее наступление захлебнулось и плавно переросло в летнюю кампанию. В конце статьи я объясню почему, не хотелось бы вас огорчать с самых первых строк. Итак. Публика выразила желание ознакомиться с предметом глубже, чем предполагалось изначально. Большое количество писем пришло на почту, наряду с регулярными тычками в социальных сетях. В этом месте мне вспоминается одна фраза – «будьте осторожны в своих желаниях».

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

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


Лопатить пиксели

«Pimp my game», или как «прокачивать» игры без API

Reading time10 min
Views14K
image

Думаю, многие из вас хотя бы раз в своей жизни занимались модификацией любимой компьютерной игры. Это могло быть редактирование ресурсов (например, моделей персонажей и объектов из GTA), написание разнообразных скриптов (к примеру, планировщик задач для Dwarf Fortress, запускаемый при помощи DFHack) или разработка модов для своего сервера Minecraft, которые работали под управлением Minecraft Forge.

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

Сидя однажды вечером за одной из своих любимых игр под названием UnReal World (далее — URW), я в очередной раз столкнулся с невероятно неудобным для меня поведением. Естественное желание практически любого игрока при встрече с более-менее сильным врагом — моментально сохраниться, чтобы не потерять всё, чего он достиг на данный момент (да, некоторые сочтут это «хамством» / «читом» / etc, но о вкусах не спорят). Проблема заключается в том, что сохраниться-загрузиться по-быстрому в URW просто не получится. При сохранении персонажа автоматически выполняется выход в главное меню, а выйти не сохранившись, чтобы вернуться к предыдущей точке сохранения, можно лишь убив процесс игры через taskmgr. В итоге в большинстве случаев сложные бои на поздних этапах игры (когда уже действительно жаль терять всё то, что накопил за долгое время) заканчивались безумными комбинациями и заученными наизусть сочетаниями клавиш.

И тут я задумался. А что мешает нам добавить своё собственное меню быстрой загрузки и сохранения? Вооружившись отладчиком, редактором и анализаторами PE-файлов, я принялся за работу.

Как протекал процесс, и что из этого вышло, читайте под катом (осторожно, много скриншотов). Перед прочтением данной статьи также настоятельно рекомендую ознакомиться с предыдущими, т.к. в них уже объяснены некоторые из опущенных здесь моментов.
Читать дальше →

Нейроэволюционный алгоритм учится играть в Mario

Reading time3 min
Views19K
SethBling известен своим каналом, на котором он размещает различные советы и изобретения для мира Minecraft. Часто там появляется иной контент. К примеру, в список интересов влогера входит Mario. Именно SethBling первым прошёл Super Mario World на консоли с помощью бага с редактированием памяти путём перемещения предметов в игре. В его последних видео и стримах всё та же игра. Но играет уже не человек, а нейроэволюционный алгоритм, который SethBling сам и написал.
Читать дальше →

Четно-нечетная сортировка слиянием Бэтчера

Reading time4 min
Views26K

Введение


Алгоритм четно-нечетной сортировки слиянием (odd-even mergesort) был разработан Бэтчером в 1968 году. Алгоритм не слишком популярный и не слишком известный. Однако он достаточно легко параллелится и его реализация не слишком сложна. Лично я узнал о нем когда разбирался с MPI и увидел тестовое задание на coursera: написать сортировку Бэтчера.
Читать дальше →

Дизайн уровней для игр три в ряд

Reading time5 min
Views42K


Три в ряд — один из самых популярных игровых жанров. Игр существует десятки тысяч, при этом в интернете довольно мало статей по дизайну уровней, а они — основная составляющая игры. Правим этот недостаток, размещая на Хабре свои мысли и опыт в виде тезисов, заметок по сути и по делу, с рассуждениями и картинками.
Читать дальше →

Светить всегда, светить везде. Начало

Reading time6 min
Views67K


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

Японский дурак

Reading time5 min
Views20K
image

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

Игра очень простая, быстрая и азартная. Один на один. Колода 36 карт. Разыгрывалось 18 взяток. Кто брал меньшее число взяток — тот мыл тарелки. Например, я выиграл 11 взяток, соперник — 7. Неудачник отправлялся мыть 11 — 7 = 4 посудины. Было выгодно проигрывать первые раздачи, при наличии слегка запачканных вилок, чайных ложек и стаканов. Под конец бедолагам оставались лишь жирные сковородки и неподъемные кастрюли.

К сожалению, прошло время, и я стал жить вдали от родного дома. Скучал по родителям, игре и чистой посуде.
Да-да, однажды мне надоело скучать, и я написал Японского Дурака для iPhone и Японского Дурака для iPad.

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

УМК на ATmega16

Reading time16 min
Views21K
Спойлер: данная статья не выдавит ностальгической слезы.

Решив не так давно познакомиться поближе (после Arduino) с микроконтроллерами вообще
и с микроконтроллерами ATmega в частности, я быстро понял, что просто читать о МК,
прогонять код в эмуляторе, «моргать светодиодом» — это как-то не то. Поэтому я решил
«запилить» какой-нибудь — пусть даже бесполезный — проект, и разбираться со всем
уже по ходу дела. На ум пришли лабораторные работы по микропроцессорным системам
и учебный стенд, на котором эти работы выполнялись — так называемый учебный микропроцессорный
комплект (УМК), который у нас звался просто «Умкой».

Про УМК


Итак, если не вдаваться в подробности (если вдаваться — то по ссылкам ниже), то
«Умка» это микро-ЭВМ на базе микропроцессора К580ИК80А, выпускался в 80-х годах
прошлого века (мне же посчастливилось работать с ним в не совсем далёком 2009 году),
представляет из себя весомый такой ящик. Более подробную информацию об истории «Умок»
и прочем можно найти по второй ссылке ниже. Вот так он выглядит.

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

Купить в Европе, доставить в Финляндию, и все-таки вернуть VAT

Reading time2 min
Views9.3K
Бывает, что самый идеальный подарок или просто то, что очень хочется купить, находится очень близко где-нибудь в Европе. Казалось бы, доставка недорогая, и до России рукой подать, еще и НДС можно вычесть.
Но, к сожалению, не все интернет-магазины с этим согласны, видимо «безграничное» пространство Европы все-таки удобнее.

Ну, ладно, доставить можно на pochta.fi в Финляндию, заберет друг, когда поедет за сыром и Fairy, а что делать с НДС, не хочется терять этот бонус.

И тут есть выход, не самый простой, но если VAT больше 20-30 евро, есть смысл попытаться.


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

Коммутатор видеосигналов для ТВ

Reading time2 min
Views25K
Мой друг очень любит старые приставки: Dendy, Sega, PS и т. д. Однако, когда приставок много, а телевизор один, встает проблема постоянных переключений. Поэтому на день рождения я решил сделать для него подарок своими руками.

Китай предлагает коммутаторы, схемотехнические решения часто используют дорогие или редкие в наших краях микросхемы ВЧ-коммутаторов. А я решил проявить оригинальность и смастерить коммутатор на электромагнитных реле. Плюсы реле очевидны: гальваническая развязка; как и минусы: потребляемый ток. Изначально я хотел сделать коммутацию с помощью реле, а управление на ТТЛ логике, но в наличии были только 12В реле. Мне было лень делать два питания, согласовывание, поэтому и саму логику включения входов я сделал тоже на реле. Таким образом, получился коммутатор, собранный полностью на реле, без микроконтроллеров и даже логических микросхем.
Подробности

Information

Rating
Does not participate
Location
Таллин, Эстония, Эстония
Date of birth
Registered
Activity