вторник, 5 июля 2016 г.

Подсветка нового текста в Emacs (volatile-highlights)

Нашёл интересный пакет для Emacs, который подсвечивает изменения в буфере, связанные со вставкой текста. Например если выполнить операцию undo или paste, новый текст подсветится, после следующей нажатой клавиши подсветка исчезнет. Расширение простое, но делает редактирования текста приятнее.


понедельник, 27 июня 2016 г.

CI для Go на базе Github

Сегодня поговорим о тестировании. На изучение темы применительно к Go меня сподвигла задача минимизации HTML (подробнее в "Веб поиск на Go. Краулер. Как не хранить лишнее"). Реализация имела так много особых случаев, что без тестов удержать их в голове стало невозможно. А чуть позже природная лень сподвигла меня настроить автоматическую прогонку тестов.



понедельник, 20 июня 2016 г.

Компиляция во всплывающем буфере Emacs

Начну с описания проблемы, которая давно меня раздражала в Emacs. Запускаем, допустим, компиляцию, и она открывает буфер в непредсказуемом месте, замещая уже открытые. Логику по которой она выбирает себе место - я так и не постиг. Но зато нашёл плагин, который борется с такими своевольными операциями - popwin.

вторник, 14 июня 2016 г.

Оптимизация работы с SSD: Планировщики ввода/вывода в Linux

Поговорим сегодня о планировщиках ввода/вывода (I/O Scheduler) в Linux, какие они бывают, чем отличаются и как их можно поменять. С практической точки зрения тема может быть интересной для оптимизации работы системы с SSD.

вторник, 7 июня 2016 г.

Emacs как IDE для Go

Цель статьи дать обзор инструментов в Emacs для работы с Go кодом. Настроить горячие клавиши, возможно добавить алиасы и сделать их удобнее для повседневного использования - на вашей совести. Хочу отметить, что поддержка языка в Emacs - на высоком уровне: подсветка кода, автодополнение, сниппеты, рефакторинг, подсветка ошибок, отображение документации, тестирование, компиляция и многое другое. Сразу оговорюсь, что проверял я только под Linux, под альтернативные OS могут быть особенности, которые тут не освещены.

понедельник, 30 мая 2016 г.

Заворачиваем Chrome в Docker контейнер

Сегодня будем заниматься засовыванием Chrome в Docker контейнер. Я этим занялся, поскольку планирую перенести пакеты, которые не входят основной репозиторий - в контейнеры. Это безопаснее, реже ломается, быстрее в развёртывании и обновлении, не тянет ненужных зависимостей. Плюс интересно приобрести опыт в работе с контейнерами, которые имеют GUI. Chrome хороший, в этом плане, кандидат - много неочевидных нюансов в настройке. Приступим.

понедельник, 23 мая 2016 г.

Веб поиск на Go. Краулер. Как не хранить лишнее

В предыдущей статье, я написал, как можно на этапе скачивания отбросить лишние страницы до непосредственной загрузки. Оставшиеся приходится хранить. Несмотря на большие и дешёвые диски, объёмы получаются существенными. Например, у меня сейчас в БД загружено 12 тыс страниц. И чистый HTML без картинок и прочего весит 900 МБ. Это неприемлемо много, поскольку для одного только habrahabr в очереди на скачивание осталось 20 тыс. страниц, в действительности их больше, т.е. только один сайт займёт более 2 ГБ на диске. Нужно как-то решать проблему.

 

среда, 4 мая 2016 г.

Emacs: скопировать в буфер обмена полный путь к текущему файлу

Иногда нужно скопировать текущий путь в буфер обмена, а Emacs не имеет встроенной команды для этого, но как всегда небольшая функция поможет справиться с проблемой:



понедельник, 18 апреля 2016 г.

Перенос браузера на ram диск в linux

Я тут задумался над оптимизацией работы своей системы с диском. И задался целью выявить, кто же больше всего пишет на диск, благо в Linux это сделать не сложно. Нужно запустить из консоли:
sudo iotop -oPa
Для пущего эффекта перед запуском команды закройте браузер, а потом запустите вновь. Не скажу как насчёт Chrome и остальных, а вот Firefox с парой десяток вкладок в первые 5 минут после запуска запросто записывал на диск - пол гигабайта. Даже когда я в нём ничего не делал, он продолжал что-то писать. Ни один другой процесс больше у меня так активно с диском не работал.

вторник, 12 апреля 2016 г.

Emacs: Переименование и удаление текущего буфера вместе с файлом

Время от времени, чаще всего, когда я рефакторю код, мне нужно быстро переименовать файл и буфер, связанный с ним. Есть конечно "M-x rename-file", но она к сожалению не переименовывает буфер и не очень удобна в обращении. Но простая обёртка поможет решить проблему: