понедельник, 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 ведь скриптовый язык.