ЭТО БЛОГ НБРК

ДБРО ПОЖА В МОЙ БЛОГ . ТУТ Я ПУБЛ ВСЯК РАЗН ЗПСИ И ЗМТК О ПРОГ , ЯЗКЕ ИЛИ ДАЖЕ О ЖИЗН . В ОСНО ДЛЯ СЕБЯ , ЧТОБ ПТОМ СМТР ИЗ БУДЩ .

НЕКТ МОИ ТЕХН ПРОЭ ЕСТЬ НА ГТХБ , И ТУТ Я ИНГД ПУБЛ ПРОЧ ИДЕИ ИЛИ ДОП ТЕОР ДОКИ ПО НИМ . В НАСТ МОМТ Я ИССЛ ВОЕН ИГРЫ И КОМП СИМУ .

КСТА , ОЧЕН МНОГ ХОРШ СЛОВ УМЕЩ ВСГО В ЧТРЕ СИМВ , НАПР UNIX, СИ++ ИЛИ НБРК .

Функторы как адаптеры между категориями

Функторы в теории категорий Как известно, функтор в теории категорий определён как морфизм между двумя категориями (маппинг всех объектов одной категории в объекты другой, маппинг всех морфизмов одной категории в морфизмы другой), который сохраняет нейтральные элементы (Identity) и композицию в соответствующих категориях. Функтор, таким образом, – более общий случай понятия гомоморфизма (групп, моноидов и т.п.), то есть отображения, сохраняющего (алгебраическую) структуру. Функторы в философии В отличии от Множества, которое по своей природе лишено всякой структуры, любая Категория – это сама структура в чистом виде (и ничего кроме структуры).
ЧТАТ ПОЛН →

intero-mode: быстрая настройка Emacs для комфортной работы с Haskell-кодом

Не секрет, что хакеры предпочитают использовать текстовые редакторы emacs или vim. Индивидуальные настройки редактора, скрипты и т.п. при этом могут жить десятилетиями, поскольку являются делом профессиональной привычки. Для редактирования Haskell-кода в emacs традиционно были пакеты haskell-mode и ghc-mod, однако не так давно появился замечательный проект intero-mode, предлагающий хороший функционал “из коробки” и настраивать среду для комфортной работы стало быстрее и проще. Установка intero-mode После добавления MELPA-репозитория пакетов к emacs, установить intero-mode можно, найдя свежую версию “intero” в M-x package-list-packages.
ЧТАТ ПОЛН →

OpenGL в Haskell: загрузка текстуры в GPU, UV-координаты

На базе нашей программки вращения кубика (из прошлых статей) разберёмся с простейшей загрузкой текстур в аппаратуру и текстурированием четырёхугольника. Забудем пока про куб и цвета и вернёмся к квадрату со стороной 1 и 2D-координатам. UV-координаты В компьютерной графике для “закрепления” текстуры на объекте используют так называемые UV-координаты. Размеры текстуры нормализуются до [0..1] по оси X и Y, и каждая вершина треугольников, из которых состоит объект, мапится к пикселю картинки как показано выше.
ЧТАТ ПОЛН →

Объекты OpenGL в Haskell: VAO и VBO

В прошлый раз мы говорили об инициализации системы OpenGL на Haskell и создали простенький модульный шаблон программы (мы используем биндинги GLUT). В этот раз мы немного дополним наш кубик, раскрасив вершины треугольников, из которых он собран, случайными цветами. Немного о VAO и VBO Спецификация OpenGL определяет два объекта, которые мы уже использовали: VAO (Vertex Array Object): инкапсулирует состояние системы, достаточное для запуска конвейера (то есть для поставки вершинных данных) и полного рендеринга объекта.
ЧТАТ ПОЛН →

Инициализация программируемого графического конвейера OpenGL

Для Haskell есть замечательные биндинги к OpenGL, а также биндинги к популярным “клиентским” вспомогательным библиотекам вроде GLUT, GLFW, SDL и прочим. Мощь и изящество языка Haskell вместе с разнообразием фундаментальных подходов к композиции программ (монады, Arrow, FRP и т.д.) делают его чуть-ли не идеальным инструментом в написании корректных графических программ вроде симуляций или игр. Задачи Попробуем разобраться с минимальными действиями, необходимыми для создания простенькой программки, использующей систему OpenGL современным образом: а именно, выполняя вычисления на высокопроизводительном GPU и управляя программируемым графическим конвейером с помощью вершинных, фрагментных и других шейдеров.
ЧТАТ ПОЛН →