Как стать автором
Обновить
69
0
Сергей @iOrange

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

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

Моя первая Ардуинка: переключатель USB

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

Пару лет назад я обзавёлся топовым смартфоном одной южнокорейской компании. Среди его особенностей оказалась поддержка DeX - возможности запуска на большом экране, подключаемом к док-станции через HDMI, отдельных приложений и даже Linux в контейнере (к сожалению, последнее было убрано в свежей версии Android). Кроме того, порадовала поддержка периферийных устройств - так, внешняя звуковая карточка Asus Xonar U7, с которой у меня пущен сигнал на ресивер с большими колонками, завелась без проблем. Отсюда возникло желание превратить телефон в мини-рабочее место, научив делить периферию с системником - например, чтобы вой кулеров не мешал слушать музыку или смотреть видео. По сути, требовалось KVM-решение, удовлетворяющее ряду хотелок. Так я познакомился с Arduino.

Читать далее
Всего голосов 41: ↑40 и ↓1+39
Комментарии31

Решаем мини-игру про взлом протокола в Cyberpunk 2077 за 50 строк на Python

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

Если вы хотя бы отдалённо интересуетесь играми и не прожили последнюю пару лет в тайге, то, вероятно, слышали что-нибудь о Cyberpunk 2077. После долгого ожидания она наконец вышла! И в ней есть мини-игра про взлом! И чем больше получишь в ней очков, тем ценнее приз! Может ли магия Python дать нам преимущество в этом жестоком Нете? Разумеется.

Краткое описание мини-игры: игроку даётся квадратная матрица и одна или несколько последовательностей шестнадцатеричных чисел, а также буфер определённой длины. Цель игрока — завершить наибольшее количество последовательностей, выбирая столько узлов, сколько позволяет буфер. Каждая последовательность заполняется значением, если выбранный узел является следующим узлом последовательности. В начале игры можно выбрать любое из значений в первой строке матрицы. После этого в каждом ходе можно попеременно выбирать N-ный столбец/строку, где N — индекс последнего выбранного значения. Если это ужасное описание вам не помогло, то более подробное можно прочитать здесь.
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии0

Рендеринг каустики воды в реальном времени

Время на прочтение7 мин
Количество просмотров11K
В этой статье я представлю свою попытку обобщения вычислений каустики в реальном времени с помощью WebGL и ThreeJS. Тот факт, что это попытка, важен, ведь найти решение, работающее во всех случаях и обеспечивающее 60fps — сложная, если не невозможная задача. Но вы увидите, что при помощи моей методики можно достичь достаточно приличных результатов.

Что такое каустика?


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

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


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

Чтобы добиться стабильных 60fps, нам нужно вычислять её на графической карте (GPU), поэтому мы будем вычислять каустику только шейдерами, написанными на GLSL.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии1

Автоматический вечный календарь с подсветкой

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


Статья с сайта Instructables на конкурс самоделок с применением станков с ЧПУ

Как по мне, самыми часто используемыми объектами в нашей жизни служат часы и календари. Течение времени всегда было одной из главных тем в жизни людей. И я такой же – думаю, что это можно понять по количеству моих проектов, связанных с часами. А теперь я хочу показать вам один из моих проектов с календарём.

Проектов календарей существуют тысячи, но мне всегда нравились вечные календари. Мне всегда была близка идея календаря, который можно использовать повторно, чтобы не менять офисный календарь каждый год. Минус таких календарей в том, что многие из них большие, отнимающие пространство штуковины, которые сложно читать и интерпретировать. Или бывают ещё кубики с днями недели, или кубики с месяцами, которые надо постоянно обновлять. Ещё бывают календари из кусочков (деревянных, металлических, магнитных) с числами от 1 до 31, которые нужно подбирать и размещать на специальной панели.
Всего голосов 30: ↑29 и ↓1+28
Комментарии9

TinyFL — драйвер фонарика на микроконтроллере

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

Привет, Habr!


Хочу рассказать историю о том, как мне в руки попал китайский налобный фонарик на светодиоде Cree XM-L и что дальше с ним стало.


Читать дальше →
Всего голосов 90: ↑86 и ↓4+82
Комментарии110

Почему только прокачка кодинга не сделает из тебя лучшего разработчика

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


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


Миф про хорошего разработчика гласит, что он:


  1. Пишет чистый код
  2. Знает много технологий
  3. Быстрее кодит задачи
  4. Знает кучу алгоритмов и шаблонов проектирования
  5. Умеет отрефакторить любой код по Clean Code
  6. Не тратит время на непрограммистские задачи
  7. 100% мастер своей любимой технологии

Так видят идеальных кандидатов HRы, и вакансии, соответственно, выглядят тоже так.


Но мой опыт говорит, что это не сильно соответствует действительности.

Читать дальше →
Всего голосов 61: ↑45 и ↓16+29
Комментарии72

Я не знал, как работают процессоры, поэтому написал программный симулятор

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

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

Я прочитал книгу «Но откуда он знает?» Кларка Скотта с детальным описанием простого 8-битного компьютера: начиная с логических вентилей, ОЗУ, транзисторов процессора, заканчивая арифметико-логическим устройством и операциями ввода-вывода. И мне захотелось реализовать всё это в коде.

Хотя я не настолько интересуюсь физикой микросхем, но книга просто скользит по волнам и красиво объясняет электросхемы и как биты перемещаются по системе — от читателя не требуется знание электротехники. Но мне недостаточно текстового описания. Я должен видеть вещи в действии и учиться на своих неизбежных ошибках. Так я начал реализацию схем в коде. Путь оказался тернист, но поучителен.
Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии33

Самые нестрашные яды

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

И снова привет, %username%!

Спасибо всем, кто оценил мой опус «Самые страшные яды».

Было очень интересно почитать комментарии, какими бы они ни были, было очень интересно отвечать.

Я рад, что «хит-парад» понравился. Если он не понравился — ну что ж, я сделал всё, что мог.

На написание второй части меня вдохновили именно комментарии и активность.

Итак, представляю очередную смертельную десятку!
Читать дальше →
Всего голосов 197: ↑192 и ↓5+187
Комментарии375

Прогнозирование физики на стороне клиента в Unity

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

TL;DR


Я создал демо, показывающее, как реализовать прогнозирование на стороне клиента физического движения игрока в Unity — GitHub.

Введение


В начале 2012 года я написал пост о как-бы-реализации прогнозирования на стороне клиента физического движения игрока в Unity. Благодаря Physics.Simulate() тот неуклюжий обходной способ, который я описал, больше не нужен. Старый пост до сих пор является одним из самых популярных в моём блоге, но для современного Unity эта информация уже неверна. Поэтому я выпускаю версию 2018 года.

Что-что на стороне клиента?


В соревновательных многопользовательских играх необходимо по возможности избегать читерства. Обычно это значит, что применяется сетевая модель с авторитарным сервером: клиенты отправляют серверу вводимую информацию, а сервер превращает эту информацию в перемещение игрока, а потом отправляет снэпшот получившегося состояния игрока обратно клиенту. При этом возникает задержка между нажатием клавиши и отображением результатом, что неприемлемо для любых активных игр. Прогнозирование на стороне клиента — это очень популярная техника, скрывающая задержку, прогнозируя то, каким будет получившееся движение и сразу показывая его игроку. Когда клиент получает результаты от сервера, он сравнивает их с тем, что спрогнозировал клиент, и если они отличаются, то прогноз был ошибочным и нуждается в коррекции состояния.
Всего голосов 28: ↑27 и ↓1+26
Комментарии6

Шпаргалки для тех, кто делает первые шаги

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


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

Шпаргалка по электронным компонентам (PDF, 168Kb)
Шпаргалка по контроллерам AVR (ч.1) (PDF, 61Kb)
Шпаргалка по контроллерам AVR (ч.2) (PDF, 61Kb)

PS: Там же, на сайте, имеется любопытный блог с описанием эффектных электронных поделок. Культура исполнения на высоте, приведены ссылки на open source прошивки.
Всего голосов 135: ↑130 и ↓5+125
Комментарии42

Реверсим «Нейроманта». Часть 4: Звук, анимация, Хаффман, гитхаб

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

Привет, как вы уже поняли, это продолжение моей истории реверс-инжиниринга и портирования «Нейроманта».



Реверсим «Нейроманта». Часть 1: Спрайты
Реверсим «Нейроманта». Часть 2: Рендерим шрифт
Реверсим «Нейроманта». Часть 3: Добили рендеринг, делаем игру

Сегодня начнём с двух хороших новостей:


  • во-первых, я больше не один — к проекту присоединился и уже успел внести ощутимый вклад пользователь viiri;
  • во-вторых, теперь у нас есть открытый репозиторий на github.

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

Всего голосов 20: ↑19 и ↓1+18
Комментарии5

Создание системы терминалов в UE4

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

Введение


Наша команда состоит из двух участников:

Сертач Оган (Sertaç Ogan)

Меня зовут Сертач, я занимаюсь программированием геймплея. Я разрабатываю проекты на Unreal Engine уже около 3,5 лет. Хотя моя должность называется «программист геймплея», мне нравится и программировать UI. Я работал и продолжаю работать над различными проектами, опубликованными в Steam.

Также я организую митапы по Unreal Engine в Турции. За прошлый год я организовал множество мероприятий и продолжаю заниматься их организацией. Наряду с этими мероприятиями я подумываю об организации семинаров о разработке игр совместно с университетами и старшими школами. В Турции много людей, которые хотят заниматься разработкой игр и мне нравится делиться накопленным опытом, потому что когда информацией делишься, её становится больше!
Всего голосов 15: ↑15 и ↓0+15
Комментарии0

Пакетная обработка фотографий в Blender

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


Всем привет!

Свободно-распространяемый 3D-редактор Blender обладает потрясающими возможностями по созданию трехмерной графики, но это далеко не все, что он умеет делать. В данном туториале я хочу показать как с помощью этой замечательной программы делать быструю и качественную пакетную обработку фотографий для последующего использования их в создании анимации вращения (облет объекта, демонстрация со всех сторон, фото-360).

В данном уроке мы не станем углубляться в детальные настройки и будем использовать предварительно созданный шаблон. Никаких специальных знаний потребоваться не должно, будет достаточно небольшого опыта в обработке изображений.
Всего голосов 38: ↑35 и ↓3+32
Комментарии10

Радиоконструктор: FM радио на базе Atmega328-P и RDA5807M

Время на прочтение5 мин
Количество просмотров47K
Добрый день, уважаемые хабражители!

Меня зовут Михаил Матвеев, и я хотел бы представить Вашему вниманию проект современного «радиоконструктора», основанного на МК Atmega328 и чипе RDA5807M.

Предыстория


Я думаю, многие из вас не только слышали, но и непосредственно сталкивались с такой платформой, как Arduino. И как показывает моя личная статистика, очень немногие заходят дальше, чем поморгать светодиодами. Когда я познакомился с Arduino в первый раз, меня останавливало то, что не было идей, как именно я бы мог использовать все возможности того же UNO на «полную катушку». Хватило только на сборку простенького робота на двух колёсах и сигнализации. Вместе с тем, хотелось сделать что-то более основательное.
Читать дальше →
Всего голосов 35: ↑33 и ↓2+31
Комментарии51

Математический фокус для MP3, JPEG и Гомера Симпсона

Время на прочтение6 мин
Количество просмотров109K
Девять лет назад я посещал курс физики в колледже, и мой профессор рассказал одну вещь, которая поразила меня. Я думаю, не будет преувеличением сказать, что это одно из наиболее широко используемых математических открытий — от оптики до квантовой физики, радиоастрономии, сжатия MP3 и JPEG, рентгеновской кристаллографии, распознавания голоса и МРТ. Этот математический инструмент называется преобразование Фурье, в честь французского физика и математика 18-го века Жозефа Фурье. Им пользовались даже Джеймс Уотсон и Фрэнсис Крик, чтобы декодировать структуру двойной спирали ДНК из рентгенограмм, произведенных Розалиндой Франклин. (Крик был экспертом по преобразованиям Фурье, он в шутку назвал свою книгу «Преобразования Фурье для орнитологов», чтобы объяснить суть Уотсону, заядлому любителю птиц).
Читать дальше →
Всего голосов 159: ↑145 и ↓14+131
Комментарии35

Окна на чистом WinAPI. Или просто о сложном

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

Казалось бы, что WinAPI уходит в прошлое. Давно уже существует огромное количество кросс-платформенных фреймфорков, Windows не только на десктопах, да и сами Microsoft в свой магазин не жалуют приложения, которые используют этого монстра. Помимо этого статей о том, как создать окошки на WinAPI, не только здесь, но и по всему интернету, исчисляется тысячами по уровню от дошколят и выше. Весь этот процесс разобран уже даже не по атомам, а по субатомным частицам. Что может быть проще и понятнее? А тут я еще…

Но не все так просто, как кажется.
Читать дальше →
Всего голосов 68: ↑67 и ↓1+66
Комментарии94

Подключаем геймпад от PS1/PS2 к Raspberry pi

Время на прочтение7 мин
Количество просмотров11K
На дворе майские праздники. А значит время есть шашлыки и употреблять различные разливные и бутилированные напитки. А я занимаюсь всякой ерундой. Мысль о данном проекте пришла, ещё до нового года. Но я долго не мог его реализовать. Прикупив первый геймпад (который я выкинул в последствии), и попробовав опросить его, я понял, что тут уже не обойтись простым чтением мануалов, хотя инфы достаточно. Благо, на это 23 февраля я получил в подарок не пену для бритья, упакованную в носки, а 600 р. с пожеланием не отказывать себе ни в чём на aliexpress. Где и была куплена китайская копия логического анализатора Saleae Logic. Те, кому интересно, что из этого получилось, могут ткнуть мышкой по кнопке ниже. А те, кому лень читать могут сразу посмотреть результат вот тут.


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

Backspace Invaders или как подключить светодиодный дисплей 64x64 к Arduino

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

4095 светодиодов и все-все-все

Как ни удивительно, с выводом изображения на такой дисплей вполне справляется контроллер ATmega328, что лежит в основе Arduino Uno. Из этого всего получилась «карманная» консоль (весом несколько килограмм), в которую прошита игра по мотивам Space Invaders. В планах придумать что-нибудь ещё, ведь свободной памяти осталось полно.

Под катом вы сможете прочитать о том, как такой дисплей устроен и как им можно управлять.
Всего голосов 35: ↑35 и ↓0+35
Комментарии32

Как подружить Custom View и клавиатуру

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

Введение


«МойОфис» работает на большинстве современных платформ: это Web-клиент, настольные версии приложения для Windows, MacOS и Linux, а также мобильные приложения для iOS, Android, Tizen. И если в разработке компьютерных приложений уже давно есть основные правила подхода к дизайну интерфейсов, то при создании приложений для мобильных устройств требуется отдельная проработка многих особенностей.


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

Игра HellWorm. История разработки

Время на прочтение5 мин
Количество просмотров18K
Доброго времени суток! Я хотел бы рассказать про свой опыт создания мобильной игры на Unity под названием HellWorm. Из названия можно понять, что игра про червяка. Ползаем, кушаем монетки, не врезаемся в препятствия. Казалось бы, клон классической игры, на которой большинство из нас выросло. Но, на самом деле, параллель со змейкой на этом заканчивается.


Игра же позиционирует себя как бесконечный раннер, в котором идет постоянное движение вперед, без возможности свернуть с вертикального маршрута. А сам червь, при всем при этом, может как угодно извиваться (да-да, и даже проползать через себя). Вследствие чего, хотелось бы заострить внимание на трудностях, которые я испытал пытаясь реализовать движение столь незамысловатого персонажа.
Читать дальше →
Всего голосов 40: ↑34 и ↓6+28
Комментарии22
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
London, Ontario, Канада
Зарегистрирован
Активность