войти зарегистрироваться

Linux для всехНебольшой лайфхак с редактированием буфера обмена

Я часто сталкиваюсь с такой ситуацией: пишу себе спокойно текст в чем-то (скажем, письмо в веб-интерфейсе гмейла), и вдруг, в какой-то момент возникает необходимость что-то переделать… и случается раздражение. Случается оно от того что редактирование в браузере (да и много где еще) не предполагает некоторых привычных для программиста удобств, вроде автоматической замены, регулярных выражений и макросов. При этом, вроде бы и не сложно скопировать текст в буфер и отредактировать его в правильном редакторе (Vim, Emacs, ...), но очень уж не хочется отрываться от контекста и совершать какие-то телодвижения, отвлекающие от текущей задачи… И вот, я уже расставляю отступы (нумерую список, заменяю слово, ...) вручную — результат достигнут, да и времени потрачено совсем не много, но осадочек остался…

Знакомая ситуация? Если ответ «да», в вашей операционной системе работает bash и ваша первая ассоциация к слову «редактор» это не «Microsoft Office» значит нам есть что обсудить под катом :)

Персональные блоги «Жизнь» Конвея из каждой буквы, только в Emacs!

Одним рабочим декабрьским вечером



Все мы так или иначе сталкивались с игрой «Жизнь» Конвея. Кто-то писал сам, кто-то смотрел и дивился, кто-то играл…

Под новый год, сидя с коллегой за одним компом и решая какую-то проблемку в конце рабочего дня, мы немного отошли от проблемы и как-то дело свелось к M-x life (мы оба пользуемся Emacs), &emdash; кто не знаком с Emacs — это команда запуска игрушки «Жизнь» в Emacs.

Стандартное неинтересно


Вроде бы о чем тут говорить. Да вот только реализация в Emacs имеет около 10 «вшитых» начальных позиции, которые мягко говоря неинтересны.

Вы знаете, что:
  • Конвей первоначально предположил, что никакая начальная комбинация не может привести к неограниченному размножению и предложил премию в 50 долларов тому, кто докажет или опровергнет эту гипотезу.
    цитата из Wikipedia;
  • К настоящему времени более-менее сложилась следующая классификация фигур:
    цитата из Wikipedia;
  • Emacs — это расширяемый текстовый редактор.


Linux для всехСобираем GNU Emacs для Ubuntu из песочницы

Вопросы связанные с администрированием ОС лежат вне области моих интересов, поэтому когда возникает необходимость решить один из таких вопросов, я сначала стараюсь найти краткое howto, если же ничего не найдено, сажусь за чтиво руководств, которые после решения проблемы благополучно забываю. Поэтому для редко решаемых, но всё же время от времени возникающиx проблем, я пишу себе шпаргалки. Эта статья — одна из них. Чем она в большей мере является: «quick'n'dirty создание deb пакета» или «кратко о сборке emacs.deb» — судить не берусь, подойдёт как в качестве одного так и другого. Ниже описана сборка GNU Emacs 24.0.92 из исxодных кодов в Ubuntu 11.10.

LispНастройка SBCL и среды разработки SLIME под Windows. Пошаговое руководство

В данной статье я подробно опишу как установить и настроить SBCL и окружение для продуктивной разработки под Windows.

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

СофтКлавиши Emacs в любом приложении Windows

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

  1. Org-Mode, мотто этого проекта, «Your Life in Plain Text» весьма точно отражает его суть. Это мощный и удобный (хотя и не во всех отношениях) функционал как для ведения обычного списка TODO-записей, так и для более сложных случаев (GTD, планировщик, организация каталогов чего-нибудь и т.д.
  2. Key bindings, клавиатурные сочетания Emacs-а. То, к чему казалось, так трудно привыкнуть, движение по тексту с помощью Ctrl+F,B,N,P,E,A пролистывание страниц Ctrl+V, Alt+V и прочие сочетания, позволяющие не отрывать руки от буквенно-цифровой части клавиатуры при наборе и навигации по тексту прочно въелись после уже довольно непродолжительного использования Emacs.

UNIXМигель де Икаса даёт советы по Unix

Один из самых известных Unix-программистов Мигель де Икаса (основатель проектов GNOME и Mono) в своём блоге дал парочку советов, как повысить продуктивность работы в шелле Unix. Он говорит, что иногда встречает молодых хакеров и бывает поражён, насколько мало трюков они знают.

Мигель де Икаса рекомендует ликбез по-быстрому:

1. Прочитать «Unix. Программное окружение» Кернигана и Пайка [русское издание], займёт несколько дней, от силы неделю. Книжка очень старая (1984), но лучше всех разъясняет автоматизацию различных действий в консоли. Вторая книжка — UNIX for the Impatient, чтобы прокачать навыки.

СофтУправление пакетами в Emacs из песочницы



Emacs'ом я пользуюсь уже довольно давно и в общем-то для всего подряд. Хотя число elisp-пакетов распространяемых вместе с этим текстовым комбайном растет постоянно, иногда все же приходится устанавливать сторонние пакеты. Со временем их количество тоже постепенно растет, для них приходится отслеживать зависимости, их также необходимо (или желательно) обновлять, в общем, стандартный набор задач для менеджера пакетов. До недавнего времени для установки elisp-пакетов я пользовался системными пакет-менеджерами под linux типа apt, portage. Определенные неудобства конечно были, но настоящие проблемы начались когда Emacs пришлось использовать под Windows и Mac OS. Кроме собственно управления пакетами, появилась необходимость синхронизировать все установленные файлы, а не только настройки в ~/.emacs.

В итоге я созрел для использования полноценного менеджера elisp-пакетов, желательно обладающего следующими качествами:
  • большая база пакетов
  • удобство создания и поддержания собственных пакетов
  • легкость синхронизации установленных пакетов между компьютерами
  • кросс-платформенность без установки дополнительных приложений

После небольшого исследования существующих возможностей получился этот обзор, в котором я подробно на остановлюсь на elpa и el-get, а также кратко расскажу о других.

Open sourceEmacs нарушал GPL с 2009 года

Редактор Emacs, флагманский продукт GNU и самая знаменитая разработка Ричарда Столлмана, как оказалось, нарушает лицензию GPL с 28.09.2009 г, когда в комплекте с программой началось распространение бинарников без исходных кодов.

Речь идёт о пакете CEDET для анализа статичного кода. Версии Emacs 23.2 и 23.3 содержали синтаксические анализаторы (парсеры), созданные программой bison по грамматикам, без приложения соответствующих грамматик. Технически, сами эти парсеры можно считать исходным кодом (они компилируются и пригодны для чтения человеком), хотя фактически они таковыми не являются — видимо, из-за этого и произошла путаница в толковании условий лицензии GPL. Сокрушаться по поводу такого «нарушения» могут только самые принципиальные люди вроде Ричарда Столлмана.

«Мы совершили очень серьёзную ошибку, — написал Ричард Столлман в рассылке emacs-devel. — Каждый, кто распространял эти версии Emacs, нарушал GPL не по своей вине. Нам нужно исправить данные релизы ретроспективно (или удалить их), и нужно сделать это немедленно. Я вижу два быстрых способа исправить релизы: удалить скомпилированные файлы или добавить для них исходные коды».

Разработчики Emacs не знают, куда пропали исходники CEDET, они уже начали поиски. Сам Ричард Столлман не имеет отношения к разработке Emacs с 2008 года.

Информационная безопасностьБезопасное хранение паролей из песочницы

imageИнтернет прочно вошёл в нашу жизнь. Все мы, даже совсем неблизкие к IT люди, пользуемся большим количеством самых разнообразных сервисов, начиная от почты и заканчивая социальными сетями. Практически все сервисы требуют регистрации. Но для обеспечения безопасности использовать нужно разные пароли, состоящие из многих символов. Ну большинство людей, пользующихся интернетом, знают о требованиях к безопасным паролям. Но тут возникает одна небольшая проблема: как запомнить все эти множества паролей?

ПрограммированиеРабота с умом, а не руками: пример увеличения производительности редактирования текста в Emacs из песочницы

История


Я почти закончил один проект и, как это всегда бывает, в последний момент потребовалось внести массовые рутинные изменения.

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