Screen config

Мой новый конфиг screen. Ничего особенного, просто решил обновить.

Скриншот запущенного screen:
gnu screen

Собственно сам конфиг: ~/.screenrc

# Select whether you want to see the copyright notice during startup:
startup_message off

term screen-256color
terminfo rxvt-unicode 'Co#256:AB=\E[48;5;%dm:AF=\E[38;5;%dm'

# Get rid of trailing spaces
defbce "on"

hardstatus alwayslastline "%{+b wk} %-w%{-b wk} %n %t %{-}%+w %41=%H @ %l %-= %= %D,%c:%s "

# Set the scrollback length:
#defscrollback 10000

Pixel Art в Linux

King's Valley objectsНовая игра, над которой уже неделю идет работа будет в old-school стиле. А для этого стиля хорошо подходит Pixel Art. До сего момента вся графика делалась в любимом мною GIMP. Но, стоит признаться самому себе, он для этого подходит не лучшим образом.

Поиск подходящих Pixel Art редакторов дал два проекта – Aseprite и GrafX2.

Aseprite Это редактор с открытым кодом, доступны бинарные сборки для Windows и OS X. Обе платные. Линуксоиды могут взять сорцы на GitHub и собрать редактор самостоятельно.

Мне для сборки Aseprite пришлось пропатчить несколько правил для сборки – оставляем libpng, giflib, pixman и libloadpng идущие в комплекте.

$ mkdir build ; cd build
$ cmake -DENABLE_UPDATER=off \
 -DUSE_SHARED_ALLEGRO4=on \
 -DUSE_SHARED_CURL=on \
 -DUSE_SHARED_JPEGLIB=on \
 -DUSE_SHARED_LIBLOADPNG=off \
 -DUSE_SHARED_LIBPNG=off \
 -DUSE_SHARED_TINYXML=on \
 -DUSE_SHARED_ZLIB=on \
 -DFULLSCREEN_PLATFORM=on  ..
$ make

После стрипаем бинарник (strip aseprite), дабы уменьшить его размер в 15 раз.

Далее кладем полученный бинарник вместе с директорией data в удобное место и пользуемся на здоровье.

Aseprite интуитивно-понятный, но у меня не умеет работать в полноэкранном режиме, размеры окна задаются в конфиге (не умеет налету менять разрешение), поддерживает одновременную работу с несколькими проектами, поддерживает слои и анимацию.

GrafX2 Расторовый графический редактор, создан под впечатлением от амиговских редакторов Deluxe Paint и Brilliance. Нацелен на создание 8-битной графики, включает большое количество инструментов и эффектов, подходящие для pixel-art, игровой графики. Редактор написан для Linux и Windows, но может быть портирован и на другие платформы (по заверению автора).

Умеет переключать разрешение окна налету, умеет полноэкранный режим. Менее интуитивен. Очень понравилась работа с палитрой цветов.

King’s Valley на ZX-Spectrum

Эту игру я писал, если не ошибаюсь, еще в школьные годы, аккурат до поступления в ВА РБ.
Уровни помогали мне делать мой брат +Илья Угольник и Янушкевич Евгений. Так же Женя сделал много графики для этой игры.
Все это было сделано на ZX-Spectrum’е.

На видео какой-то серьезный игрок – прохождение игры всего за два часа:

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

Рандомные тормоза Vim с плагином YouCompleteMe

Пользуюсь для C/C++ комплитером YouCompleteMe, базирующемся на clang. Периодически YCM тормозил так сильно, что ввод символа производился с задержкой в несколько секунд. Происходило это рандомно, от размеров проекта никак не зависело. Тормоза могли проявляться и в “проекте” из одного файла, и в проекте из сотен файлов.

YouCompleteMe in action

Отключение всех плагинов, кроме YCM не помогало. Отключение YCM решало проблему, но без комплитера менее комфортно.
В ход пришлось пустить метод научного тыка – чистка конфика Vim методом деления отрезка пополам.
И проблема решилась. Виной тому был один единственный параметр, из-за которого связка Vim + YCM умудрялась жестоко тормозить.

Параметр-виновник: set foldmethod=syntax
Удаление или установка этого параметра в любое другое значение решало проблему.

Iab Helper для InApp Purchases

Нет, мля, эта музыка будет вечной. Если гугель не уволит этого придурка, то покупки внутри android-приложения так и будут глючить. Зовут этого придурка Trevor Johns. Он не способен наложить готовый патч и проверить его корректность. Как таких идиотов держат в гугеле мне не понятно.

https://code.google.com/p/marketbilling/issues/detail?id=123

Подготовка текстуры с помощью ImageMagick

Текстура, которая будет рендериться не “пиксель-в-пиксель” нужно подготовить таким образом, что бы ее бордюр был того же цвета, что и соседний пиксель. Танцы с бубном и коллективный разум ЛОРа помог найти простое решение:

Корректировка набора текстур размером 30×30 до размера 32×32 без искажения изображения на текстуре:

convert input_*.png \
        -define distort:viewport=32x32-1-1 \
        -filter point \
        -distort SRT 0 +repage PNG32:fixed_%03d.png

Теперь остается изменить текстурные координаты и можно скейлить текстуру без боязни, что крайние пиксели станут не того цвета.

Если раньше текстурные координаты (в пикселях, условно) были 0x0 -> 30×30, то теперь они будут 1×1 -> 31,31.

Huawei HiLink on Linux

Есть у меня такой 3G-модем. Хочется, что бы он работал в Gentoo. Воткнул его в лэптоп, посмотрел выхлоп dmesg, нашел интересные строчки:

cdc_ether 2-1.2:1.0 eth1: register 'cdc_ether' at usb-0000:00:1d.0-1.2, CDC Ethernet Device

выполнил команды:

$ ifconfig eth1 up
$ dhcpcd eth1

запустил браузер, ввел адрес hi.link (можно и 192.168.1.1), нажал кнопочку подключить. Все, интернет есть, можно ехать на дачу с лэптопом под Linux, а MacBook оставить дома :)

GIT и VIM

Добавив строчку

autocmd FileType gitcommit DiffGitCached | wincmd p

в ~/.vimrc и получаем возможность просмотреть diff при выполнении команды git commit.

Установив плагин https://github.com/airblade/vim-gitgutter для VIM получаем возможность видеть измененные/добавленные/удаленные строки прямо в VIM во время редактирования кода.

1 2 3 68