понедельник, 29 июня 2015 г.

Отображение непечатаемых символов в emacs

Отображение непечатаемых символов в emacs с одной стороны очень простая тема, выполняем "M-x whitespace-mode" и пробелы, символы табуляции, перес строк будет сразу видны на экране, выполняем команду ещё раз - режим выключается. Настройки по умолчанию в принципе неплохие и если они устраивают, то на этом можно и закончить изучение режима. Но это же emacs, и "под капотом" скрывается на удивление много настроек для этого режима. К сожалению информация о нем раскидана по разным уголкам интернета, а кое-что пришлось узнавать экспериментальным путём. Так что сейчас попробую описать важные на мой взгляд опции этого режима.

воскресенье, 28 июня 2015 г.

Расширенная проверка орфографии в emacs


В предыдущей статье я рассказал как можно настроить двуязычную проверку орфографии, однако такая проверка работает с каждым словом в отдельности, не учитывая контекст. Это безусловно полезная проверка, но её одной мало, хочется расширенного анализа: проверки расстановки дефисов, пунктуации, стиля и т.п. Конечно же в emacs нашёлся способ проводить и такой анализ текста. Делается это при помощи плагина работающего с приложением languagetool.

суббота, 20 июня 2015 г.

Изучаем английский

Кому-то иностранный язык даётся просто, пару раз увидел\написал слово и запомнил, а вот у меня с этим плохо, не даётся и все тут. Я перепробовал довольно много разных способов изучать его. Начиная от сильно разрекламированного lingualeo, заканчивая написанием своей собственной программы. Кончалось все одинаково, через пару тройку месяцев энтузиазм заканчивался, я начинал пропускать занятия и в конце концов забрасывал это дело ещё на пол года. За годы экспериментов сформировалось, сугубо личное конечно, мнение о том, какое должно быть приложение, для изучения иностранного языка. И как ни странно, я его нашёл, там есть что улучшать, куда расти, но идеология и направление движения очень правильные.

вторник, 16 июня 2015 г.

Двуязычная проверка орфографии в Emacs

Я в последнее время почти полностью перешёл на Emacs, как универсальный редактор для всего, в связи с чем часто пишу там тексты. А поскольку уроки русского языка со школы уже основательно позабылись, то текст приходится часто копировать в LibreOffice для проверки орфографии, что надо признать жутко неудобно. Плюс ко всему я в текстах использую и английские слова, поэтому хотелось бы проверять сразу 2 языка. Найти готовую инструкцию по проверке орфографии в Emacs для такого случая не получилось. Поэтому пришлось разбираться со всем самостоятельно.

воскресенье, 14 июня 2015 г.

Компиляторы иногда ругаются по делу

Буквально только что натолкнулся на забавную особенность языка C++, уже встречался с ней раньше, но каждый раз удивляет. Имеем вот такой код:
void foo(uint32_t v)
{
    ...
    CTimeout t(std::chrono::seconds(v));
    ...
}
Компилятор объявление переменной интерпретирует как объявление функции, считая его эквивалентом вот этого:
CTimeout t(std::chrono::seconds v);
Т.е. он просто решил, что скобки тут лишние и убрал их. Искать такую ошибку в большом проекте можно очень долго. К счастью компиляторы сейчас пошли умные и о таких ситуациях предупреждают (по крайней мере clang), хотя и компилируют. Но когда проект компилируется с парой сотен ворнингов, отыскать важный сложно. Выводу, я думаю очевидны.

воскресенье, 7 июня 2015 г.

Конфиг для python скриптов

Захотелось тут на днях написать небольшую утилиту на python, дабы пользу себе нанести и язык заодно вспомнить. И оказалось, что требует она для своей работы конфиг. В мозгу сразу возникли слова: json, ini, xml, yaml и т.п. Но вот незадача - кто-то из них в стандартной библиотеке python отсутствует, где-то комментарии не поддерживаются, что-то имеет ужасный интерфейс работы из под python, опять же произвольную вложенность не везде можно использовать. И в добавок абсолютно все не поддерживают типизацию. Я уж было совсем приуныл, но в этот момент постучалась в мою голову одна светлая мысль: а python ведь скриптовый язык.

воскресенье, 31 мая 2015 г.

Переключение между окнами в Emacs

Что-то я давно не писал о Emacs, пора поправить упущение. Итак, в Emacs есть понятие окон - грубо говоря каждое окно, это область экрана, где отображается содержимое файла. Сейчас мониторы стали большими и возможность открыть одновременно штуки 4 окна - это довольно удобная фича. Но раньше, когда об over 20" даже не мечтали, не думаю, что кому-то было было комфортно работать с более чем 2 окнами одновременно. И в связи с этим, переключение между окнами, пришедшее к нам с тех времен было реализовано через комбинацию (C-x O), которая просто переключает фокус на следующее окно. Пока их 2, проблем нет, когда их 3 и более - прощелкать последовательно все окна становится утомительным.

Проблема решается плагином window-numbering, работает он очень просто, в строке состояния каждого окна, он рисует его номер - от 1 до 10. А так же привязывает горячие клавиши (M-1, M-2,…) нажатие которых перемещает фокус в соответствующее окно. Нумерация окон довольно интуитивная, через какое-то время запоминаешь в какой области экрана, какое окно находит и переключаешься на него на автомате. Настройка тоже не вызывает проблем, достаточно установить плагин и включить его в файле конфигурации: "(window-numbering-mode t)".

В целом очень удобная штука - рекомендую.

вторник, 19 мая 2015 г.

TDD есть опиум для народа


Ваш так называемый TDD действует как опий: он завлекает и приглушает боли вместо того, чтобы придать силы.
(сказал бы Новалис, если бы жил сейчас)

Один пацан писал все через TDD, говорил что нравится, удобно, читабельно.
Потом его в дурку забрали, конечно.



В последнее время все громче и настойчивее звучат голоса о пользе TDD вообще и главенствующей роли unit тестов в частности. Правда радует, что пока еще многие говорят, что делают это, но мало кто занимался им на самом деле. Но тенденция пугает, в первую очередь потому, что идеология выстроена с вкраплением здравых и полезных мыслей, из которых потом делают странные выводы и обобщения.


суббота, 16 мая 2015 г.

Подкасты, как способ провести свободное время с пользой

Такой жанр, как подкастинг, я открыл для себя еще в далеком 2006 году. Так что для меня, это очень естественная вещь и как мне казалось с той или иной периодичностью их слушает, если не большинство IT-шников, то хотя бы половина точно. Как оказалось - большинство, по крайней мере в моем окружении, смутно представляет что это такое вообще, а уж слушают - единицы.

вторник, 12 мая 2015 г.

О возрасте

Мне почему-то запомнилось, как когда-то на школьной дискотеке - подошел ко мне старшеклассник, года на 4 старше и по отечески так сказал "шел бы ты потанцевал, а то мол вырастешь до моих лет - не до этого будет".

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

На работе уже пошли высказывания на тему: год два (пять, десять) поработаешь, дома уже к компьютеру подходить не захочешь, ну разве что погоду на завтра посмотреть. Вот тоже рейтинговое: когда жить не один будешь, семью заведешь, не до новых тенденций в IT станет.

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