Backend / ML Developer
Как устроен формат JPEG
Изображения формата JPEG встречаются повсюду в нашей цифровой жизни, но за этим покровом осведомлённости скрываются алгоритмы, устраняющие детали, не воспринимаемые человеческим глазом. В итоге получается высочайшее визуальное качество при наименьшем размере файла – но как конкретно всё это работает? Давайте посмотрим, чего именно не видят наши глаза!
Легко принять, как само собой разумеющееся, возможность отправить фотку другу, и не волноваться по поводу того, какое устройство, браузер или операционную систему он использует – однако так было не всегда. К началу 1980-х компьютеры умели хранить и показывать цифровые изображения, однако по поводу наилучшего способа для этого существовало множество конкурирующих идей. Нельзя было просто отправить изображение с одного компьютера на другой и надеяться, что всё заработает.
Unity: бесконечный процедурно генерируемый город, получаемый при помощи алгоритма WFC (коллапс волновой функции)
Как законодатели мод по теме Unity на российском рынке предлагаем вам почитать интересное исследование о практическом использовании алгоритма WFC (Wave Function Collapse), построенного по образу и подобию известного принципа квантовой механики и очень удобного при процедурной генерации уровней в играх. Ранее на Хабре уже публиковался подробный рассказ об этом алгоритме. Автор сегодняшней статьи Мариан Кляйнеберг рассматривает алгоритм в контексте трехмерной графики и генерации бесконечного города. Приятного чтения!
GameDev с нуля: От хакатона до собственной студии разработки игр. Часть 1
Создание процедурного генератора головоломок
src/main.cc
.Примерный план поста:
- Linjat — это логическая игра, в которой нужно закрыть все числа и точки в сетке линиями.
- Головоломки процедурно генерируются при помощи комбинации из солвера, генератора и оптимизатора.
- Солвер пытается решить головоломки так, как это делал бы человек, и присваивает каждой головоломке оценку интересности.
- Генератор головоломок создан таким образом, чтобы можно было с лёгкостью менять одну часть головоломки (числа) и при этом все остальные части (точки) менялись таким образом, чтобы головоломка оставалась решаемой.
- Оптимизатор головоломок многократно решает уровни и генерирует новые вариации из наиболее интересных, найденных на текущий момент.
Правила
Чтобы понять, как работает генератор уровней, нужно, к сожалению, разобраться с правилами игры. К счастью, они очень просты. Головоломка состоит из сетки, содержащей пустые квадраты, числа и точки. Пример:
Цель игрока — прочертить вертикальную или горизонтальную линию через каждое из чисел при соблюдении трёх условий:
- Линия, идущая через число, должна иметь ту же длину, что и число.
- Линии не могут пересекаться.
- Все точки необходимо закрыть линиями.
Пример решения:
Ура! Дизайн игры готов, UI реализован, и теперь единственное, что осталось — найти несколько сотен хороших головоломок. А для подобных игр обычно не имеет смысла пытаться создавать такие головоломки вручную. Это работа для компьютера.
TensorFlow для начинающих. Часть 1: общие сведения, установка библиотеки
Этот материал посвящён основам TensorFlow и рассчитан на читателей, которые ничего не знают о данной библиотеке.
Все об SVG анимации
Здесь не будет никаких плагинов, библиотек и прочего, речь пойдет только о чистом SVG.
Единственный инструмент, который я буду использовать, это Adobe Illustrator.
Создаём датчик контроля качества воздуха на InfluxDB, Grafana, Docker и Raspberry Pi
Массовый исход браузерных игр
Вернёмся 2007 год. В это время появились и получили хорошие отзывы критиков такие игры, как Halo 3, Bioshock, Portal, Call of Duty 4: Modern Warfare и Super Mario Galaxy. В том же году вышло много других выдающихся проектов, поэтому он считается лучшим годом в истории видеоигр. Но не для всех. Некоторым играм требовались достаточно мощные и дорогие компьютеры, а недавно вышедшие консоли продавались по ценам в диапазоне от 249.99 (Nintendo Wii) до 599,99 долларов (PlayStation 3). Для многих игроков возможность поиграть в современные игры была слишком затратной.
Однако в то время рынок видеоигр не заканчивался домашними консолями и мощными компьютерами: с самого зарождения Интернета на сцене стали появляться онлайновые браузерные игры. В такие игры можно было играть на любом компьютере с подключением к Интернету, и большинство из них было бесплатными. В том же 2007 году появились и завоевали популярность такие хорошо известные браузерные игры, как The Last Stand, The Impossible Quiz, Newgrounds Rumble, Pandemic и Trials 2. К сожалению, производитель ПО, необходимого для запуска этих игр, завершил его поддержку. Из-за этого теперь мы не можем играть в сотни и тысячи игр, это уничтожило многие годы разработки игр и игрового контента. Браузерные игры оставили глубокий след в истории видеоигр, но из-за завершения в 2020 году поддержки Flash мы потеряем эту историю и средства, необходимые для её сохранения.
Летняя интернатура Intel 0x7E3 ждет своих студентов
С чего лучше начать проект или как сделать так, что бы не было потом мучительно больно
Доброго всем времени суток. Настала очередь поговорить о проектировании проектов. По собственному опыту знаю, что иногда сложнее создать проект с нуля, чем привести в порядок то, что уже есть. Во многом это связано с тем, какое наследие Вы или Вам, оставляют после себя. В этой статье постараюсь рассказать на что стоит обратить особое внимание и предложить краткий план следования.
Не долго музыка играла… или как ОС Эльбрус так и не стала свободной
Один из заголовков СМИ: ОС «Эльбрус» стала свободной. Ссылки на скачивание
Разработчик линейки отечественных процессоров «Эльбрус» обновил на своем сайте раздел, касающийся специализированного ПО. В свободном доступе для скачивания оказалась ОС «Эльбрус» для стандартных процессоров архитектуры x86. В скором времени разработчики планируют открыть ее исходные коды.Другой заголовок этой же новости: Операционную систему «Эльбрус» уже можно скачать!
Да, это действительно могло бы стать очень важной вехой в развитии ОС Эльбрус. Могло стать, но к сожалению, пока не стало (надеюсь, что ключевым словом будет слово пока)
Открыто видео курса «Multicore programming in Java» на русском (30+30 часов)
Я занимаюсь IT-преподаванием. Читал Java Core (материалы тут).
Сейчас написал и продаю курс «Scala for Java Developers»
В этом посте решил открыть видео двух курсов (проходивших в режиме вебинаров) по многопоточности под JVM (это 16 + 16 двухчасовых лекций).
Больше о материалах (программа, полезные ссылки) можно прочитать в постах-объявлениях о вебинарах (Программа курса «Multicore programming in Java» (25 марта 2014), Программа и материалы курса «Multicore programming in Java» (31 июля)).
Курс рассчитан на слушателей, которые начинают изучать многопоточность с нуля (после крепкого курса Java Core, Middle Developer из чистого web-а или перешедшим из скриптовых/интерпретируемых языков программирования). Он не будет подходить тем, кто перешел из «суровых» С/С++ или ищет «академической высоты».
Детально рассматриваются темы Hardware, New Java memory Model, java.util.concurrent (atomics, blocking queues, thread pool, locks, synchronizers), message passing alternative, software transactional memory alternative, Java 7 Fork/Join, Java 8 Parallel Streams (+Lambdas, +Stream API), CSP/JCSP alternative
Простое объяснение алгоритмов поиска пути и A*
Часть 1. Общий алгоритм поиска
Введение
Поиск пути — это одна из тех тем, которые обычно представляют самые большие сложности для разработчиков игр. Особенно плохо люди понимают алгоритм A*, и многим кажется, что это какая-то непостижимая магия.
Цель данной статьи — объяснить поиск пути в целом и A* в частности очень понятным и доступным образом, положив таким образом конец распространённому заблуждению о том, что эта тема сложна. При правильном объяснении всё достаточно просто.
Учтите, что в статье мы будем рассматривать поиск пути для игр; в отличие от более академических статей, мы опустим такие алгоритмы поиска, как поиск в глубину (Depth-First) или поиск в ширину (Breadth-First). Вместо этого мы постараемся как можно быстрее дойти от нуля до A*.
Онлайн игра: howto, или как я проспорил девушке программисту
Всё началось весьма интригующе. Я имел неаккуратность поспорить со знакомой web-программисткой о том, кто быстрее и качественнее из нас сделает web-проект. Чтобы не сильно распыляться и не тратить много времени, решили, что нам будет дана всего одна неделя, а разрабатывать мы будем многопользовательскую игру!
По истечению этого срока проекты были сданы «оценочной комиссии», которой являлись наши общие друзья. И… Мой проект не выиграл. А самым обидным на тот момент казалось то, что, по условиям спора, я должен был выделить ещё одну неделю рабочего времени, чтобы помочь своей оппонентке в развитии её игры. Но спор есть спор!
Введение в RxJava: Ключевые типы
В вводной статье мы рассмотрели преимущества реактивного подхода в программировании на Java, а также ситуации в которых библиотека Rx бывает более или менее полезной. В этой части мы рассмотрим основные типы, на которых базируется концепция реактивного программирования и несколько дополнительных классов, которые помогут нам в понимании принципов работы библиотеки.
Intel INDE Multi-OS Engine
Лямбды и анонимные классы: кто больше жрёт
По мотивам недавних обсуждений здесь захотелось более широко взглянуть на вопрос о том, кто больше кушает — новомодные хипстерские лямбды или старые проверенные анонимные классы. Давайте устроим словесную перепалку между ними и посмотрим, кто выиграет. Как с любым добротным холиваром, даже если не удастся выяснить победителя, можно узнать много нового для себя.
Видеоаналитика: распознавание лиц, детектор очередей, поиск объектов на видео
Тайваньская компания 42Ark и американский производитель «умных» кормушек CatFi Box используют камеры видеонаблюдения для распознавания кошачьего лика
Немецкий электротехник Вальтер Брух в 1941 году установил CCTV-систему (Сlosed Circuit Television — система телевидения замкнутого контура) на полигоне, где испытывали ракеты «Фау-2». Это первый известный в истории случай использования видеонаблюдения на практике. Оператор должен был неотлучно сидеть перед монитором. Так продолжалось до 1951 года, пока не появились первые VTR (VideoTape Recorder) устройства, записывающие изображение на магнитную ленту.
Запись на носитель не избавила оператора от необходимости участвовать в процессе. Опознание лиц, определение местоположения объектов, даже детекция движения – все эти функции выполнял человек, сидящий перед монитором в режиме реального времени или изучающий постфактум архив видео.
Колесо прогресса катится дальше. Видеонаблюдение получило видеоаналитку, полностью изменившую процесс работы с системой. Помните историю про кота и нейросеть глубокого обучения? Да, это тоже часть видеоаналитики, но крохотная. Сегодня расскажем о технологиях, которые кардинально меняют мир CCTV-систем.
Автономная езда по тротуару посредством OpenCV и Tensorflow
Самым старым и известным курсом была онлайн-степень от Udacity.
Итак, в автономных машинах есть очень модный подход — Behavioral Cloning, суть которого заключается в том, что компьютер учится вести себя как человек (за рулем), опираясь только на записанные входные и выходные данные. Грубо говоря, есть база картинок с камеры и соотвествующий им угол поворота руля.
Information
- Rating
- 3,524-th
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity