суббота, 22 июля 2017 г.

Дополнительные мониторы

При современной разработке всё время не хватает мониторов.

Хочется видеть и dashboard от тестов, и консольный вывод, и ошибки компиляции всё и сразу и никаких компромисов.

А уж при веб разработке, дополнительно к этому и окно браузера хочется а то и не одно, и всё это растёт и растёт.

Но физический предел мониторов все равно есть, ну два, ну три, но не 10 же.

Я после многих экспериментов остановился на двух, меньше головой крутить.

Конечно же tiling window manager  но в добавок к ним хочется какие то маленькие девайсы индикаторы, загорелось красным - билд не прошел значит.

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

Итак рецепт.

Запускаем vncserver -а, сколько нужно. По одному на доп. устройство.

Конектимся к ним с устройства любым vnc клиентом, по вкусу.

И в этот момент возникает проблема, управлять то неудобно. Пока там на мелком планшете запустишь браузер с дашбоардом - всё на свете проклянешь.

И вот тут приходит на помощь чудесная утилитка x2x.
Которая цепляет один x server к другому как продолжение.

Т.е. запустив x2x -east -to :1 , я прицеплю :1 икс сервер к своему рабочему справа.
Сдвинул мышь за пределы экрана и вот твой ввод и клавиатуа и мышь попадает уже в :1, не нужно никаких ухищрений, всегда работаешь с одной клавой.

Описывать сложно но попробовав думаю сразу оцените.

В итоге не большой мониторчик с статусом билда и тестов выглядит как то так:


Так как старых телефонов на андроиде у меня много, запитать их от usb хаба не сложно, то я прямо теперь остановится не могу в обвешивании своего стола такими семафорами и графиками.


воскресенье, 16 июля 2017 г.

Tooling для golang: autorun

Тесты запускаемые по сохранению файла, что я описал в предыдущей заметке замечательно, но иногда не достаточно.

Хочется иметь утилиту которая по сохранению файла пересобирала бы проект, и перезапускала его.

К счастью такая нашлась. Добрые люди посоветовали beego/bee. Не смотря на то что это само по себе какой то фреймворк, я использую только одну часть из него, а именно bee run в текущем каталоге.

И оно всё очень правильно делает, убивает запущеный процесс, перекомпилирует, и перезапускает.

С учётом почти мгновенной компиляции golang это именно то что хотелось.

Из замеченных минусов - невозможно передать в программу флаги и параметры командной строки. Это может быть проблемой, но я привык жить с переменными окружения, передаю параметры через них, так что особенно не страдаю.

среда, 12 июля 2017 г.

Tooling для golang: Tests

Несмотря на то, что часто можно слышать жалобы про недостаточный tooling в golang, я бы с этим с этим несогласился.

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

go test работает, но хочется красивости, наглядности и автоматизации.

Помучившись немного с ручными скриптами на inotifywatch, бросил это и нашел
Goconvey https://github.com/smartystreets/goconvey решает все эти проблемы изящно.

Запускаешь его и на порту 8080 получаешь сайтик с результатами твоих тестов в приятном виде.

Само перезапускается, показывает, уведомляет и прочее.

Оно включает собственную библиотеку с функциями типа assert, но я не использую, даже без этого уже достаточно полезно.