Search
Write a publication
Pull to refresh
128
0.3
Evengard @Evengard

Немного: реверсер, администратор, .NET программист

Send message

Приверженцы статической и динамической типизаций никогда не поймут друг друга. И TypeScript им не поможет

Reading time6 min
Views58K


Когда мы с другом учились в школе и только мечтали стать разрабами, мы думали как сделаем вместе какую-нибудь штуковину — игру или супер-полезную программу.

Я начал учить плюсы и C#, он — JavaScript. Закончили школу, отучились в универах, отслужили в армии, устроились на работы. Нас потаскало промышленной разработкой там и тут, и когда мы оба от нее подустали, вспомнили с чего начинали.

Собравшись уже матерыми разрабами, мы решили, наконец, сделать свой проект — двумерную видеоигру. Так как друг был чистый фронт, а я фулстек, очевидной платформой для нас стал браузер. Раньше я разрабатывал фронт только на TypeScript, и мы подумали, никаких проблем, TS — всего-лишь надмножество JavaScript. Возьмем его и все пройдет гладко. Как бы не так. Когда мы начали обсуждать работу, столкнулись с невероятной бездной непонимания друг друга.
Читать дальше →

F5 покупает NGINX

Reading time2 min
Views52K
image

Компания F5 приобретает NGINX для объединения NetOps и DevOps и предоставления клиентам согласованных сервисов приложений во всех средах. Сумма сделки оценивается приблизительно в $670 млн.

Команда разработки, в том числе Игорь Сысоев и Максим Коновалов, продолжит развивать NGINX уже в составе F5.
Читать дальше →

С новым годом, с новым MQTT/UDP

Reading time4 min
Views18K
Привет.

Как я уже писал недавно (Первая краткая статья о MQTT/UDP), MQTT/UDP — протокол на базе MQTT, но:

  • Ходит поверх UDP broadcast (не нужен брокер, почти не нужна конфигурация)
  • До неприличия простой в реализации (10 строк на си + UDP/IP стек — и вы отправляете данные с сенсора)
  • Все слышат всех

В некотором смысле это CAN, но поверх Ethernet-а.

Зачем.
Читать дальше →

Unreal Engine4 — PostProcess эффект сканирования

Reading time5 min
Views9.2K


В эти выходные у меня появилось немного свободного времени между занятиями (прим. автор на момент статьи получал степень магистра наук), и я решил вернуться к созданию шейдеров, придумав этот postprocess эффект сканирования. Я представил, что он используется в игре как своего рода эффект сканирования на расстоянии. Также мы используем некоторые простые искажения шума, чтобы эффект выглядел немного интереснее.

В этой статье я расскажу, как реализовать данный эффект на UE4. Существуют несколько способов, с помощью которых вы можете создать этот эффект. Один из этих методов был выбран мною.
Если интересно, добро пожаловать под кат

0xc00007b или установка драйверов из-под программы

Reading time4 min
Views8.6K

Вступление


Доброго времени суток. Знакомо ли вам исключение 0xc00007b? С момента перевода движка X-Ray под x64 приходило очень много репортов о проблеме 0cx00007b. В 90% случаев, это была проблема с отсутствием 64 битного драйвера OpenAL.

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

Что посмотреть в выходные: 5 фильмов про хакеров

Reading time3 min
Views20K


Создатели фильмов часто допускают ляпы и неточности в вопросах, связанных с технологиями (что приводит, в том числе к появлению постов вида «Почему хакинг в голливудских фильмах ужасен»). Но несмотря на это в мире есть и фильмы о хакерах, которые хочется пересматривать вновь и вновь. Ниже — наша подборка самых интересных историй в этом жанре.
Читать дальше →

Туториал по Unreal Engine. Часть 1: знакомство с движком

Reading time12 min
Views714K
image

Unreal Engine 4 — это набор инструментов для разработки игр, имеющий широкие возможности: от создания двухмерных игр на мобильные до AAA-проектов для консолей. Этот движок использовался при разработке таких игр, как ARK: Survival Evolved, Tekken 7 и Kingdom Hearts III.

Разработка в Unreal Engine 4 очень проста для начинающих. С помощью системы визуального создания скриптов Blueprints Visual Scripting можно создавать готовые игры, не написав ни строчки кода! В сочетании с удобным интерфейсом это позволяет быстро изготавливать рабочие прототипы.

В этой части туториала по Unreal Engine 4 мы ознакомимся с основными возможностями программы. Вот основные темы, которые будут в нём рассмотрены:

  • Установка движка
  • Импорт ассетов
  • Создание материалов
  • Использование Blueprints для создания объектов с простейшими функциями
Читать дальше →

Пишем для UEFI BIOS в Visual Studio. Часть 1 — разворачивание среды разработки, компиляция и запуск на отладку

Reading time8 min
Views37K

Введение


В этой статье будет описано, как быстро начать программировать для UEFI во фреймворке edk2 в среде Visual Studio, не тратя массу времени на настройку среды обычным способом, по оригинальным мануалам. Достаточно дать команду git clone ... в корневом каталоге диска, и это на самом деле все, среда будет полностью установлена и готова к работе. Требуются 64-разрядная Windows 7 и выше c Visual Studio 2008-2015. Эти два условия не обязательны, но тогда придется немного потрудиться над собиранием системы edk2-Visual Studio в единое целое, краткая памятка будет приведена.

Цель статьи — провести начинающего за руку по первому UEFI проекту, оставаясь в привычной ему среде. Для более опытных людей, надеюсь, будет интересным поработать в VS вместо привычной командной строки, или разобрать подход и перенести его в любимый Eclipse.

Начнем с простых вещей, вывода строки на консоль и русификации (довольно востребованная вещь, причем простая в реализации), потом будет работа с формами в HII (то, что называлось в обиходе страницами BIOS Setup), потом графика, потом Boot Manager, а потом видно будет (с).


Желающие — прошу пожаловать под кат.
Читать дальше →

Перехватываем запуск любого приложения в Windows и пытаемся ничего не сломать

Reading time14 min
Views54K

Если вы много занимаетесь отладкой приложений под Windows — вы, возможно, слышали о таком замечательном механизме, как Image File Execution Options (IFEO). Одна из предоставляемых им возможностей позволяет отлаживать приложение в условиях, более приближенных к боевым. Записав в нужное место в реестре специальный ключик, мы можем вместо программы автоматически запускать её отладчик, позволяя ему делать свои отладочные дела. Однако кто сказал, что этот механизм (фактически — перехвата запуска чего угодно) можно использовать только в подобных целях? Эта статья вовсе не об использовании вещей по назначению.


Под катом рассказ о том, как я попытался выжать побольше из этого механизма в своих добрых целях, и какие подводные камни мне встретились на пути. А у меня тут хорошие, отборные камни.

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

Как удалённо отлаживать через WinDbg не включая отладочный режим Windows

Reading time4 min
Views13K
Иногда при анализе какой-нибудь платной программы малвари случается так, что она не хочет нормально работать, если в памяти есть отладчик или включён отладочный режим Windows.
В таких ситуациях помогает использование виртуальной машины с подключённым к ней отладчиком (например, GDB или IDA). Это если программа не пытается «сломаться» и в виртуальной машине тоже.
Читать дальше →

Не убивайте Гонца (Don't Shoot the Messenger)

Reading time5 min
Views17K
image

После недавних террористических атак представители правительств по всему миру снова стали требовать установки бэкдоров в мессенджеры с поддержкой end-to-end (сквозного) шифрования. В то же время, журналисты при освещении этих заявлений также допустили типичную для них кучу ошибок. Благодаря этим ошибкам, я (глава службы поддержки Telegram, Маркус Ра — прим. пер.) получил много вопросов от удивлённых пользователей Telegram. Итак, давайте проясним несколько вещей.
Читать дальше →

Шишки, набитые за 15 лет использования акторов в C++. Часть I

Reading time10 min
Views13K

Данная статья является первой частью текстовой версии одноименного доклада с февральской конференции C++ CoreHard Winter 2017. Так уж получилось, что вот уже 15 лет я отвечаю за разработку фреймворка SObjectizer. Это один из тех немногих все еще живых и все еще развивающихся OpenSource фреймворков для C++, которые позволяют использовать Модель Акторов. Соответственно, за это время неоднократно доводилось попробовать Модель Акторов в деле, в результате чего накопился некоторый опыт. В основном это был положительный опыт, но есть и некоторые неочевидные моменты, про которые было бы хорошо узнать заранее. О том, на какие грабли довелось наступить, какие шишки были набиты, как можно упростить себе жизнь и как это сказалось на развитии SObjectizer-а и пойдет речь далее.


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

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

«Худой мир». Глава 6

Reading time13 min
Views12K
Продолжение фантастической повести. Для тех, кто забыл (или не знал), что там было раньше — ссылки на предыдущие части ниже.


Немного фантастики под катом

Как сделать так, чтобы у вас не кончались идеи: метод Айзека Азимова

Reading time4 min
Views98K
image

Одним словом Айзека Азимова можно описать так: плодовитый. Чтобы сравняться по количеству повестей, писем, эссе и других текстов, которые Азимов выдал за всю свою жизнь, вам необходимо будет писать полноразмерную повесть каждые две недели в течение 25 лет.

Как Азимов умудрялся выдавать столько хороших идей, в то время как у всех остальных их наберётся 1-2 штуки за всю жизнь? Чтобы ответить на этот вопрос, я изучил его автобиографию, "Это была хорошая жизнь".

Азимов не с рождения писал тексты 8 часов в день 7 дней в неделю. Он разрывал страницы, отчаивался, и периодически у него случались неудачи. В автобиографии Азимов делится тактикой и стратегией, выработанной им для того, чтобы идеи больше не заканчивались.

Давайте украдём у него всё, что можно.
Читать дальше →

Ищем и скачиваем непопулярные и старые файлы в интернете

Reading time14 min
Views215K
Преимущественно медиафайлы. На полном серьезе, без шуток.

Введение

Бывает, случается так, что вы хотите скачать альбом 2007 года исполнителя, который кроме вас известен 3.5 людям, какой-нибудь испанский ска-панк или малопопулярный спидкор европейского происхождения. Находите BitTorrent-раздачу, ставите на закачку, быстро скачиваете 14.7%, и… все. Проходит день, неделя, месяц, а процент скачанного не увеличивается. Вы ищете этот альбом в поисковике, натыкаетесь на форумы, показывающие ссылки только после регистрации и 5 написанных сообщений, регистрируетесь, флудите в мертвых темах, вам открываются ссылки на файлообменники вроде rapidshare и megaupload, которые уже сто лет как умерли.

Попытка скачать хотя бы один файл
Увы, частая ситуация в попытке хоть что-то скачать

Такое случается. В последнее время, к сожалению, случается чаще: правообладатели и правоохранительные органы всерьез взялись за файлообмен; в прошлом году закрылись или были закрыты KickassTorrents, BlackCat Games, what.cd, btdigg, torrentz.eu, EX.ua, fs.to, torrents.net.ua, и еще куча других сайтов. И если поиск свежих рипов фильмов, сериалов, музыки, мультиков все еще не представляет большой проблемы, несмотря на многократно участившееся удаления со стороны правообладателей контента из поисковых систем, торрент-трекеров и файлообменников, то поиск и скачивание оригинала (DVD или Blu-Ray) фильмов и сериалов или просто ТВ-рипов 7-летней давности на не-английском и не-русском языке — не такая уж простая задача.
Читать дальше →

6 легальных способов и 1 сомнительный вывода денег учредителями из бизнеса

Reading time6 min
Views144K


Вот такие вот они типичные учредители ООО. В нашем случае даже типажи из любимой всем классики очень схожи с нами (расшифровка внизу статьи).


А теперь по сути вопроса.


Остап Бендер знал четыреста сравнительно честных способов отъема денег у населения. Интересно, что бы он делал на месте учредителя российского ООО? Нам вот известны всего шесть честных или сравнительно честных способов вывода денег из компании, да и те связаны с дополнительными расходами.
Читать дальше →

NGINX: Перехват ошибок 5хх с помощью отладочного сервера

Reading time6 min
Views26K

Является ли ошибкой ответ 5хх, если его никто не видит? [1]


image

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

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

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

Сопроцессы: -что, -как, -зачем?

Reading time5 min
Views21K
Многие пользователи Bash знают о существании со-процессов, появившихся в 4-й версии Bash'a. Несколько меньшее количество знает о том, что сопроцессы в Bash не какая-то новая фича, а древний функционал KornShell'a появившийся ещё в реализации ksh88 в 1988 году. Ещё меньшее количество пользователей shell'ов умеющих сопроцессить знают синтаксис и помнят как это делать. Вероятно, я отношусь к четвёртой группе — знающих о сопроцессах, периодически умеющих ими пользоваться но так и не понимающих «зачем?». Я говорю «периодически», так как иногда я освежаю в голове их синтаксис, но к тому моменту, когда мне кажется что «вот тот случай когда можно применить co-proc» я уже напрочь забываю о том как это делать.

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

В заголовке статьи у нас 3 вопроса. Пойдём по порядку.

Что?


Что же такое co-process? Со-процессинг — это одновременное выполнение двух процедур, одна из которых считывает вывод другой. Для его реализации необходимо предварительно запустить фоновый процесс выполняющий функционал канала. При запуске фонового процесса его stdin и stdout присваиваются каналам связанными с пользовательскими процессами. Соответственно, один канал для записи, второй для чтения. Пояснять это проще на примерах, поэтому сразу перейдём ко второму вопросу.
Читать дальше →

Мультиплеер в быстрых играх (части I, II)

Reading time7 min
Views145K


  1. Части I, II (синглплеер с авторитарным сервером)
  2. Часть III (Появление врага)
  3. Часть IV (Хэдшот!)


Предлагаю вашему вниманию перевод статьи Fast-Paced Multiplayer (Part I): Introduction.

Разработка игры — само по себе непростое занятие. Но мультиплеерные игры создают совершенно новые проблемы, требующие разрешения. Забавно, что у наших проблем всего две причины: человеческая натура и законы физики. Законы физики привнесут проблемы из области теории относительности, а человеческая натура не даст нам доверять сообщениям с клиента.
Читать дальше →

(Перевод) Введение в разработку C++ в UE4

Reading time11 min
Views180K
Часть 1. Введение. Создание класса и добавление свойств. Расширение класса С++ с помощью Blueprint.
Часть 2. Классы геймплея. Структуры. Отражение (reflection) в Unreal. Object/Actor итераторы. Менеджер памяти и сборщик мусора.
Часть 3. Префиксы в именах классов. Целочисленные типы. Типы контейнеров. Итераторы контейнеров. Цикл For-each, хеш-функции.
Часть 4. Бонусная. Unreal Engine 4 для Unity разработчиков.

image

Эта статья является переводом части документации по UE4. Оригинальную статью вы можете найти пройдя по это ссылке.
Далее

Information

Rating
3,470-th
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
From 500,000 ₽
C#
.NET
PostgreSQL
Docker
Linux
English