Search
Write a publication
Pull to refresh
-9
0.1
Send message

2DOOM — браузерный 2D-трибьют легендарному шутеру

Reading time1 min
Views28K


Совершенно случайно наткнулся на 2DOOM и залип на полчаса. Игра вышла уже почти год назад, но на Хабре про нее инфы не нашел, поэтому решил поделиться.

2DOOM — очень стильный трибьют серии DOOM, в который можно играть прямо в браузере. Под катом несколько скриншотов и гифок проекта.
Читать дальше →

Идеальные карты нормалей для Unity (и других программ)

Reading time17 min
Views25K
… и как разобраться, что не так с вашим конвейером создания контента.


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


Узрите величие этой традиционной модели для тестирования карт нормалей!

Затем художник помещает её в игру, и она выглядит… немного не так.


Разве эти грани не должны быть плоскими?

Поверхности, которые должны быть плоскими, всё равно немного скруглены, некоторые даже вдавлены, и хуже того, по ним идут странные полосы. Знакомая ситуация? Некоторые из вас вероятно с ней сталкивались, думали: «ну ладно, наверно, лучше уже не получится», и двигались дальше. Возможно, накладывали немного грязи, чтобы замаскировать самые тяжёлые случаи.

Но на самом деле что-то не так в вашем конвейере создания контента. Это не всегда очевидно, но проблему можно решить!*

*Если считать, что в некоторых случаях вы можете вносить изменения в конвейер контента.
Читать дальше →

Асинхронное программирование (полный курс)

Reading time2 min
Views104K

Методы асинхронного программирования


Асинхронное программирование за последнее время стало не менее развитым направлением, чем классическое параллельное программирование, а в мире JavaScript, как в браузерах, так и в Node.js, понимание его приемов заняло одно из центральных мест в формировании мировоззрения разработчиков. Предлагаю вашему вниманию целостный и наиболее полный курс с объяснением всех широко распространенных методов асинхронного программирования, адаптеров между ними и вспомогательных проемов. Сейчас он состоит из 23 лекций, 3 докладов и 28 репозиториев с множеством примеров кода на github. Всего около 17 часов видео: ссылка на плейлист.

Читать дальше →

Курс лекций по JavaScript и Node.js в КПИ

Reading time2 min
Views125K

100 лекций по программированию в Киевском политехническом институте


Товарищи инженеры, как и было обещано в анонсе, половина лекций (а это 51) уже доступны для просмотра на ютюбе и я продолжу их записывать в 2019 году. Часть из нужно будет перезаписать, потому, что в первых лекциях не самый лучший звук и потому, что очень простые темы у меня пока не очень хорошо получаются. Лучше вышли сложные и актуальные темы, которые мне и самому более интересно рассказывать. Я бы не сказал, что это курс для начинающих, скорее, это курс для тех, кто уже знает синтаксис. За это время поступило множество предложений, как улучшить способ подачи материала: делить на более короткие лекции, подготовить задачи для практического освоения, записывать семинары и ответы на вопросы студентов, добавить в программу разбор целого ряда спорных и холиварных тем. Но не все сразу, я и так посвящаю этому треть жизни.

Читать дальше →

Анатомия Sega Dreamcast: вторая жизнь консоли

Reading time13 min
Views15K

В этой статье исследователь с сайта SonicRetro, хакер игр про Sonic и владелец более 400 игр для Dreamcast Doc Eggfan изложит удивительный постмортем о Dreamcast и выяснит, что произошло с устройствами, которые должны были попасть на полки магазинов, но в конечном итоге оказались переделанными самым интересным образом. Doc Eggfan, вам слово…

Размышляя о величайших несправедливостях в жизни, я задал себе вопрос — когда конкретно истёк срок жизни Dreamcast? Каким был точный час смерти, доктор? Мы знаем, что старушку и сегодня продолжают поддерживать самые увлечённые инди-разработчики, но когда конкретно завершилась официальная поддержка? Sega официально объявила о завершении производства оборудования для Dreamcast 1 февраля 2001 года, а самая последняя Dreamcast должна была сойти со сборочной линии в конце марта (в конце японского фискального года). В некоторых отчётах говорилось, что в то время остатки в размере 2 миллионов нераспроданных и никому не нужных Dreamcast печально лежали на каких то пыльных складах.


Или их аккуратно сложили в офисе Юкавы-сана

Примерно в мае 2004 года в Интернете циркулировали слухи о сверхредких позолоченных (или покрашенных золотой краской) Dreamcast, которые стали последними изготовленными машинами. Считалось, что они были созданы как последняя дань памяти консоли. Их связали с онлайн-соревнованиями Pro Yakyuu, проведёнными за несколько месяцев до этого, в августе 2000 года. Если вы хотите найти одну из них, то учтите, что судя по слухам, их было всего пять экземпляров.
Читать дальше →

Если .NET работает везде, то на Windows 3.11 и DOS тоже

Reading time3 min
Views23K
Я часто повторяю, что .NET Core — это опенсорс и он работает «везде». MonoGame, Unity, Apple Watch, Raspberry Pi и микроконтроллеры, дюжина линуксов, Windows и так далее. Уже немало.

Но кому-то всё-таки мало. Михал Стреховски хочет запускать C# действительно везде.


C# в Windows 3.11

Он запустил код C# в двух «невозможных» системах, которые теперь дополнили наше определение «работает везде». Хотя это забавные эксперименты (не повторяйте их в продакшне), они подчёркивают как технические способности Михала, так и гибкость базовой платформы.
Читать дальше →

Добавляем в Jupyter Notebooks красоту и интерактивность

Reading time7 min
Views84K
Многие используют в своей работе Jupyter Notebooks. Но с ростом сложности проекта появляются проблемы. В блокноте появляются ячейки с красными пометками для самого себя «перед запуском укажи число...» или «задай количество итераций исходя из...». Какой-то откат к командной строке получается.

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

Мениски в коленном суставе — что это, зачем это, как это лечится если повредилось?

Reading time7 min
Views78K
Решил сегодня поделиться с сообществом небольшой статьей, продолжающей знакомство с ортопедией и биомеханикой. Тема разговора – мениски коленного сустава. Что это такое, зачем они нужны, почему они такие важные и какие современные тенденции в лечении повреждений менисков.



Цель данной статьи – информированность людей.

Кому интересно – заходим под кат.

А суть-то в чём, или Минимизация исходников — проще, чем кажется

Reading time9 min
Views6K

В эти чудесные январские дни всех нас, конечно, волнует вопрос минимизации исходного кода с сохранением инварианта. В смысле, не волнует?!? Зря… Вот упал у вас компилятор, а программа гигантская — как-то неудобно такое разработчикам слать. И тут начинается веселье: а если вот это выкинуть? О, не падает — ладно, оставляем, а если это? — всё ещё падает, и это, и это, и то… Ой, я компилятор на старых исходниках запускал.


В то же время, автоматизация поиска багов — дело-то житейское: git bisect, llvm-bugpoint, creduce,… В статье я опишу yet another способ решения проблемы упрощения тестового случая, более-менее универсальный по отношению к языку программирования, и покажу некоторые примеры использования.

Читать дальше →

Приключения немецкого обедненного гексафторида урана в России. Часть 1. История и технологии обогащения

Reading time12 min
Views65K
Уже почти два месяца Гринпис и экологи-активисты ведут кампанию по запрету ввоза в Россию обедненного гексафторида урана (ОГФУ) из Германии. Я уже высказывался об этой истории в самом ее начале: В Россию начали завозить радиоактивные отходы из Европы? Разбираемся. За прошедшее время пришлось несколько раз выступать в СМИ на эту тему (тут вот подборка этих записей), поучаствовать в публичном обсуждении в Новоуральске, а также в очной публичной дискуссии с одним из главных оппонентов ввоза. А на прошлой неделе я побывал в пресс-туре и на самом комбинате УЭХК в Новоуральске, куда и везут ОГФУ.


Газовые центрифуги на УЭХК — крупнейшем в мире комбинате по обогащению урана

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

GHIDRA vs. IDA Pro

Reading time12 min
Views55K


Приветствую,


Думаю, пришла пора. Наболело/накипело/есть мнение. С выходом Гидры ситуация с инструментарием для реверс-инженеров достаточно сильно изменилась. Если раньше выбора чем пользоваться особо не было (здесь не будут упоминаться Binary Ninja, Hopper, JEB или Radare2, потому как в известных мне ИБ-компаниях и комьюнити ими пользуется очень малое количество человек, либо же порог вхождения в некоторые (привет, Радар) очень высок, либо же покрытие архитектур ограничено лишь x86/x64/ARM/ARM64/MIPS), то теперь мы имеем очень мощного конкурента Hex-Rays в лице АНБ с их GHIDRA.

Читать дальше →

В Россию начали завозить радиоактивные отходы из Европы? Разбираемся

Reading time5 min
Views107K
Вчера по СМИ пошла волна публикаций, инициированных заявлениями Гринпис о возобновлении ввоза в Россию якобы радиоактивных отходов из Европы. Причем ввоза к нам, под Екатеринбург, в Новоуральск. Для меня вся эта история пахнула событиями десятилетней давности, поскольку именно тогда она была у нас в первый раз (ох я тогда по бурной и горячей молодости славно «рубился» на эту тему с гринписовцами и прочими экологами в жежешечке), и поэтому, собственно, сейчас и говорят, что ввоз не начался, а возобновился. И ввозит все та же европейская, англо-германо-нидерландская компания Urenco.

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

В чем же суть? Давайте по пунктам.


Фото ввозимых «отходов». Источник — Znak.com.
Читать дальше →

Курс по C++ в CS центре, вторая часть

Reading time3 min
Views11K
Computer Science Center — это совместная инициатива Computer Science клуба при ПОМИ РАН, компании JetBrains и Школы анализа данных Яндекса.

Центр существует, чтобы дать возможность талантливым студентам и выпускникам развиваться в интересных им направлениях: Computer Science, Data Science или Software Engineering.

Курс по C ++ в двух частях в центре читает Валерий Михайлович Лесин, valery-l, преподаватель CS центра и совместной магистратуры ИТМО и JetBrains «Разработка программного обеспечения / Software Engineering», технический директор Simlabs.

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

Раскусим новые возможности языка и стандартной библиотеки: move семантику, bind/function, enable_if/if constexpr, сoroutines и другие. Посмотрим на некоторые характерные задачи: многопоточное программирование, использование библиотек в Windows и Linux и другие.

Приятного просмотра!
Смотреть видео

Async/await в C#: концепция, внутреннее устройство, полезные приемы

Reading time24 min
Views249K
Доброго времени суток. В этот раз поговорим на тему, в которой начинал разбираться каждый уважающий себя адепт языка C# — асинхронное программирование с использованием Task или, в простонародье, async/await. Microsoft проделали хорошую работу — ведь для того, чтобы использовать асинхронность в большинстве случаев нужно лишь знание синтаксиса и никаких других подробностей. Но если лезть вглубь, тема довольно объемная и сложная. Ее излагали многие, каждый в своем стиле. Есть очень много классных статей по этой теме, но все равно существует масса заблуждений вокруг нее. Постараемся исправить положение и разжевать материал настолько, насколько это возможно, не жертвуя ни глубиной, ни пониманием.


Читать дальше →

Как проводить код-ревью

Reading time18 min
Views55K
Из документации Google's Engineering Practices

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


См. также Руководство автора CL, в котором даются подробные советы разработчикам, чьи коммиты проходят ревью.
Читать дальше →

«И невозможное возможно»: превращаем черный ящик в белый с помощью бинарного анализа

Reading time9 min
Views8.6K
image

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

Оптический телеграф, СВЧ-сеть и башня Теслы: необычные вышки связи

Reading time3 min
Views17K


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

MVVM реализация конфигурации WPF приложения построенного на основе фреймворка Catel

Reading time11 min
Views7.9K

Реализация управления настройками ПО это, вероятно, одна из тех вещей, которую практически в каждом приложении реализуют по своему. Большинство фреймворков и прочих надстроек обычно предоставляют свои средства для сохранения/загрузки значений из какого-либо key-value хранилища параметров.


Тем не менее, в большинстве случаев реализация, конкретного окна настроек и связанных с ним множества вещей оставлена на усмотрение пользователя. В данной заметке хочу поделиться подходом, к которому удалось придти. В моем случае нужно реализовать работу с настройками в MVVM-friendly стиле и с использованием специфики используемого в данном случае фреймворка Catel.


Disclaimer: в данной заметке не будет каких-либо технических тонкостей сложнее базовой рефлексии. Это просто описание подхода к решению небольшой проблемы, получившегося у меня за выходные. Захотелось подумать, как можно избавиться от стандартного boilerplate кода и копипасты, связанной с сохранением/загрузкой настроек приложения. Само решение оказалось довольно тривиальным благодаря удобным имеющимся средствам .NET/Catel, но возможно кому-нибудь сэкономит пару часов времени или наведет на полезные мысли.

Читать дальше →

Промышленный реверс-инжиниринг

Reading time7 min
Views31K

Рассказ о процессе заимствования при разработке электроники на наглядном примере.



Запись лога работы лифта самодельным сниффером

Заполняем документы в Microsoft Word при помощи Python. Часть 2

Reading time2 min
Views22K

Размножаем документы

.
В предыдущем посте было рассмотрено как заполнить запрос в word с помощью python. В этот раз будет продемонстрировано как заполнить сразу несколько word документов данными из таблицы excel.

Перед тем как работать с программой, нам необходимо подготовить файл excel, где будут содержаться исходные данные. Создадим файл excel с такими данными или используем готовый:

image

Теперь обратимся к программе.
Читать дальше →

Information

Rating
5,602-nd
Registered
Activity