Поделюсь с вами успешным опытом разработки рендера в браузере большой, постоянно расширяющейся анимационной сцены, состоящей из множества мелких двигающихся объектов, зацикленных в 5 секунд.
начинающий гейдевелопер
Elden Ring игнорирует 20 лет дизайна опенворлдов, и игре это только на пользу
Как и любой проект From Software, Elden Ring похвалили практически со всех сторон — и пресса, и игроки. Любопытно, что несмотря на восторженные отзывы большинства, некоторые разработчики считают, что «ужасное управление» и «плохой UX» являются секретом популярности проекта.
Под катом перевод статьи, в которой автор разбирается, как Elden Ring игнорирует все традиционные приемы дизайна открытых миров за последние 20 лет, и почему это к лучшему.
Начинающему сетевому программисту
Тема сетевого программирования является для разработчиков одной из важнейших в современном цифровом мире. Правда, надо признать, что большая часть сетевого программирования сосредоточена в области написания скриптов исполнения для web-серверов на языках PHP, Python и им подобных. Как следствие - по тематике взаимодействия клиент-сервер при работе с web-серверами написаны терабайты текстов в Интернете. Однако когда я решил посмотреть, что же имеется в Интернете по вопросу программирования сетевых приложений с использованием голых сокетов, то обнаружил интересную вещь: да, такие примеры конечно же есть, но подавляющее большинство написано под *nix-системы с использованием стандартных библиотек (что понятно – в области сетевого программирования Microsoft играет роль сильно отстающего и менее надежного «собрата» *nix-ов). Другими словами все эти примеры просто не будут работать под Windows. При определенных танцах с бубнами код сетевого приложения под Linux можно запустить и под Windows, однако это еще более запутает начинающего программиста, на которого и нацелены большинство статей в Интернете с примерами использования сокетов.
Ну а что же с документацией по работе с сетевыми сокетами в Windows от самой Microsoft? Парадоксальность ситуации заключается в том, что непосредственно в самой документации приведено очень беглое описание функций и их использования, а в примерах имеются ошибки и вызовы старых «запрещенных» современными компиляторами функций (к примеру, функция inet_addr() - https://docs.microsoft.com/en-us/windows/win32/api/winsock2/nf-winsock2-listen ) - такие функции конечно же можно вызывать, заглушив бдительность компилятора через #define-директивы, однако такой подход является полным зашкваром для любого даже начинающего программиста и категорически не рекомендуется к использованию. Более того, фрагмент кода в примере от Microsoft по ссылке выше.
Ассeмблерные хаки из книги «xchg rax, rax»
Разбор фрагментов кода из загадочной книги, которая содержит только ассемблерный листинг и никаких комментариев. Часть 1
Философия эволюции и эволюция интернета
Текст не о философии в интернете и не о философии интернета – философия и интернет в нем строго разведены: первая часть текста посвящена философии, вторая – интернету. В качестве связующей оси между двумя частями выступает понятие «эволюция»: разговор пойдет о философии эволюции и об эволюции интернета. Сначала будет продемонстрировано, как философия – философия глобального эволюционизма, вооруженная концептом «сингулярность» – неизбежно подводит нас к мысли, что именно интернет является прообразом будущей постсоциумной эволюционной системы; а потом и сам интернет, вернее логика его развития, подтвердит право философии рассуждать на, казалось бы, сугубо технологические темы.
Простой backend на C++: это возможно?
Была у меня мечта - писать backend на C++. А вот разбираться в unix socket'ах, TCP, многопоточной/асинхронной обработке запросов и во многом другом совсем не хотелось. Не верил я, что до сих пор нет каких-то минималистичных фреймворков. И сегодня я вам расскажу, как можно просто сделать HTTP API микросервис на C++ с помощью фреймворка Drogon.
Вычисления с фиксированной точкой. Основные принципы (ч.1)
Введение или зачем этот топик
Читая Хабрахабр, я натолкнулся на два топика, «выводящие на чистую воду» вычисления с плавающей запятой.
В одном из них достаточно подробно и качественно дана выжимка из стандарта IEEE754 и основные проблемы при вычислениях с плавающей запятой, другой — короткий топик-заметка про то, что не все так хорошо при вычислениях на ПК. При этом даются рекомендации в случае, когда важна математическая точность результата, использовать целочисленные вычисления, «фиксировать запятую» или как минимум проверять результаты, выдаваемые платформой (компилятор + процессор).
Несмотря на то, что советы дельные, понять, как использовать целочисленные вычисления там, где до этого была плавающая запятая, не так просто, особенно без математической подготовки. Достаточно занимательна в этом смысле попытка одного из «хабровчан» разобраться с фиксированной точкой методом экспериментов.
Данный топик — краткое введение, которое должно дать представление о вычислениях с фиксированной точкой. Математика в данной статье не должна никого напугать — все очень примитивно. Сразу прошу простить: среди моих знакомых устоявшимся выражением является именно «фиксированная точка» (от англ., fixed-point), а не «запятая», поэтому я буду придерживаться именно этого термина.
Взламываем ТВ-приставку, чтобы получить плацдарм для хакерских атак
Под катом вас ждет профессиональный экскурс в безопасность низкоуровневого ПО от одного из наших сотрудников. Вы узнаете, как получить доступ к Nand-памяти без программатора, обмануть загрузчик нулевого уровня и превратить Android-приставку в зомби за десять секунд.
Как энтузиасты возвращают «старый» интернет
На этой неделе сценарист фильма «Дюна» Дени Вильнёв рассказал, что писал сценарий в программе Movie Master на MS-DOS — так как не любит перемен. И пока такие энтузиасты используют старое программное обеспечение в силу привычки, другие идут гораздо дальше в своих начинаниях и возвращают интернет во времена, когда страницы были минималистичны, а протоколы — проще сегодняшних.
Как посчитать синус быстрее всех на хабре
Несмотря на свою кажущуюся банальность, темы о вычислении синуса достаточно регулярно появляются на хабре. И каждый раз их авторы или делают сомнительные утверждения, или получают сомнительные результаты. Не в силах более терпеть, я тоже решил поучаствовать и внести свой, не менее сомнительный вклад в этот вопрос.
Освежите ваш COBOL: почему на язык 60-летней выдержки вдруг резко возник спрос?
Давным-давно, когда мир был юн, и компьютеры в нем были в новинку, я учился по программе на младшего сотрудника (Associate Degree) по обработке данных – программ по «компьютерным наукам» тогда не было – и в рамках этой программы преподавались бухгалтерское дело, математика, статистика, а также три языка программирования: ассемблер IBM/360, FORTRAN и COBOL. К 80-м студентам уже рассказывали, что COBOL мертвый язык, и никто его больше не изучают.
Ныне государственные учреждения и банки умоляют прислать им COBOL-щиков, специалистов по языку, который не хочет умирать.
Энвелоп фильтр для гитары своими руками почти с нуля
Фильтр низких частот управляемый напряжением обычное дело для аналоговых синтезаторов, но на рынке гитарной обработки сложно найти, что то подобное.
Подавляющее большинство подобных диу педалей имеют очень урезанный генератор огибающей, что ограничивает их использование.
В очередной раз не найдя подходящую по функционалу педаль, решил собрать ее сам из того что было под рукой.
Для тех кому лень читать.
По ссылке доступны все необходимые файлы и инструкции по заказу плат, комплектующих и сборке педали:
OVERLY LOWERLY (Guitar Pedal) — ссылка на гитхаб со всем необходимым
В самом низу постав добавлю короткое видео с работой устройства.
(Ссылка на видео есть так же на странице в гитхабе).
Как я портировал DOS игру
Решил портировать одну старую давно забытую игрушку с DOS на современную платформу. Эта игра, в своё время, привлекала ураганным геймплеем, неплохой разрушаемостью, возможностью включить всё оружие одновременно и устроить настоящий бедлам. В 2021 году играть в такое всё ещё интересно, но делать это в родном разрешении 640х480, как-то не очень. Поэтому решил портировать игру и накатить хай-рез патч. Получилось!
Свои потоки ввода-вывода в C++ с помощью std::streambuf
В тексте статьи будет часто встречаться слово «поток», что означает именно поток ввода-вывода ((i/o)stream), но не поток выполнения (thread). Потоки выполнения в статье не рассматриваются.
Введение
Потоки из стандартной библиотеки — мощный инструмент. Аргументом функции можно указать поток, и это обеспечивает ее универсальность: она может работать как со стандартными файлами (fstream) и консолью (cin/cout), так и с сокетами и COM-портами, если найти соответствующую библиотеку.
Однако не всегда можно найти готовую библиотеку, где подходящий функционал уже реализован, может даже вы разрабатываете собственную библиотеку со своими классами. Тогда возникает задача реализации интерфейса потоков своими силами.
Необычный дуалбут: ноутбук с «двойным дном»
Не так давно на Habr Q&A я наткнулся на интересный вопрос — как сделать, чтобы два жестких диска не видели друг друга? Чтобы вирус, попав на одну систему, никоим образом не мог заразить другую. В ответах предлагали достаточно стандартные способы — использовать полнодисковое шифрование, отключить диск в диспетчере устройств и даже поставить переключатель на питание. Но что если взглянуть на задачу совершенно с другого угла и сделать всё средствами самого HDD? Да-да, сегодня мы снова погружаемся в пучины модификации прошивок и реверс-инжиниринга!
Как надёжно удалить файлы и зачистить HDD/SSD
Как уже неоднократно обсуждалось, в нынешних условиях почти каждому жителю Беларуси и России грозит опасность физического заключения. На любого человека может поступить анонимный донос, например, о финансировании экстремистов. Далее правоохранительные органы организуют обыск в квартире подозреваемого в присутствии понятых, при необходимости вскрыв входную дверь. Все компьютеры и мобильные устройства изымаются для экспертизы.
Естественно, в квартире находят множество улик, позволяющих квалифицировать гражданина сразу по нескольким статьям.
В таких условиях чрезвычайно важно перед обыском надёжно удалить всю информацию с накопителей и мобильных устройств, чтобы злоумышленник не получил доступ к контактной книге, аккаунтам в социальных сетях и мессенджерах — иначе вы подставите своих товарищей и предоставите дополнительные улики следствию.
Неожиданные причины торможения программ и систем
Я одержим оптимизацией производительности и максимальным повышением эффективности программ. За многие годы я сталкивался с конкретными случаями и распространёнными паттернами, замедляющими работу ПО или компьютеров. В этом посте я расскажу о некоторых из них.
Я назвал пост Surprisingly Slow потому, что замедление было для меня неожиданным, или неоптимальные практики, ведущие к замедлению, настолько распространены, что многие программисты будут удивлены их существованию.
Разделы поста чаще всего никак не связаны друг с другом, поэтому можете выбирать самые интересные для вас.
По просьбам читателей: «Хтоническое существо» в реальном прошлом
«В бездну пучин» сланцевых пород скалы эпохи Велнока, что на юге графства Херефордшир (Великобритания) раз за разом «погружались» инструменты палеонтологов, в надежде отыскать дом давно мёртвого и древнего существа, что «видит сны» и ждёт.
Что читать на английском языке чтобы не умереть от скуки
Читать на английском – интересно и полезно. Однако, многолетнему обитателю рунета непросто найти хорошие иностранные ресурсы. Плюс, многое из найденного оказывается скучным или слишком сложным. Я постарался подобрать интересные сайты для практики английского и понять, какие из них имеют доступный уровень сложности, а какие – более 9999999.
На выходе получился список сайтов размеченных по уровню сложности: легко, средне, сложно, очень сложно. Список разбит на 6 форматов: расшифровки подкастов, интервью, площадки для общения, новости и статьи, книги, обучающие тексты.
Частично рассекречено методическое пособие АНБ по взлому неизвестных шифров
Скульптура Kryptos у штаб-квартиры ЦРУ
Агентство национальной безопасности США наконец-то рассекретило третью часть известного учебника «Военная криптоаналитика» (MILCRYP), написанного для обучения специалистов АНБ и военных криптоаналитиков во время Холодной войны. Последняя часть трёхтомника опубликована с некоторыми купюрами, но всё равно представляет огромную ценность, ведь у нас не так много практических пособий по взлому шифров. Речь идёт о неизвестных, сложных кодах, которые составлены по непонятным правилам. Как к ним подступиться? Как найти зацепки? Книга отвечает на эти вопросы.
Возможно, учебник АНБ поможет расшифровать тексты, которые в течение многих десятилетий и столетий не поддаются криптоанализу. И даже тысячелетий, как в случае с критской письменностью из III тысячелетия до нашей эры (минойская цивилизация).
Information
- Rating
- Does not participate
- Registered
- Activity