Pull to refresh
21
0
Yevgeniy Logachev @infrapro

User

Send message

Перенос Alpine Linux на RISC-V

Reading time3 min
Views14K
После нескольких мучительных месяцев ожидания недавно я получил свой HiFive Unleashed, и это невероятно круто. Для тех, кто не в курсе, HiFive Unleashed — это первый одноплатник на RISC-V с поддержкой Linux, ориентированный на потребителя. Если ещё не понятно, RISC-V — это открытая, свободная архитектура набора команд, а HiFive — открытый процессор, реализующий её. И вот он на моём обеденном столе:


Плата реально классная. В течение ближайших месяцев постараюсь подготовить всё необходимое для сервиса непрерывной интеграции builds.sr.ht, через который будет автоматизирована оставшаяся часть переноса Alpine Linux, а также установка любых других операционных систем (в том числе не-Linux) и пользовательских программ, которые вы захотите портировать на RISC-V. Я вполне уверен, что это будет первый подобный проект на оборудовании RISC-V, открытый для публики.
Читать дальше →
Total votes 55: ↑55 and ↓0+55
Comments19

Точность depth наглядно

Reading time7 min
Views12K
Точность глубины — это боль в заднице, с которой рано или поздно сталкивается любой программист графики. На эту тему написано множество статей и работ. А в разных играх и движках, и на различных платформах можно увидеть множество различных форматов и настроек depth buffer.

Преобразование глубины на GPU выглядит неочевидным из-за того, как именно оно взаимодействует с перспективной проекцией, и изучение уравнений ситуацию не проясняет. Чтобы понять как это работает, полезно нарисовать несколько картинок.

image

Эта статья разделена на 3 части:

  1. Я попытаюсь объяснить мотивацию нелинейного преобразования глубины.
  2. Я представлю несколько графиков, которые помогут понять как нелинейное преобразование глубины работает в разных ситуациях, интуитивно и визуально.
  3. Обсуждение основных выводов Tightening the Precision of Perspective Rendering [Paul Upchurch, Mathieu Desbrun (2012)], касающихся влияния ошибки округления чисел с плавающей точкой на точность глубины.

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

Генерация окружения на основе звука и музыки в Unity3D. Часть 2. Создание 2D трассы из музыки

Reading time10 min
Views5.7K

Аннотация


Всем привет. Относительно недавно я написал статью Генерация окружения на основе звука и музыки в Unity3D, в которой привел несколько примеров игр, задействующих механику генерации контента на основе музыки, а так же рассказал про базовые аспекты подобных игр. В статье практически не было кода и я пообещал, что будет продолжение. И вот оно, перед вами. На этот раз мы попытаемся создать трассу для 2D гонки, в стиле Hill Climb, из вашей музыки. Посмотрим, что у нас получится..


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

Ещё один простой процессор на verilog

Reading time7 min
Views13K

В статье описан очередной примитивный процессор и ассемблер для него.
Вместо обычных RISC/СISC, процессор не обладает набором инструкций как таковым, есть только единственная инструкция копирования.


Подобные процессоры есть у Maxim серия MAXQ.


https://github.com/pavel212/cpu

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments14

Как взломали защиту от копирования консоли Sega Dreamcast

Reading time5 min
Views21K

После выпуска книги DOOM Black Book я отправился в отпуск в Японию, где мне удалось поиграть в Ikaruga на настоящем аркадном автомате в игровом зале Taito HEY токийского квартала Акихабара. Этот опыт снова возродил во мне интерес к последней видеоигровой консоли SEGA — Dreamcast.

В сети можно найти множество документов, сильно облегчающих процесс изучения вопроса. Есть два превосходных ресурса, способных быстро ввести в курс дела любого: замечательный веб-сайт Маркуса Комштедта, на котором описывается всё, вплоть до регистров GPU, и ресурс пользователя Jockel «Давайте создадим игру для Sega Dreamcast с нуля».

При изучении машины я обнаружил восхитительную историю о том, как хакеры быстро взломали защиту копий игр и разрушили последние аппаратные надежды SEGA.
Читать дальше →
Total votes 41: ↑39 and ↓2+37
Comments20

Apple Metal в MAPS.ME

Reading time10 min
Views19K
imageВсем привет!

В мире существует огромное количество приложений на OpenGL, и, кажется, Apple c этим не вполне согласна. Начиная с iOS 12 и MacOS Mojave, OpenGL переведен в статус устаревшего. Мы интегрировали Apple Metal в MAPS.ME и готовы поделиться своим опытом и результатами. Расскажем, как рефакторили наш графический движок, с какими трудностями пришлось столкнуться и, самое главное, сколько у нас теперь FPS.

Всех, кто заинтересовался или раздумывает над добавлением поддержки Apple Metal в графический движок, приглашаем под кат.
Читать дальше →
Total votes 82: ↑81 and ↓1+80
Comments22

Виртуальная память в ARMv7

Reading time5 min
Views8.2K
Здравствуйте!

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

Заголовок спойлера
Здесь не рассмотрены тонкости кэширования, DMA, LPAE и подобное. За более подробным описанием можно обратиться к литературе в конце статьи.
Читать дальше →
Total votes 34: ↑33 and ↓1+32
Comments2

Опасное приглашение, или Как работает боевая нагрузка к фишинговому письму

Reading time8 min
Views11K


Недавно специалисты PT ESC обнаружили документ формата Publisher с названием «Приглашение 29–30 ноября 2018.pub» (1edd5b6a02ec82cec381c1a1ec74a67e). В этом материале мы расскажем, как обычный с виду документ превращается в троян, позволяющий злоумышленнику захватывать изображение с веб-камер, записывать звук по команде или при обнаружении окна Skype, запускать PowerShell-скрипты, делать скриншоты экрана, копировать файлы с медиаустройств.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments14

Заблуждения программистов об именах — с примерами

Reading time10 min
Views28K


В 2010 году Патрик Маккензи написал знаменитую статью «Заблуждения программистов об именах», перечислив 40 фактоидов, которые не всегда верны в отношении человеческих имён.

Думаете, программисты сели, подумали и изменили обработку имён в компьютерных системах? К сожалению, не совсем. Нас по-прежнему повсеместно просят заполнить онлайн-формы, которые предполагают обязательное наличие имени и фамилии (причём именно в таком порядке). Эти системы по-прежнему предполагают, что наши имена всегда можно записать символами алфавита, зачастую только ASCII.
Читать дальше →
Total votes 40: ↑35 and ↓5+30
Comments56

Быть или не быть… Использовать ли www на своём домене?

Reading time5 min
Views24K
В течение 20 лет или около того идёт дискуссия, использовать ли www в каноническом имени хоста (CNAME) вашего веб-сайта. Так что, использовать или нет?



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

Для вас как IT-администратора вашим доменом будет ваша сеть. Разумно дать домену название. Для этого приспособлена система DNS, поэтому вы регистрируете доменное имя, например, example.com. Теперь, под этим доменом у вас будут свои хосты. Каждая машина с подключением к сети считается хостом. Машина для обслуживания документов WWW, естественно, получит в вашем домене имя хоста www, так что её полное доменное имя (FQDN) будет www.example.com. Вы сделаете то же самое и для остальных хостов в своей сети, есть у вас веб-сервер или нет. Так вы наводите порядок в своей сети.
Читать дальше →
Total votes 29: ↑19 and ↓10+9
Comments20

Троянский пингвин: Делаем вирус для Linux

Reading time6 min
Views22K
Нет, я не собираюсь рассказывать, как написать своего шифровальщика-вымогателя, майнера или эксплуатировать супер-новую уязвимость, как вы могли подумать. И тем более я не горю желанием поднимать холивар «Linux безопаснее Windows?(да)». Моей целью было написание простого вируса для linux, некого, так сказать, «Just for Fun», единственной функцией которого является распространение своей копии. О том, что у меня получилось, я расскажу в этой статье. В конце я приведу ссылку на GitHub с исходниками.

image
Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments66

Конференция DEFCON 21. DNS может быть опасен для вашего здоровья. Часть 1

Reading time12 min
Views9.7K
Меня зовут Роб Стакл, я консультант по безопасности из Феникса, штат Аризона, и в основном работаю пентестером. Я участвую в конференциях DefCon с 1996 года, увлекаюсь высотной фотографией, а в эти выходные была одиннадцатая годовщина нашей свадьбы. Я хочу поблагодарить мою удивительную и понимающую жену Линду, которая не ожидала, что моё участие в DefCon означает, что каждый год я буду вынужден проводить годовщину нашей свадьбы в Вегасе, о чём я очень сожалею.



Я собираюсь поговорить с вами о нескольких вещах, связанных с исследованиями, над которыми я работал несколько последних лет. Их объединяет общая тема — если вы не мониторите свой DNS трафик и не понимаете, что там происходит, когда всё в порядке, то вы наверняка не обратите внимания, когда с ним начнут происходить плохие вещи. Я «насиловал» DNS в течение нескольких лет и это всегда было одним из моих любимых векторов атаки. Вы можете потратить целое состояние на упрочнение периметра сети, но если я могу получить контроль над одним из ваших устройств, поверьте мне, ваша игра закончена.
Total votes 19: ↑17 and ↓2+15
Comments9

OpenSceneGraph: Инкапсуляция машины состояний OpenGL

Reading time14 min
Views3K
image

Введение


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

Однако такой подход неудобен при работе с OSG. По этой причине машина состояний OpenGL инкапсулируется классом osg::StateSet, который берет на себя операции по работе со стеком состояний и их установке в процессе обхода графа сцены.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments1

Стример из MiniDV-видеокамеры

Reading time4 min
Views14K
Иногда может захотеться странного. Вот вроде бы лежит себе видеокамера стандарта MiniDV и лежит. Есть не просит. А что если взять и записать на её кассеты вовсе даже не видео, а, скажем, файлы. Запись-то всё равно цифровая. Пусть объём кассеты всего лишь около 13 ГБ (под данные получилось занять около 9.5 ГБ), пусть скорость чтения 3.5 МБ в секунду, но ведь получится простой домашний стример. Так сказать, “стример для бедных”. Почему бы не отправить на несколько кассет, скажем, какие-либо важные файлы. Просто так, на всякий случай. Попробуем!
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments27

Вторая жизнь электродуховки «Харьков»

Reading time14 min
Views62K
Всем привет.

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

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

Что делать?

Правильно! Воскрешать.
Читать дальше →
Total votes 204: ↑203 and ↓1+202
Comments123

Манипуляция мешами в реальном времени на Unity

Reading time17 min
Views45K
image

Одно из преимуществ Unity в качестве платформы для разработки игр — её мощный 3D-движок. В этом туториале вы познакомитесь с миром 3D-объектов и манипуляций мешами.

В связи с ростом технологий виртуальной и дополненной реальности (VR/AR) большинство разработчиков сталкивается со сложными концепциями 3D-графики. Пусть этот туториал будет для них отправной точкой. Не волнуйтесь, здесь не будет сложной 3D-математики — только сердца, рисунки, стрелки и куча интересного!
Читать дальше →
Total votes 16: ↑15 and ↓1+14
Comments4

iOS runtime mobile exploration with Objection, или Хакаем собственное приложение

Reading time4 min
Views6.7K


Автор: Андрей Батутин, Senior iOS Developer, DataArt.

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

Иногда причиной были мои косяки. Иногда — моих коллег. А иногда — даже самого Apple Inc.

Но самые убийственные сценарии были связаны с багами, которые воспроизводились только на аппсторовских/релизных сборках. Ничто так не ставит в тупик и не заставляет выть перед макбуком, как невозможность подключить дебагер к собственному приложению и посмотреть, что же там происходит.
Читать дальше →
Total votes 17: ↑16 and ↓1+15
Comments12

История об одном глазе и 20 операциях (не читать впечатлительным) или он хотел быть летчиком, а его не пускали в небо

Reading time9 min
Views63K
Операции на глазах по улучшению зрения

Как вы думаете, сколько операций можно сделать на одном глазу? Клинический случай одного из моих пациентов подтверждает, что более 20 операций разного рода – не предел. Хотя, вне сомнения, этот случай – рекорд для России и мировой офтальмологии.

В 1978 году все было банально – был 18 летний мальчик (назовем его «А»), который хотел стать летчиком-испытателем как его отец. Этому мешала слабая близорукость правого глаза – всего минус 1, для жизни не мешала, но будущему пилоту нужно было хорошее зрение. Он решил подправить оптику одного глаза путем кератотомии – старого «ручного» метода коррекции в институте Фёдорова (конечно, по знакомству), но что-то пошло не так. Это была первая операция. Затем еще четыре в России, затем еще семь – в Швейцарии. Летчиком он не стал, зато стал олигархом, человеком, управляющим серьезными бизнес-проектами, но не управляющим ситуацией со своим зрением.

Ко мне «А» попал совершенно разочарованный в мировой офтальмологии, со зрением 10%, невозможностью коррекции стандартными способами и высоким внутриглазным давлением. И это был молодой 50-летний бизнесмен, по жизни — успешный (это важно – потому что дальше тоже не все пошло «так»). Так вот – следующие восемь операций – мои. И хотя мы рассчитывали, что одной-двух будет достаточно – пришлось пережить почти тотальную офтальмохирургию – все возможные виды операций.

Кстати, была бы вместо кератотомии коррекция СМАЙЛ (ReLEX SMILE) или, хотя бы, Femto-LASIK – не о чем бы было писать – ничего подобно при них невозможно!
Читать дальше →
Total votes 122: ↑121 and ↓1+120
Comments152

Загрузка ядра Linux. Часть 1

Reading time12 min
Views62K
От загрузчика к ядру

Если вы читали предыдущие статьи, то знаете о моём новом увлечении низкоуровневым программированием. Я написал несколько статей о программировании на ассемблере для x86_64 Linux и в то же время начал погружаться в исходный код ядра Linux.

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать дальше →
Total votes 69: ↑67 and ↓2+65
Comments40

Руководство по доведению «до кондиции» клона популярного китайского мини-роутера Hame A15, он же «unbranded A5-V11»

Reading time24 min
Views60K

Если я видел дальше других, то потому, что стоял на плечах гигантов.
И.Ньютон


Думаю многим известен маленький китайский роутер Hame A15 (он, а точнее массовые его копии, с улучшенными по сравнению с оригиналом ТТХ, одинаково хорошо гуглятся по ключевым словам 3g/4g router как на ebay, так и на aliexpress). Сегодня я хотел расказать, как я довел до ума роутер за 6,5$ и потратил на это 20$. Зачем? А примерно за тем же, зачем из бисера плетут браслетики — чтобы микромоторику потренировать и зрение подсадить (корпуса компонентов в основном 0402 :) Большей частью ради спортивного интереса, хотя немаловажно и то, что роутерчик этот, на сегодняшний день — моя любимая база для различных проектов (даже несмотря на сложность доступа к GPIO), вместо «народных» NEXX WT3020F, TP-Link TL-MR3020, TP-Link TL-WR703N и иже с ними. Причиной тому в первую очередь является его размер и форма печатной платы, удобная для встраивания куда угодно (на фото можно оценить размеры). В дальнейшем, чтобы избежать путаницы терминологии, буду называть показанное ниже устройство так, как его называет wiki openwrtA5-V11.


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

Information

Rating
Does not participate
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity