понедельник, 26 октября 2015 г.

Визуальные undo redo в Emacs

Концепция операций undo/redo кажется выверенной и отточенной многими годами, добавить туда что-то новое не возможно. Большинство редакторов впрочем и не пытаются, полностью сосредоточившись на редизайне кнопок в интерфейсе и добавлении новых шкурок. В Emacs'е же, попытки изменить устоявшуюся концепцию есть и на мой взгляд удачные.

понедельник, 19 октября 2015 г.

Software render на Rust: добавляем текстуры

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

вторник, 6 октября 2015 г.

Мой первый пакет для Emacs: multi-compile

Более актуальная версия
Я часто пишу заметки о Emacs, в формате: скопируйте вот эти строки подкорректируйте под себя, вставьте в конфиг, установите ещё вот этот плагин и т.п. Сегодня решил выйти на "новый уровень" и сделал полноценный пакет для Emacs и что бы нанести пользу максимально большой аудитории - разместил его в melpa. Конечно подготовить его несколько сложнее, чем просто пример конфига для блога, но для меня это своеобразное возвращение долгов за используемые мной open-source решения.

пятница, 25 сентября 2015 г.

appveyor - travis-ci под windows

Я недавно делал обзор travis-ci и пожаловался на то, что там нет возможности прогонять тесты на windows. В комментариях ozkriff дал ссылку на appveyor.com, спасибо ему. Сервис как раз и специализируется на создании продукта для continuous integration под windows. У меня наконец дошли руки до того, что бы посмотреть на то, что он умеет, результаты далее.

среда, 16 сентября 2015 г.

Подборка ресурсов по Emacs

Что-то накопилось много разных ссылок на разные полезные и интересные материалы по Emacs, решил поделиться.

среда, 9 сентября 2015 г.

Software render на Rust: интерполяция атрибутов и освещение

В прошлой статье я показал как можно реализовать буфер глубины с помощью интерполяции значения 1/z. А так же сделал простейшую систему освещения, когда цвет рассчитывался целиком для треугольника. На низкополигональных моделях это выглядело ужасно, так рисовали много лет назад, когда производительности катастрофически не хватало. Сейчас даже ресурсов только процессора хватит, что бы сделать нормальное попиксельное освещение, чем мы сейчас и займёмся.

пятница, 4 сентября 2015 г.

Автоматическое удаление в Emacs лишних пробелов и табуляции в конце строки

Набрел недавно на замечательную возможность emacs, не могу не рассказать. Многих я думаю раздражают лишние пробелы или табы, которые остаются в конце строки (как отобразить непечатаемые символы я писал раньше). В emacs есть функция "M-x delete-trailing-whitespace" которая удалит все пробелы и табы в конце строк в текущем буфере, а заодно и лишние линии в конце файла, оставив только одну. А что бы автоматизировать этот процесс, можно добавить в конфиг вот такую строчку:
(add-hook 'before-save-hook 'delete-trailing-whitespace)
Теперь "delete-trailing-whitespace" будет вызываться перед каждым сохранением файла автоматически.

вторник, 1 сентября 2015 г.

Software render на Rust: переходим в 3d

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


пятница, 28 августа 2015 г.

Небольшой обзор travis-ci

Наверняка многих, в своё время, не обошла стороной шумиха вокруг travis-ci. Это сервис для сборки и тестирования проектов на GitHub, относительно простой, но в принципе покрывающий большинство use case. По сравнению с тем же Jenkins, он выглядит малофункциональным, но тут преимущество в том, что за вас уже развёрнута инфраструктура, причём совершенно бесплатно.

понедельник, 24 августа 2015 г.

Software render на Rust: рисуем треугольник

Я уже давно хотел разобраться получше с Rust, что бы составить впечатление о языке. У них есть достаточно хорошая документация, которая к тому же переведена на русский, в интернете - куча статей. Но видно я не из тех, кто способен понять язык по книжкам. Поэтому было решено написать на нем, что-то более или менее крупное, в качестве задачи решил взять Software rendering, заодно университетский курс линейной алгебры вспомню. Тем более я уже когда-то давно писал его для конкурса (я там под ником Rean), правда исходники не сохранились, но зато в памяти остались общие моменты. Сразу оговорюсь: я не буду пошагово описывать все алгоритмы, которые я использую, иначе это будет не серия постов, а объёмная книга. Но постараюсь давать ссылки на материалы, которые, на мой взгляд, хорошо описывают что я делаю и комментаровать некоторе моменты. Так же буду выкладывать ссылки на мою реализацию в GitHub, местами корявую, частично из-за незнаний языка, частично из-за подзабытых алгоритмов. Всего этого должно быть в принципе достаточно для воспроизведения, при желании, моих результатов на любом другом языке. А для тех кому лень - будут картинки, по которым можно оценить прогресс.