О хакерах

Mozilla туда же. На приветственной странице с предложением установить Facebook Container и Firefox Monitor в очередной раз слово «хакер» используется в негативной коннотации:

Не ожидал такого от компании, которая разрабатывает СПО. Запомните уже: хакер — это компьютерщик-эксперт, относящийся к программированию как к искусству, умеющий и любящий решать нетривиальные задачи. Прекратите называть хакерами киберпреступников! Это выдает в говорящем дилетанта и филистера. Взломщик — это крэкер (cracker), вор паролей — фишер (phisher), создатель вирусов — вирусописатель (virus writer), а тот, кто практикует социальную инженерию — просто мошенник.

Глагол «hack», вопреки массовому пониманию (и даже определениям в некоторых словарях), не означает «взламывать». Изначально этим словом обозначалось внесение в код быстрого исправления с целью обойти некую проблему без серьезных архитектурных изменений. Отсюда «хак» — ловкое решение, обходной прием, фокус.

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

Если этого недостаточно, то привожу цитату из статьи Эрика Реймонда «Как стать хакером»:

«Существует сообщество, некая общая культура, состоящая из опытных программистов и сетевых чародеев, история которой прослеживается вплоть до первых миникомпьютеров с разделением времени и самых ранних экспериментов с сетью ARPAnet. Члены этой культуры и дали рождение термину «хакер». Хакеры создали Интернет. Хакеры сделали операционную систему Unix тем, чем она является сегодня. Хакеры поддерживают Usenet. Хакеры обеспечивают работу WWW. […]

Также есть и другая группа людей, громко именующих себя хакерами, но не являющихся таковыми. Это те люди (преимущественно молодые люди мужского пола), которым достается за взлом компьютерных и телефонных систем. Настоящие хакеры называют таких людей «крэкерами» и не хотят иметь с ними ничего общего. Настоящие хакеры в большинстве своем считают крэкеров ленивыми, безответственными и не особо умными людьми. То, что человек способен взломать систему безопасности, не делает его хакером, точно так же как умение угонять тачки не делает вас автомобильным мастером. К несчастью, многие журналисты и писатели введены в заблуждение и используют слово «хакер» для описания крэкеров, и это бесконечно раздражает настоящих хакеров. […]

Главное различие в следующем: хакеры создают, а крэкеры ломают».

Const-корректность в D

Выложил новую статью на Medium — «Const-correctness in D», посвященную особенностям квалификаторов const, immutable и inout. Будет полезна тем, кто хочет писать на D многопоточные или асинхронные приложения с разграничением доступа.

Начинающим изучать язык также пригодится статья «Getting started with D», в которой пошагово описывается процесс инициализации минимального DUB-проекта.

Временная шкала моих проектов

Приводя в порядок архивы и вспоминая прошлое, решил зафиксировать информацию о моих 3D-движках и других OpenSource-разработках в виде интерактивной временной шкалы при помощи time.graphics — возможно, кому-то будет интересно:

Вода в Dagon 0.11

Работа над Dagon 0.11 близится к завершению: реализованы поддержка прозрачных объектов прямым рендером, частицы, ease-функции, а также встроенный шейдер воды.

Crematorium 0.2

Выпустил обновленную версию моего старого doom-like шутера Crematorium. Старый звуковой движок Saudio заменил на GMSquall, что исправило проблему с ошибкой при запуске на некоторых системах. Также добавил возможность растягивать окно игры.

Скачать

Напомню, Crematorium была создана в 2007 году для II конкурса портала GameCreating.ru. Задачей было создать игру с администраторами портала в главной роли. Игра представляет собой коридорный шутер, сделанный на Game Maker при помощи встроенного 3D-режима.

С Новым годом!

Поздравляю всех читателей блога с наступившим 2020 годом! Желаю творческих успехов всем авторам и долгих лет жизни всем интересным проектам!

В качестве небольшого подарка — обновленная версия демки dagon-sandbox, которую теперь можно скомпилировать в «зимнем» режиме (version = Winter)

Итоги 2019 года

Пролетел еще один год, и это значит, что наступило время для традиционного подведения итогов по проектам.

  • Блог DLangGamedev переехал на новый адрес и движок: https://gamedev.timurgafarov.ru.
  • Был значительно улучшен движок Dagon: добавлена поддержка декалей, трубчатых источников света и «фонариков», кубических карт окружения. Благодаря сторонним разработчикам появилась поддержка рендеринга ландшафтов, в том числе процедурных с использованием шума OpenSimplex, а также интеграция GUI-тулкита Nuklear. Были полностью переписаны рендер и система постобработки в Dagon, упорядочена структура модулей движка, внесено множество оптимизаций производительности, реализован эффект объемного рассеяния света в атмосфере (volumetric light scattering) для направленных источников света. Mateusz Muszyński на основе Dagon и Nuklear написал клон Sokoban с редактором уровней.
  • Я начал работу по интеграции физического движка Newton Dynamics в Dagon в рамках проекта dagon-newton и биндинга bindbc-newton. Newton был выбран как наиболее функциональный физический движок с интерфейсом C.
  • Вышли dlib 0.16.0 и 0.17.0. Библиотека постепенно приближается к релизу версии 1.0.
  • Я написал bindbc-wgpu, биндинг к графической библиотеке wgpu.

Ну и, конечно, не могу не назвать самые значимые для меня события в мире CG, СПО и геймдева:

  • Появление WebGPU, нового веб-стандарта для высокопроизводительной графики.
  • Выход Blender 2.80 c новым вьюпорт-движком Eevee.
  • Открытие кода Mimalloc, быстрого и компактного аллокатора памяти от Microsoft.

Переезд блога

Спустя 7 лет со дня открытия блога https://dlanggamedev.blogspot.com я наконец-то переезжаю на коммерческий хостинг и личный WordPress. Я только начал изучать эту CMS, но первые впечатления самые положительные: удобный редактор, админка, огромный выбор готовых тем, плагинов и виджетов. Абсолютно все можно настроить и кастомизировать. Еще один немаловажный плюс — нормальная работа WP-сайтов на мобильных платформах.

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

Newton

Экспериментирую с интеграцией Newton Dynamics — лучшего на сегодняшний день свободного физического движка с API для C. Специально для этого написал биндинг bindbc-newton.