Цель статьи дать обзор инструментов в Emacs для работы с Go кодом. Настроить горячие клавиши, возможно добавить алиасы и сделать их удобнее для повседневного использования - на вашей совести. Хочу отметить, что поддержка языка в Emacs - на высоком уровне: подсветка кода, автодополнение, сниппеты, рефакторинг, подсветка ошибок, отображение документации, тестирование, компиляция и многое другое. Сразу оговорюсь, что проверял я только под Linux, под альтернативные OS могут быть особенности, которые тут не освещены.
вторник, 7 июня 2016 г.
понедельник, 30 мая 2016 г.
Заворачиваем Chrome в Docker контейнер
Сегодня будем заниматься засовыванием Chrome в Docker контейнер. Я этим занялся, поскольку планирую перенести пакеты, которые не входят основной репозиторий - в контейнеры. Это безопаснее, реже ломается, быстрее в развёртывании и обновлении, не тянет ненужных зависимостей. Плюс интересно приобрести опыт в работе с контейнерами, которые имеют GUI. Chrome хороший, в этом плане, кандидат - много неочевидных нюансов в настройке. Приступим.
понедельник, 23 мая 2016 г.
Веб поиск на Go. Краулер. Как не хранить лишнее
В предыдущей статье, я написал, как можно на этапе скачивания отбросить лишние страницы до непосредственной загрузки. Оставшиеся приходится хранить. Несмотря на большие и дешёвые диски, объёмы получаются существенными. Например, у меня сейчас в БД загружено 12 тыс страниц. И чистый HTML без картинок и прочего весит 900 МБ. Это неприемлемо много, поскольку для одного только habrahabr в очереди на скачивание осталось 20 тыс. страниц, в действительности их больше, т.е. только один сайт займёт более 2 ГБ на диске. Нужно как-то решать проблему.
среда, 4 мая 2016 г.
понедельник, 18 апреля 2016 г.
Перенос браузера на ram диск в linux
Я тут задумался над оптимизацией работы своей системы с диском. И задался целью выявить, кто же больше всего пишет на диск, благо в Linux это сделать не сложно. Нужно запустить из консоли:
Для пущего эффекта перед запуском команды закройте браузер, а потом запустите вновь. Не скажу как насчёт Chrome и остальных, а вот Firefox с парой десяток вкладок в первые 5 минут после запуска запросто записывал на диск - пол гигабайта. Даже когда я в нём ничего не делал, он продолжал что-то писать. Ни один другой процесс больше у меня так активно с диском не работал.
sudo iotop -oPa
вторник, 12 апреля 2016 г.
понедельник, 28 марта 2016 г.
Веб поиск на Go. Краулер. Как не скачать лишнего
Я думал, что написать программу скачивающую сайт - на пару часов делов то. Всё ведь просто - скачиваем первую страницу и рекурсивно проходимся по всем найденным внутри ссылкам. Однако с таким подходом примерно 20% страниц оказались мусором, который мне не пригодился. Ниже я объясню, как я с таким мусором боролся.
понедельник, 21 марта 2016 г.
Стоит ли использовать json protobuf в проекте с Python?
Появилась тут вдруг необходимость связать 2 приложения на С++ и на Python между собой. После недолгих раздумий был выбран вполне очевидный вариант - HTTP(s) + json. Human readable, удобно тестировать и всё такое прочее. API было решено строить на базе REST (хоть и на не совсем идиоматичном), ибо он сейчас модный и хипстерский. Можно было бы сделать всё к примеру на SOAP, но боюсь потом спать не смогу. Ещё хотелось отметить, что сервером является приложение на С++, проекты находятся в разных репозиториях и есть вероятность, что в дальнейшем Python часть будет делать человек не знающий плюсы.
среда, 9 марта 2016 г.
Веб поиск на Go. Начало. Выбор БД.
Мой первый опыт знакомства с Go только по документации и статьям получился довольно неудачным, язык казался страшным и неудобным по большинству параметров. Но раз так много и упорно о нём в последнее время говорят, значит что-то в Go есть?! В общем я решил познакомиться с ним поближе. И по моему глубокому убеждению, проекты типа "hello world" для этого очень плохо подходят. Нужна большая интересная задача, в режиме "хотя бы пара месяцев по вечерам после работы". В общем я начал писать свой маленьких поисковик.
среда, 24 февраля 2016 г.
Развитие моего плагина для Emacs: multi-compile
Я как-то писал про свой небольшой плагин для Emacs - multi-compile. Он неожиданно для меня даже получил какую-то популярность, несколько человек попросили добавить туда несколько новых возможностей. В итоге я всё же поборол свою лень и наконец реализовал то, что просили. Сейчас постараюсь изложить, что появилось нового.
Подписаться на:
Сообщения (Atom)









