Как стать автором
Обновить
0
0

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

Отправить сообщение

Хочите виртуальный macOS на своём PC? Их есть у меня

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров63K

Статья о том как установить себе "macOS Monterey" в виртуальной машине на обычном PC без покупки для этой цели макбука или айМака.

По идее это просто туториал как получить у себя на обычном PC систему macOS и Xcode, но так как я тут нахожусь в состоянии "Отхабренный" я могу отправлять статьи только в "Профильные хабы". По этой статье больше бы подошло "Tutorial", но такого хаба я не нашёл и поэтому выбрал наиболее близкие хабы по теме статьи: "Настройка Linux" и "Разработка под iOS". И КДПВ тоже я выбрал идиотскую -- просто сделал скриншот со своего компа где продемонстировал версию macOS и версию установленного у меня Xcode.

Если интересно, то "Читать далее"
Всего голосов 48: ↑36 и ↓12+35
Комментарии60

Пять продвинутых техник инициализации в C++: От reserve() до piecewise_construct

Время на прочтение9 мин
Количество просмотров12K

От операций с динамическими контейнерами до констант времени компиляции — C++ предлагает много интересных техник (как в этом знаменитом меме :)). В этой статье мы рассмотрим несколько продвинутых методов инициализации: от reserve() и emplace_back для контейнеров, до piecewise_construct и forward_as_tuple для кортежей. Благодаря этим техникам мы можем уменьшить количество временных объектов и более эффективно создавать переменные.

Давайте приступим!

Читать далее
Всего голосов 22: ↑19 и ↓3+20
Комментарии5

Профилирование Python — почему и где тормозит ваш код

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров22K

Представьте ситуацию: вы написали скрипт для обработки каких-то данных на ноутбуке, ушли попить кофе, а когда пятнадцать минут спустя вернулись, завершилось едва ли 10%.

Почему скрипт работает так медленно? Какая его часть тормозит? Дело в чтении данных, их обработке или сохранении? Как ускорить исполнение? Действительно ли скрипт вообще медленный?

Ответить на все эти вопросы поможет инструмент под названием «профилировщик» (profiler).
Читать дальше →
Всего голосов 48: ↑47 и ↓1+66
Комментарии10

Golang — архитектурный линтер

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров7.5K

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

В данной статье расскажу про свой бесплатный, open-source, линтер под MIT лицензией и чем он может быть полезен.

Читать далее
Всего голосов 17: ↑16 и ↓1+20
Комментарии1

Определение местоположения в Беспилотных автомобилиях (localization)

Уровень сложностиПростой
Время на прочтение10 мин
Количество просмотров3.1K

Всем привет, меня зовут Максим Гусев!

Я руководитель проекта в компании по разработке автономного транспорта, а так же студент ATU, Ирландия по Автономным ТС (магистерская степень). Хочу рассказать Вам, как роботы, беспилотники и любой автономный транспорт определяет где именно он находится в текущий момент времени.

Что внутри статьи?

Раздел I - введение и что сейчас происходит на рынке?

Раздел II - локализации на основе GNSS/GPS + Dead Reckoning.

Раздел III - локализация на основе среды (HD карты и 3 основных паттерна связанных с компьютерным зрением)

Разделе IV - современные концепции локализации.

Раздел V - итоги текущего состояния локализации.

Читать далее
Всего голосов 8: ↑8 и ↓0+8
Комментарии19

Мой терминал: alacritty, zsh, tmux, nvim

Время на прочтение7 мин
Количество просмотров30K

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

Читать далее
Всего голосов 26: ↑22 и ↓4+25
Комментарии27

Реализуем с нуля функцию косинуса на языке C

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров14K

Я изучил, как реализовать функцию косинуса при помощи нескольких разных подходов. Одна из реализаций почти в три раза быстрее, чем math.h, но придётся смириться с точностью до четырёх знаков после запятой.

Задавались ли вы когда-нибудь вопросом, как в математической библиотеке вашего любимого языка программирования реализованы тригонометрические функции, например, косинус? Это настолько популярная функция, что её можно встретить в каждой математической библиотеке, поэтому реализация должна быть довольно простой, ведь так? Ну уж нет. Почти совершенно точно, что это не так.

Моё исследование началось с того, что мой друг и коллега Стивен Марц работал над ядром операционной системы и я предложил, чтобы он отрисовал на экране функцию косинуса. Я часто использую косинус в качестве «hello, world» для графических приложений. Возникла проблема: его ядро не задействовало стандартную библиотеку C (а значит, прощай math.h!), а целевой платформой являлась архитектура RISC-V (а значит, никаких подобий команды fcos Intel!).

Так началось моё долгое приключение.
Читать дальше →
Всего голосов 43: ↑40 и ↓3+54
Комментарии29

Как выбрать красивые цвета для вашей инфографики

Время на прочтение10 мин
Количество просмотров39K


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

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

Статья не поможет найти хорошие градиенты или оттенки. Она предназначена для подбора красивых, чётких цветов для различных категорий информации (например, континентов, отраслей промышленности, видов птиц) в линейных, круговых, полосковых диаграммах и так далее.
Всего голосов 34: ↑33 и ↓1+44
Комментарии6

Qt? ImGUI? wxWidgets? Пишем свое

Время на прочтение16 мин
Количество просмотров23K

Привет, хабровчане! Хочу рассказать о своей системе UI, которую я написал для своего игрового движка, на которой делаю редактор для него же.

Читать далее
Всего голосов 75: ↑75 и ↓0+75
Комментарии29

Open Source распознавание речи SOVA

Время на прочтение16 мин
Количество просмотров30K
Мы в Наносемантике занимаемся виртуальными ассистентами (чат-ботами и голосовыми помощниками) для компаний с большими колл-центрами. Раньше мы использовали распознавание и синтез речи других компаний, а 1.5 года назад решили, что хотим быть самодостаточным вендором.



Если интересно, зачем нам это, что у нас получилось, а также для чего нам выкладывать ASR & TTS в Open Source – добро пожаловать под кат.
Всего голосов 21: ↑19 и ↓2+24
Комментарии32

12 принципов анимации в разработке видеоигр

Время на прочтение12 мин
Количество просмотров16K
image

В то время, когда видеоигры ещё находились в эпохе Pac-Man, аниматоры студии Disney Фрэнк Томас и Олли Джонсон перечислили в своей книге 1981 года «The Illusion of Life: Disney Animation» то, что сегодня считается базовыми правилами анимации — 12 основных принципов.

  1. Сжатие и растяжение (Squash & stretch)
  2. Сценичность (Staging)
  3. Подготовка, или упреждение (Anticipation)
  4. Использование компоновок и прямого фазованного движения (Straight ahead & pose to pose)
  5. Сквозное движение (или доводка) и захлест действия (Follow-through & overlapping action)
  6. Смягчение начала и завершения движения (Slow in & slow out)
  7. Дуги (Arcs)
  8. Дополнительное действие (Secondary action)
  9. Привлекательность (Appeal)
  10. Расчёт времени (Timing)
  11. Преувеличение, утрирование (Exaggeration)
  12. Профессиональный рисунок (Solid drawing)

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

Понимание этих основ анимации необходимо, поэтому нужно заново исследовать их через объектив видеоигровых анимаций.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

Изобретаем велосипед или пишем персептрон на С++. Часть 3

Время на прочтение5 мин
Количество просмотров5.6K

Изобретаем велосипед или пишем персептрон на C++. Часть 3


Реализуем обучение многослойного персептрона на C++ при помощи метода обратного распространения ошибки.



Читать дальше →
Всего голосов 6: ↑4 и ↓2+3
Комментарии0

Введение в Spring Boot: создание простого REST API на Java

Время на прочтение8 мин
Количество просмотров404K

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


Каждый раз, создавая очередное корпоративное Java-приложение на основе Spring, вам необходимо повторять одни и те же рутинные шаги по его настройке:


  • В зависимости от типа создаваемого приложения (Spring MVC, Spring JDBC, Spring ORM и т.д.) импортировать необходимые Spring-модули
  • Импортировать библиотеку web-контейнеров (в случае web-приложений)
  • Импортировать необходимые сторонние библиотеки (например, Hibernate, Jackson), при этом вы должны искать версии, совместимые с указанной версией Spring
  • Конфигурировать компоненты DAO, такие, как: источники данных, управление транзакциями и т.д.
  • Конфигурировать компоненты web-слоя, такие, как: диспетчер ресурсов, view resolver
  • Определить класс, который загрузит все необходимые конфигурации
Читать дальше →
Всего голосов 11: ↑6 и ↓5+1
Комментарии19

Игра на WebAssembly, часть 2: уровни и опыт, админка

Время на прочтение4 мин
Количество просмотров4.1K
В предыдущей статье получилось сделать прототип игры с вопросами. Но не получилось сделать это полноценно на WebAssembly. В этот раз предлагаю конвертировать этот прототип, сделав с него полноценное WebAssembly приложение, а так же добавить к нему атрибуты большинства игр — опыт и уровни игрока. А так же простую логику — при переходе на некоторые уровни будем открывать новые навыки.

Demo
Читать дальше →
Всего голосов 5: ↑5 и ↓0+5
Комментарии2

Обнаружение столкновений и теорема о разделяющей оси

Время на прочтение9 мин
Количество просмотров11K
В наше время компьютеры представляют собой мощные вычислительные машины,
способные выполнять миллионы операций в секунду. И естественно не обойтись без симуляции реального или игрового мира. Одна из задач компьютерного моделирования и симуляции состоит в определении столкновения двух объектов, одно из решений которой реализуется теоремой о разделяющей оси.


Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии18

Написать игровой движок на первом курсе: легко! (ну почти)

Время на прочтение8 мин
Количество просмотров27K
Привет! Меня зовут Глеб Марьин, я учусь на первом курсе бакалавриата «Прикладная математика и информатика» в Питерской Вышке. Во втором семестре все первокурсники нашей программы делают командные проекты по С++. Мы с моими партнерами по команде решили написать игровой движок. 

О том, что у нас получается, читайте под катом.

Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии26

Хеш-таблицы

Время на прочтение9 мин
Количество просмотров257K

Предисловие


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


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


image

Читать дальше →
Всего голосов 13: ↑8 и ↓5+9
Комментарии31

Хочу в IT. Рекомендации на тему того как научиться чему-то новому

Время на прочтение9 мин
Количество просмотров18K

image


Довольно часто на разных ресурсах вроде Stack Overflow я вижу вопросы в стиле: “Как стать разработчиком?”, “Какой язык программирования лучше учить?”, “А не поздно ли в IT после 30. И хотя в интернете уже вероятно огромное количество подобных статей, я все же хочу поделиться своей историей и советами, которые как мне кажется, могут помочь ребятам которые хотят в своей жизни попробовать что-то новое, но по разным причинам боятся.


Вкратце расскажу о себе, 3 года назад я понятия не имел, что такое программирование и что это за черная магия за которую готовы создавать такие условия для разработчиков. Я был обычным рабочим в автомастерской. Мне повезло и я познакомился с парнишкой который предложил мне научиться. Я имел упаковку комплексов: “Это не мое”, “Я уже слишком стар для того чтоб войти в IT” (мне тогда было 28), “Для этого надо было заканчивать универ” и т.д. в том же духе. Сейчас я Android разработчик в Tinkoff, участвую в разработке основного приложения банка. В свободное время помогаю некоторым ребятам учиться и в целом доволен своим выбором.


Наверное в любой сфере есть куча страшных слов которыми пугают все вокруг: Сопромат в инженерном деле, Коллоидная Химия, Сольфеджо в музыке, Матанализ и т.д. Так же и в программировании есть “Алгоритмы и структуры данных”, какие-то “Паттерны проектирования” от которых человека незначащего бросает в пот, а еще в добавок все эти мифы о том, что для того чтоб программировать надо знать чуть ли не высшую математику. Короче все эти вещи дико отпугивают людей когда они начинают читать форумы. А еще есть целая гора людей которые это все приправят тем, что вот тебе надо прочесть вот эти 20 томов по 1000 листов нудной теории, рассказы про то что надо уметь писать код чуть ли не в блокноте. В общем большое количество страшных историй которые отбивают все желание начинать.

Читать дальше →
Всего голосов 13: ↑6 и ↓7+2
Комментарии36

Хочу в геймдев: 27 ответов от 8 профи

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


Читать дальше →
Всего голосов 20: ↑18 и ↓2+18
Комментарии15

Симуляция гидравлической эрозии

Время на прочтение7 мин
Количество просмотров3.9K

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


Рисунок 1: небольшой водопад.

В этой статье я подробно расскажу о простом и быстром способе аппроксимации эффектов гидравлической эрозии.
Читать дальше →
Всего голосов 12: ↑12 и ↓0+12
Комментарии0
1
23 ...

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность