Pull to refresh
-1
0
Евгений Жирнов @evgeny_eJ

User

Send message

Ищем свободное парковочное место с Python

Reading time14 min
Views63K
image

Меня зовут Рушан, и я автор Telegram‑канала Нейрон. Не забудьте поделиться с коллегами или просто с теми, кому интересны такие статьи.

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

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

image

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

Поэтому давайте немного развлечёмся и напишем точную систему уведомлений о свободной парковке с помощью Python и глубокого обучения
Читать дальше →
Total votes 110: ↑107 and ↓3+104
Comments53

Как я нахожу парковочное место за 5 секунд

Reading time5 min
Views112K

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

Читать далее
Total votes 273: ↑272 and ↓1+271
Comments339

Сравнение библиотек логирования

Reading time26 min
Views70K


В сети огромное количество площадок формата Q&A где задаются вопросы из разряда:

  • Предложите С++ логер? (C++ logging framework suggestions)
  • Какой наиболее эффективный потоко-безопасный С++ логер? (What is the most efficient thread-safe C++ logger)
  • Библиотека логирования для игр (Logging library for c games)
  • Асинхронный потоко-безопасный С++ логер? (Asynchronous thread-safe logging in C++)

Люди делятся своим опытом и знаниями, но формат таких площадок позволяет лишь показать личные предпочтения отвечающего. К примеру, одним из самых производительных логеров чаще всего называют Pantheios, который даже по тестам производителя тратит больше 100 секунд на запись 1M строк лога, на современном железе это около 30 секунд, быстро ли это?

В этой статье я сравню наиболее известные и заслуженные логеры последних лет и несколько относительно молодых логеров по более чем 25 критериям.
Читать дальше →
Total votes 59: ↑59 and ↓0+59
Comments42

Руководство по оформлению HTML/CSS кода от Google

Reading time12 min
Views355K

От переводчика


С удовольствием ознакомился с этими рекомендациями и теперь предлагаю вам перевод.

Введение


Это руководство описывает правила для оформления и форматирования HTML и CSS кода. Его цель — повысить качество кода и облегчить совместную работу и поддержку инфраструктуры.

Это относится к рабочим версиям файлов использующих HTML, CSS и GSS

Разрешается использовать любые инструменты для минификации компиляции или обфускации кода, при условии, что общее качество кода будет сохранено.
Читать дальше →
Total votes 295: ↑286 and ↓9+277
Comments168

Естественная анимация в интерфейсах

Reading time6 min
Views14K

\begin{tikzpicture}
\def\t{0}
\def\r{3.1415}
\begin{axis}[width=12cm,height=7cm,
    ticks=none,
    xmin=-0.5, xmax=3.8,
    axis y line=left,axis x line=bottom,
    xlabel=$t$,ylabel=$x$, 
every axis x label/.style={at={(current axis.south east)},anchor=south},
every axis y label/.style={at={(current axis.north west)},anchor=west},
enlargelimits=true,mark size=1
    ]
\addplot[smooth,blue,domain=\t:\r,samples=80] {1-cos(deg(x*3))};
\addplot[mark=*] coordinates {(\t,0)};
\addplot[mark=*] coordinates {(\r,2)};
\end{axis}
\end{tikzpicture}


Рис. 0. КДПВ


Анимация в интерфейсе делает наглядным изменение его состояния. Например, при неудачной отправке длинная форма прокручивается к неправильно заполненному полю. Или увеличивающаяся по нажатию фотография раздвигает окружающие элементы.


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


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

Читать дальше →
Total votes 20: ↑18 and ↓2+16
Comments19

Unity и MVC: как прокачать разработку игры

Reading time13 min
Views81K
От переводчика
Привет, Хабр!

Я ненастоящий сварщик и перевод статьи дался мне тяжело, поэтому я назову его вольным — заранее очищу совесть, если где-то слишком сильно перефразировал оригинал. Буду рад указаниям на ошибки перевода, грамматики и т.п. в личку.

Перевод публикую с разрешения сайта Toptal, где выложен оригинал автора Eduardo Dias da Costa.

Обычно программисты знакомятся с профессией, начиная с Hello World. Затем ставят всё большие и большие цели и каждая новая задача приводит к важному уроку: чем больше проект, тем запутаннее код.


image

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


Поэтому существуют шаблоны проектирования; они — сборники правил для стандартизированного структурирования проекта, которые помогают разделить и организовать большую кодовую базу, и упростить работу с незнакомым кодом.

Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments9

Пользовательские атрибуты в Python

Reading time11 min
Views184K
Вы когда нибудь задумывались о том, что происходит, когда вы ставите точку в python? Что скрывает за собой символ str(“\u002E”)? Какие тайны он хранит? Если без мистики, вы знаете как происходит поиск и установка значений пользовательских атрибутов в python? Хотели бы узнать? Тогда… добро пожаловать!
Читать дальше →
Total votes 101: ↑96 and ↓5+91
Comments20

Детализация, отражения и пост-эффекты в GTA V

Reading time12 min
Views40K
От переводчика:

Данная публикация является продолжением материала
«Как происходит рендеринг кадра в GTA V». Теперь автор рассматривает вопросы детализации, освещения и пост-обработки кадра. Приятного чтения.

Уровень детализации


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

Огни ночного города


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

Именно с таким заявлением Аарон Гарбут, один из основателей и арт-директоров Rockstar North, выступил незадолго до релиза игры на PS3.

Так ли это? Давайте рассмотрим вот такую ночную сцену:

image
Огоньки «До»
Осторожно! Трафик!
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments8

Как происходит рендеринг кадра в GTA V

Reading time16 min
Views118K
Серия игр Grand Theft Auto прошла долгий путь с момента своего первого релиза в 1997 году. Примерно 2 года назад Rockstar выпустила GTA V. Просто невероятный успех: за 24 часа игру купило 11 миллионов пользователей, побито 7 мировых рекордов подряд. Опробовав новинку на PS3, я был весьма впечатлен как общей картинкой, так и, собственно, техническими характеристиками игры.

Ничто так не портит впечатление от процесса, как экран загрузки, но в GTA V вы можете играть часами, преодолевая бескрайние сотни километров без перебоев. Учитывая передачу солидного потока информации и свойства PS3 (256 Mb оперативной памяти и видеокарта на 256 Mb), я и вовсе удивился, как меня не выбросило из игры на 20-ой минуте. Вот где чудеса техники.

В этой статье я расскажу о проведенном анализе кадра в версии для ПК в среде DirectX 11, которая съедает пару гигов как оперативки, так и графического процессора. Несмотря на то, что мой обзор идет со ссылкой на ПК, я уверен, что большинство пунктов применимо к PS4 и в определенной степени к PS3.

Анализ кадра


Итак, рассмотрим следующий кадр: Майкл на фоне любимого Rapid GT, на заднем плане прекрасный Лос-Сантос.

image

Осторожно! Трафик!
Читать дальше →
Total votes 164: ↑158 and ↓6+152
Comments65

Дизайн и эволюция языка С++: выдержки

Reading time8 min
Views26K
В комментариях к переводу «30 лет С++» было заметно, что далеко не все этапы эволюции языка одинаково хорошо известны, иногда вообще нету представления о происхождении и процессе развития того или иного элемента синтаксиса или соответствующей семантики. Возможно, этой заметкой удастся заинтересовать читателей обратится к уже давно не новой книге автора языка с целью формирования более полной картины о C++. Книга рассказывает как происходило его развитие, что оказывало влияние на этот процесс и почему было отдано предпочтение одним подходам вместо других.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments11

Под капотом рендеринга навигационных данных в MAPS.ME

Reading time7 min
Views12K


Всем привет! Навигация в приложении MAPS.ME является одной из главных особенностей, на которые мы делаем упор. Недавно мы рассказали вам про пешеходную навигацию. Сегодня я хочу вам рассказать о том, как мы отображаем навигационные данные в MAPS.ME. Под навигационными данными я подразумеваю линии маршрута, стрелочки для отображения маневров и положение пользователя на маршруте. Данный пост не коснется ни алгоритмов построения маршрутов по данным OSM, ни алгоритмов выделения маневров, а исключительно рендеринга. Заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 42: ↑28 and ↓14+14
Comments27

Путеводитель по реализации 2Д платформеров (окончание)

Reading time8 min
Views22K
Окончание перевода статьи «путеводитель по реализации 2Д платформеров».
Начало

Тип №3: Битовые маски


Он подобен тайловому (плавному) методу, но вместо использования больших тайлов используется картинка для проверки столкновений для каждого пиксела. Это позволяет лучше проработать игру, но и значительно увеличивает сложность, использует больше памяти и требует что-то схожее с графическим редактором для создания уровней. Такая маска обычно не используется непосредственно для визуализации, поэтому нужны дополнительные средства — например, большое графическое изображение (подложка), индивидуально для каждого уровня. Из-за подобных проблем эта техника довольно редка в использовании, но позволяет добиться более качественных результатов, чем варианты, основанные на тайлах. Этот метод удобен для создания динамического окружения — разрушения можно просто «рисовать» в битовую маску для изменения уровня. Хороший пример — игры серии Worms.

Worms World Party с разрушаемой топографией
Примеры: Worms, Talbot’s Odyssey

Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments3

Путеводитель по реализации 2Д платформеров (начало)

Reading time10 min
Views48K
Так как ранее я был разочарован количеством информации по этому вопросу, я решил восполнить этот пробел, собрав разные виды реализации 2Д платформеров, описав их сильные и слабые стороны и порассуждав над деталями реализации.

Моей целью было создать исчерпывающий и понятный путеводитель по реализации 2Д платформеров.



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

Четыре решения


Мне приходит на ум четыре основных варианта решений при создании платформера. В рамках этой статьи будут рассмотрены все четыре, но из-за большого объема статья поделена на 2 части (прим. пер).
Читать дальше →
Total votes 56: ↑53 and ↓3+50
Comments30

Почему палитра современных фильмов оранжево-синяя

Reading time3 min
Views150K
image
Jupiter Rising (2015)

Может быть, вы не заметили, но за последние 20 лет в Голливуде развился устойчивый курс на оранжево-синюю палитру картинки. Также эта цветовая схема известна под именами «оранжевый и зеленовато-голубой» или «янтарный и зеленовато-голубой». Не верите? Давайте проверим. Предупреждаю сразу – после увиденного развидеть его уже не удастся, вы будете замечать эту палитру везде.
Я предупредил
Total votes 98: ↑95 and ↓3+92
Comments159

Retro Mortis: RTS, Часть 1: Все началось в пустыне…

Reading time14 min
Views15K
Часть 1: Все началось в пустыне... [Dune II: The Building of a Dynasty]
— Часть 2: И пришла Метель… [Warcraft: Orcs and Humans] перевод в процессе
— продолжение следует…


Предисловие


(Вы можете без всякого риска пропустить это предисловие)

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

Главная цель статьи — через поощрение критического анализа старых добрых игр стимулировать переосмысление заложенных в них подходов применительно к современной разработке. Я пытаюсь найти интересные решения в дизайне, которые с тех пор использовались широко или, наоборот, не использовались вовсе. С пониманием, как некоторые вещи стали такими, какими стали, и почему другие не дожили до наших дней, проще всего определить ключевые элементы, которые стоят (повторного) использования.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments34

NASA предлагает осваивать атмосферу Венеры прежде поверхности Марса

Reading time3 min
Views22K


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

Венеру никто никогда не упоминал в плане возможной площадки для высадки человека в ближайшем обозримом будущем. Это вполне логично, ведь температура на поверхности Венеры составляет около 500 градусов Цельсия, а давление — 92 атмосферы. Но на днях поступило интересное предложение от Дейла Арни и Криса Джонса (Dale Arney и Chris Jones), представителей одного из подразделений NASA (NASA’s Systems Analysis and Concepts Directorate at Langley Research Center).

Читать дальше →
Total votes 50: ↑43 and ↓7+36
Comments72

IPv6 под прицелом

Reading time14 min
Views76K


Казалось бы, зачем сейчас вообще вспоминать про IPv6? Ведь несмотря на то, что последние блоки IPv4-адресов были розданы региональным регистраторам, интернет работает без каких-либо изменений. Дело в том, что IPv6 впервые появился в 1995 году, а полностью его заголовок описали в RFC в 1998 году. Почему это важно? Да по той причине, что разрабатывался он без учета угроз, с той же доверительной схемой, что и IPv4. И в процессе разработки стояли задачи сделать более быстрый протокол и с большим количеством адресов, а не более безопасный и защищенный.
Подробности
Total votes 58: ↑55 and ↓3+52
Comments41

Kúla — 3D для всех камер

Reading time3 min
Views5.6K
Доброго времени суток!

Íris Ólafsdóttir—инженер-электрик из Технического университета Дании основала Kúla в 2011 году, и с тех пор усердно трудилась над превращением обычной камеры в 3D, на радость всем фотографам. В итоге, собранная ею команда разработчиков создала любопытную парочку объективов — Kúla Deeper, который без труда крепится к вашей DSLR камере и Kúla Bebe, для вашего смартфона.


Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments7

Parallels Desktop: вся правда о «яйцах»

Reading time4 min
Views11K
В этом посте мы хотим рассекретить пасхальные яйца, созданные за всю историю Parallels Desktop для Mac, и рассказать о причинах их создания. Easter Eggs — пасхальные яйца, шуточная функциональность, которую многие разработчики внедряют в свои продукты уже более 30 лет. Обычно они делают это просто «по приколу» — особенно, если шутка в софте не требует много времени на разработку. А если для реализации яйца приходится потрудиться (как в нашем случае)? Зачем тратить ресурсы на разработку такой функциональности в коммерческом продукте, которая не добавляет ей стоимости?

image

Чтобы вы сразу нашли «яйцо»: в последних версиях «пасхалка» находится в одном и том же месте. Верхнее меню -> Parallels Desktop -> About Parallels Desktop. Открывающееся окно с информацией об установленной версии иллюстрировано картинкой Мака с большой черной кнопкой посередине. Кликайте на нее.
Читать дальше →
Total votes 36: ↑32 and ↓4+28
Comments14

Autodesk не будет продавать ПО попавшим под санкции компаниям

Reading time1 min
Views34K
Компания Autodesk, крупный разработчик программного обеспечения для автоматизации архитектурного и инженерного проектирования (среди ее продуктов — широко известный инструмент для двухмерного проектирования Autocad), попросила российских партнеров прекратить поставку программных продуктов и обновлений некоторым российским компаниям, сообщает газета «Ведомости».
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments83

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity