LINUX.ORG.RU

Emacs


235

6

Всего сообщений: 95

Маргинальщина во все поля

Сменив работу, решил немного подправить свой боевой emacs и вот что из этого вышло:

  • в стабильный Debian был воткнут emacs-snapshot;
  • прикручена тема zenburn, убран меню-бар и всякая лишняя обвеска;
  • в качестве ШГ уже достаточно давно использую terminus;
  • кроме того, прикрутил подсветку текущей строки и выпирающих концов длинных строк, которые выделяются красным цветом.

Теперь по скриншоту. Слева видны полируемые исходники модуля для ejabberd. Для работы с Erlang использую EDTS, который может почти всё и не тормозит как erlang-mode.

Для ускорения эрланга в узких местах иcпользую ocaml. Когда возможностей окамла не хватает или нужно доказывать некоторые утверждения о коде, использую coq.

Работу с окамлом обеспечивает tuareg-mode, а исходниками на coq заведует ProofGeneral.

Ругайте.

 , , ,

ymn
()

«OCaml мёртв и тормозит»

Уже некоторое время я использую язык OCaml в качестве альтернативы Си++ для написания разного рода полезных и не очень программ. Библиотек не очень много, но этот недостаток компенсируется простым как бревно интерфейсом к сишным либам, которых, как известно, чуть более чем дофига.

В качестве среды разработки я использую emacs. Существуют плагины для IDEA, eclipse и vim, но первый у меня не завелся, второй слишком тормозной, а последний умеет только бибикать и все портить.

Для emacs есть несколько пакетов, обеспечивающих базовые инструменты для работы с OCaml. В интернете широко распространен tuareg-mode, но я использую TypeRex.

TypeRex работает на линуксе и макоси, с окамлом старше 3.11.2 и емаксом с версии 23.2.1.

Искаропки умеет:

  • навигация по коду (go to definition и т.п.);
  • автокомплит;
  • базовые возможности рефакторинга кода.

Говорят, его можно собрать и под OCaml 4.0, но я не пробовал.

Итак, на скриншоте можно увидеть:

  • emacs (меню и туллбар, ага) с typerex, пресловутой темой solarized и шрифтами terminus
  • эмулятор терминала через eshell
  • скриншот с v4l2 устройства, полученный в процессе чтения Unix system programming in OCaml и ковыряния библиотеки ocaml-extunix
  • в остальном — дефолтная убунта

 ,

ymn
()

Няшный emacs

Осиливание emacs'а идет полным ходом. Сегодня разобрался со стилями и портировал babymate — привычную схему из snaked, которой пользуюсь уже третий год.

Правда у python-mode были свои представления о кейвордах, декораторах и билтинах, но, слава ТНБ, emacs оказался неожиданно гибок в этом плане.

На прикручивание supplement остается три дня, мы же девятого выходим, да? Думаю успеть. О результатах доложусь.

В остальном это тот же арч, с тем же боксом, под управлением orcsome — лошадка, которая просто работает.

 , , ,

baverman
()

220 вольт, Luci, OpenWRT и сильно кастомная хардваря

Собственно, приспичило сделать себе на даче сделать для небольшой нагрузки розетки, которые можно включать/выключать/ребутить с компа. Покопавшись в хламе откопал релешки, тайни2313, и старенький wl520gu, куда вполне себе можно залить OpenWRT. Все это я укомплектовал парой самодельных печаток, щедро покрытых полиуретаном, и запихнул в пластиковый короб, который на аллюминиевых уголках уходит под полку, и становится вообще невидим. От него до розеток все идет в коробах. Итого, в коробе присутствуют: Блок реле, винтовая колодка для разводки 220 вольт, плата с attiny2313, 9-вольтовый блок питания (кишки оного). Пятивольтового не оказалось под рукой. зато валялся самопальный ненужный dc-dc настраиваемый на LM2596, его я туда и воткнул. Так же там сидит роутер. USB гнездо я отпаял, и поставил туда хаб. С боку я влепил гнездо под плавкий предохранитель (рыжее, советское).

У чипа brcm47xx, который стоит в wl520gU есть неприятный баг в кремнии, из-за которого нельзя работать с 1.1 usb девайсами - все повисает после пары транзакций. Говорят, проблема из-за того, что какой-то там клок неправильный идет на 1.1. Потому я поставил 2.0 хаб (под рукой оказался только самопальный брейкаут хаба Fe1.1s, который собирал для тестов этой микросхемы, сильно привередливая, как оказалось, работоспособность очень здорово зависит от положения развязки по питанию). Хаб делает TT (transaction translation) и бага успешно обходится.

Собственно, внутрь 2313 зашивается vusb стек и три строчки кастомного кода, уложился в 1700 байт из 2кб, а на хосте начинается шаманство. Так как писать под каждый проект заново комманд-лайн утилиту на С задалбывает, я заюзал lualibusb, и написал вот такой костыль: https://github.com/nekromant/lunartool он берет на себя рутину типа матчинга по vid/pid, разруливания случаев нескольких устройств, парсинг комманд-лайн опций и прочую рутину. А сам же код добавляется в виде аплетов вот такого содержания: https://github.com/nekromant/lunartool/blob/master/applets/pw-ctl.lua и это превращается в простую утилиту командной строки. Так как в самом OpenWRT активно юзается lua для LuCi, оверхед был минимальным, и я уместился в 3300 кбайт из 4х мегабайт флеша. Заниматься любовью с extroot совершенно не хочется, ибо гемор при обновлениях. Достаточно залогиниться по ссх, и вуоля:

pw-ctl --on=1
pw-ctl --off=4
pw-ctl --reboot=1

Ну и в виде последнего изыска, я наваял небольшой апликейшн для LuCi чтобы можно было щелкать питанием через веб гуй. Собственно он, и страшненький код его и представлены на скриншоте. LuCi с его cbi штукой оказался очень приятной и удобной. Жалко только документирован сам cbi не особенно хорошо, приходится в сырцы подглядывать.

В планах заменить хаб на более цивильный, выпилить dc-dc и блок 220-->9 вольт и заменить на один блок 220-->5.

Вот и все, осталось только смонтировать до конца.

 , , , ,

AiFiLTr0
()

Ночной ковыль

Мое рабочее место.

Что на скриншоте:

xmonad

firefox + pentadactyl с emacs-like горячими клавишами, dark zenburn global style css, используются цвета из темы gtk.

GNU Emacs с темой zenburn.

Midnight Commander. Тема.

Тема Gtk: zenburn-gtk2-3

ШГ: DejaVu, конфиг.

Используемые костыли можно посмотреть (и утащить, конечно) у меня на гитхабе.

 , , ,

Deleted
()

xmonad, emacs, wl,dired,erc

xmonad, 2 монитора через xinerama.

сверху - xmobar + trayer

Неспешно лазаю по исходникам gallium, а так же сижу в IRC через ERC, читаю mailing листы в wanderlust и лор в w3m-emacs.

Плюс (на скрине не видно) использую bitlbee для сидения в жабирах, асечках и прочих вконтактиках.

emacs на втором экране (снизу) запущен на другой машине, окно emacsclient рисуется через X11, почти не тормозит.

Цветовая тема - попсовая solarized-dark, ШГ - битмапный terminus.

Система - debian testing с самособранным 3.6-rc1.

P.S движок не дает вставить изображение шире 3 килопикселя, поэтому сфотошопил второй монитор под первый.

 ,

x4DA
()

emacs+ESS (Statistics One)

Продолжение курса Statistics One на coursera.org. Область emacs разбита на две части: редактирование учебного скрипта и результат его выполнение. Окошко справа — отрисованные учебные гистограммы.

ESS — стандартная мода для работы с R в emacs. Всё это в дефолтной убунте с третьим гномом без каких-либо настроек, что меня несколько напрягает.

Тема в продолжение к этой теме.

 , ess

Evgueni
()

Заметки по курсу Statistics One

Прошло первое сентября и начались курсы на coursera.org. Смотрю первые лекции Statistics One и делаю заметки для себя. Основная проблема очевидно язык. Всё понятно, но чуть-чуть коварно сформулированные вопросы не воспринимаю. Даже в начале курса я вижу, что универовский курс тервера и статистики на физфаке был до боли куцым.

Ах да: emacs+org-mode — настоятельно рекомендую.

 

Evgueni
()

Может быть когда-нибудь я пересяду на linux

Но это я использую лишь как seamless vbox guest систему. gentoo лишь потому, что другие системы практически не знаю (только красную шапку чуть-чуть).

 , , , ,

nCdy
()

Еще одно KDE (темно)

Так смотрю на последние скриншоты и понимаю, что такое, как у меня - еще не самое большое говно.

Не знаю, посчитается ли это кастомизацией, но я поменял цветовую схему, тему плазмы (ее не видно, потому что панели не нужны), декорации окон и иконки. На скрине emacs с моими неосиляторствами sicp, срач, бардак, содом и гоморра в папке Downloads и System Settings для того, чтобы видно было всю темноту и готишность.

Вот еще с Konsole (zsh, самая минималистичная тема из всех, которые я нашел в стандартной поставке omz).

UPD. пофиксил цвета в эмаксе: https://www.dropbox.com/s/fl0gm2086vfwnxf/snapshot16.png

и промпт консоли: https://www.dropbox.com/s/ti4hofyup4w6lra/snapshot15.png

Советы и аргументированная критика приветствуются.

 , , ,

cdshines
()

Обычный gentoo, awesome, emacs

В емаксе открыл исходники ядра и stumpwm просто показать цветовую схему. Тема gtk2 лучшая из того что перебровал и идеальная для меня, что делать с переходом на gtk3 непонятно. awesome с обычным zenburn и виджетами из vicious. С остальным софтом тоже как у всех mpd, mc etc. Громкость меняю через хардварные кнопки ноутбука забинденные в rc.lua, так что мышь нужна только в браузере. Окно с evince просто показать виджеты.

Тема gtk2 - tri GTK http://weakhead.deviantart.com/art/tri-GTK-167408173

 , ,

vladkuzm
()

Понедельник начинается в пятницу

Говорят, чтобы выучить язык программирования — следует сесть и написать на нём что-нибудь полезное и в меру сложное. Например, понятный и аккуратный обработчик экспериментальных данных вместо той python-солянки-с-лапшой, коей приходится пользоваться ныне.

А работается легче и охотней всего, конечно же, дома в свободное время. В уютном и привычном окружении. С одной стороны — код в емаксе, с другой — туториал, в скрэтчпаде — приятная музыка.

Так и живём.

 , ,

k336184
()

Развлекаемся с Common Lisp

Собственно вот моя околоучебная обстановка (иногда я пишу диссер):

  • Debian Sid;
  • stumpwm;
  • в левом верхнем углу виден самодельный велосипед для визуализации построения адаптивных сеток с помощью самоорганизующихся карт Кохонена. Интерфейс на cl-gtk2, отрисовка на cl-cairo2.
  • внизу старый добрый Emacs 23.4.1 и часть кода, реализующего SOM.

 , ,

ymn
()

Операционная система GNU Emacs завоевывает десктоп! :)

Операционная система GNU Emacs получила новые возможности! Собрал волю в кулак и написал библиотеку, которая практически полностью реализует протокол X11. Библиотека незамысловато называется x11 и написана на чистом Emacs Lisp, но пока имеет статус technical preview, хотя в принципе уже можно писать что-то реальное. За основу пока взяты описания протокола на XML из проекта XCB, которые разворачиваются в реализацию. В результате имеем практически все расширения. Работа с протоколом осуществляется в асинхронном стиле подобно XCB. Чего пока нет:

  • MIT-SHM. Запросы реализованы, но работать через разделяемую память из операционной системы Emacs мы пока не можем, поэтому Будем через сокет закидывать. Тем более, что разница в скорости, говорят (видел где-то в инете замеры), не такая сумасшедшая.
  • XKB. Просто забыл реализовать пару конструкций XML, используемых для описания этого расширения. Это я скоро реализую, поэтому расширение будет работать в полном объеме.
  • Big-requests. Тоже будет реализовано. Расширение содержит всего один запрос. Он реализован. Но именно для этого расширения надо несколько перелопатить процедуры формирования запросов к серверу X, так как подсчет размеров запросов изменяется с этим расширением.
  • GLX. Огромнейший пласт. За него возьмусь сильно позже. Тут же еще надо полностью сгенерировать протокол GL, а он очень обширный.

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

(размер экрана уменьшил до 1024x768, чтобы скриншот поменьше был)

На скриншоте сверху робкая демонстрашка в стиле LSD основного протокола X11 (Core protocol). Ну с arcs, rectangles и core fonts все и так понятно. А вот как выведены фотографии? Я пока не настолько крут, чтобы писать растеризацию jpg и png на Emacs Lisp. Пораскинув мозгами, пошел смотреть, чем может помочь ImageMagick. Оказалось, есть там возможность получить дамп картинки в нужном формате. Так и сделал: надо отобразить картинку - дергаем stream, она нам отдает дамп в буфер, мы его отсылаем в сервер X. «Привет, Isden» написана мышкой. Демка отслеживает событие motion-notify и рисует маленький квадратик под указателем. По кнопке «q» - выход (отслеживается событие key-press)

На скриншоте снизу робкая и неумелая демонстрашка расширения XRender. Тоже в стиле LSD. На ней мы видим linear gradient, radial gradient, треугольник и отрисовку сглаженных окружностей. Окружности состоят из трапезоидов. Алгоритм рассечения (tessellation) я применил первый, какой мне пришел в голову - горизонтальными трапециями. Какая есть проблема? Сглаженный текст! Что-то мне писать растеризацию TrueType или Type1 на Emacs Lisp не улыбается. Есть идея написать программку на Си с помощью Xft, которую я буду что-то просить растеризовать, а она результат будет отдавать в Emacs. То есть примерно как и с ImageMagick поступить.

Надо хорошенько переобдумать API библиотеки, чтобы его заморозить. При этом надо учесть потенциальные и вероятные будущие новшества в Emacs и в библиотеке, чтобы людям не пришлось переписывать то, что написано ранее. Есть недостатки в Emacs, которые реально мешают и раздражают. Преодолимы, конечно, но это будут костыли. Если интересно, то потом поясню, а то уже и так много воды налил.

Так что есть потенциальная возможность воплотить мечту atoku в жизнь. :)

Традиционная ссылка на обоину: #888888. Старую удалил, так как она надоела, а новую еще не искал. Этот серый цвет реально бесит. :)

 , ,

Zubok
()

emacs — лучший редактор vhdl

Потихоньку пилю один проект под VHDL на основе ip ядер из grlib. В связи с этим остро встал вопрос о действительно удобном редакторе VHDL, и пока что лучше, чем vhdl-mode в emacs, не нашел. Тут тебе и автоматическая установка компонентов, и генерирование конфигурации, шаблоны и другие плюшки.

Справа — этот самый emacs с куском кода тестбенча. Слева — консольный фронт-энд дебаггера просинтезированной железки. Все это крутится в debian testing + mate, оконным менеджером пристроил компиз.

 , grlib,

demidrol
()

Рабочее красноглазие

Собственно, так выглядит мой рабочий десктоп:

Собственно вся работа происходит в emacs. Почта, джаббер, словари (dictd) - все в нем, родимом. Работаю в конторе, которая занимается всяким измерительным железом. Приходится писать на Си (ядро + драйвера), Питоне (для всякой скриптоты) и Коммон Лиспе (для всего остального). В обеденный перерыв пилю под себя найденный на просторах интернета конфиг stumpwm.

Ругайте)

 ,

ymn
()

gnome 3 @ x61 tablet

Купил на днях ноутбук себе, б/у, накатил федору. На 12" дюймах немного мелковато, и wacom требует подпиливания, из-за смены ориентации дисплея. Но в целом всё работает отлично, что и следует ожидать от ноута четырёхлетней давности.

 , , , , ,

tensai_cirno
()

Когда коту делать нечего

Ехал в поезде, внезапно подумалось, что неплохо было бы видеть время как «там», так и «тут». В часовом плагине для lxpanel(x) подобная возможность отсутствовала, потому быстренько на коленке накостылял.

Жаль ни манов, ни интернета не было, потому православность способа (setenv «TZ») у меня вызывает некоторые сомнения, ну да ладно, работает - и хорошо.

 , , , , ,

lazyklimm
()

Переехал

Большой переезд: переехал с убунты на арч, с awesome на xmonad (раньше). Немного обустроился. Увлекательно.

Из того, что может заинтересовать:

 , , , ,

folone
()

Пересел на awesome

В связи с событиями вокруг гнома и юнити, пересадил свою убунту на awesome. Сегодня выдалось время чуть подпилить, до этого сидел пару недель в дефолте и был им, в принципе, вполне доволен.

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

Из того, что может заинтересовать:

  • PS1 и конфиги терминала утащил тут.
  • Музыка mpd + ncmpcpp.

 , , ,

folone
()