Всего сообщений: 91
Пришло настроение сделать несколько скриншотов своей домашней
Slackware. Большую часть времени пользуюсь операционной
системой текстовым редактором GNU Emacs, поэтому при
рассматривании скриншотов геометрическая вероятность попасть взглядом
на него существенно выше, чем на какую-либо другую
программу. Оформление KDE близко к обычному, но для меня именно такой
вариант наиболее удобен.
>>> Просмотр (1366x768, 254 Kb)
Попробовал я распахнуть терминал сразу на два монитора. Оказалось довольно удобно — настоятельно рекомендую. Правда мониторы должны быть одинаковыми. emacs не гуишный, так как канал весьма дохлый.
P.S. Да, то что на картинке написал не я, но мне с этим мучиться :(
>>> Просмотр (3840x1200, 364 Kb)
Одна из них — Merlin, редакторонезависимый инструмент для разработки на OCaml, поддерживающий такие фичи современных IDE, как:
Доступен в OPAM под версией 2.1.1
На скриншоте (пишу никому, на самом деле, не нужную штуку — свою реализацию модуля List) он намекнул мне, что я забыл дать рекурсивное определение функции (в теле функции указано её имя, без ключевого слово "rec" в описании).
Ну а так всё уныло: Ubuntu 15.04, GNOME 3.14, Emacs 24.4 (на скриншоте запущен в URxvt), тема везде Paper, кроме иконок, которые Numix Circle.
В плеере играют качовое норм музло парни из Мэриленда.
Оригинал в PNG для ценителей.
>>> Просмотр (1920x1080, 658 Kb)
dwm собран из git, в конфигурации поменял цвета для совпадения с цветовой схемой в emacs, удалил зазоры между окнами и поменял терминал по умолчанию на urxvt Самописный скрипт выводит в панели текущее время, заряд батареи, число непрочитанных писем в почте и ближайший Todo на текущий момент
Так и не дождался появления нового Emacs в репозиториях федоры, собрал из исходников. Цветовая схема - gotham. В Emacs пишется код, читается почта, слушается музыка.
>>> Просмотр (1024x600, 26 Kb)
Вот так выглядит экран моего нетбука большую часть времени. Практически вся работа и побочные действия выполняются в emacs (за исключением серфинга, для которого все еще использую Firefox)
На скриншоте видны
На скриншоте не видны:
>>> Просмотр (1024x600, 118 Kb)
Переполз недавно с Debian на Arch. Наконец-то нашел подходящую темную тему для GTK. Окружение:
На скриншоте:
Внешний вид:
>>> Просмотр (2732x1536, 700 Kb)
Решил выложить первый скриншот на ЛОР. Расскажу подробнее. Музыку я, как вы конечно уже догадались по скиншоту, не сочиняю (потому что просто не умею), а развлекаюсь с программой для синтеза звука в реальном времени Supercollider.
Видно 2 «родных» окна supercollider. Первое - «осциллограф», показывающий аудио выход с 2 каналов. Бесполезная штука, на самом деле. Второе - напротив, очень полезный браузер классов. Для GUI Supercollider использует Qt.
Оценивайте, господа. Музон, который вышел, явно сойдет для наркоманов в клубе. Могу продать трек за большие деньги. Fin.
>>> Просмотр (1920x1080, 139 Kb)
Поэтому я взял конфиг FVWM с десктопа и адаптировал его для ноутбука.
Fvwm оказался очень хорошим и гибким менеджером окон. Сейчас даже не могу представить, чего же ещё от него хочется, видимо всё, что мне нужно, у него уже есть. Сам конфиг переделывался из дефолтного для FvwmCrystal, и поэтому там много лишнего, но переписывать с нуля мне лень.
Особенно порадовало меню — хоть его и нужно писать самому, но зато потом по всем пунктам можно «пройтись» хоткеями.
Красивости:
>>> Просмотр (1366x768, 192 Kb)
Пользователь Github, известный как gcr, разработал клиент сервиса микроблогов Tumblr для GNU Emacs 24 — Tumblesocks. Установить его вы сможете из репозитория Marmalade:
(setq package-archives
'(("gnu" . "http://elpa.gnu.org/packages/")
("marmalade" . "http://marmalade-repo.org/packages/")))
M-x package-install tumblesocks
>>> Просмотр (798x978, 170 Kb)
Где-то в 2010м году, во время очередного витка бурных всплесков интереса к Лиспу на ЛОРе, я решил ознакомиться-таки с этим зверем, установил SLIME, начал читать Practical Common Lisp. Хоть к тому времени я уже был знаком с т.н. инкрементальной разработкой, SLIME поразил моё сознание. Это было так чертовски удобно! И примерно в то же время я задумался, что неплохо было бы иметь нечто подобное для моего любимого Smalltalk.
Конечно, каждая современная реализация Smalltalk предоставляет свои собственные инструменты для разработки - браузеры классов, редакторы, инспекторы, рабочие пространства есть и у Pharo, и в GNU Smalltalk, и в VisualWorks. Хоть они и выполняют одни и те же задачи, они разные. И, да, самое главное - они не Emacs!
Так я и решил сделать своё некое подобие SLIME, учитывая классический подход к разработке на Smalltalk - браузер классов с пометодным редактированием. Естественно, для работы этой вещи нужен был сервер на стороне образа, который по запросам отдает браузеру нужную информацию/применяет присланные правки/выполняет команды/и т.д. Сейчас такой сервер доступен для GNU Smalltalk и Pharo.
На скриншоте можно увидеть, что в итоге получилось. Браузер классов занимает левую часть экрана, он подключен к образу GNU Smalltalk, запущенному на соседнем нетбуке. Списки в верхней половине браузера образуют иерархию: пространства имен, классы, категории методов и сами методы. В нижней половине браузера - область редактирования кода соответсвующего метода (или объявления класса).
В правой части экрана расположены Workspace (аналог REPL, для выполнения произвольного кода и просмотра результатов исполнения) и Transcript (заменяет стандартный вывод). В примере на скриншоте код в Workspace был выполнен однажды, потом в классы ClientConnection и ShampooServer были добавлены методы печати объектов (один из них открыт в браузере), и потом код был выполнен повторно. Разница в выводе и отображена в Transcript.
У проекта так же есть своя страничка, код на гитхабе, все желающие могут присоединиться.
В остальном - всё тот же FVWM, Emacs 23.4.1, NetBSD/amd64 (current).
>>> Просмотр (1680x1050, 70 Kb)
Дистрибутив: Debian Wheezy/Sid/Experimental.
WM: dwm.
Тема GTK+: Solaris colours.
На скриншоте открыт Evince и Emacs с примером из книги «Практическое программирование на Tcl и Tk» и Eshell (ШГ — Liberation Mono).
URxvt, открытый в tabbed. Внутри тот же Emacs с тем же кодом, ШГ — -misc-fixed-medium-*-*-*-15-*-*-*-*-*-iso10646-*
Firefox (Iceweasel) с ЛОР.
>>> Просмотр (1920x1080, 370 Kb)
Сменив работу, решил немного подправить свой боевой emacs и вот что из этого вышло:
Теперь по скриншоту. Слева видны полируемые исходники модуля для ejabberd. Для работы с Erlang использую EDTS, который может почти всё и не тормозит как erlang-mode.
Для ускорения эрланга в узких местах иcпользую ocaml. Когда возможностей окамла не хватает или нужно доказывать некоторые утверждения о коде, использую coq.
Работу с окамлом обеспечивает tuareg-mode, а исходниками на coq заведует ProofGeneral.
Ругайте.
>>> Просмотр (1920x1080, 77 Kb)
Уже некоторое время я использую язык OCaml в качестве альтернативы Си++ для написания разного рода полезных и не очень программ. Библиотек не очень много, но этот недостаток компенсируется простым как бревно интерфейсом к сишным либам, которых, как известно, чуть более чем дофига.
В качестве среды разработки я использую emacs. Существуют плагины для IDEA, eclipse и vim, но первый у меня не завелся, второй слишком тормозной, а последний умеет только бибикать и все портить.
Для emacs есть несколько пакетов, обеспечивающих базовые инструменты для работы с OCaml. В интернете широко распространен tuareg-mode, но я использую TypeRex.
TypeRex работает на линуксе и макоси, с окамлом старше 3.11.2 и емаксом с версии 23.2.1.
Искаропки умеет:
Говорят, его можно собрать и под OCaml 4.0, но я не пробовал.
Итак, на скриншоте можно увидеть:
>>> Просмотр (1366x768, 210 Kb)
Осиливание emacs'а идет полным ходом. Сегодня разобрался со стилями и портировал babymate — привычную схему из snaked, которой пользуюсь уже третий год.
Правда у python-mode были свои представления о кейвордах, декораторах и билтинах, но, слава ТНБ, emacs оказался неожиданно гибок в этом плане.
На прикручивание supplement остается три дня, мы же девятого выходим, да? Думаю успеть. О результатах доложусь.
В остальном это тот же арч, с тем же боксом, под управлением orcsome — лошадка, которая просто работает.
>>> Просмотр (1366x768, 177 Kb)
Собственно, приспичило сделать себе на даче сделать для небольшой нагрузки розетки, которые можно включать/выключать/ребутить с компа. Покопавшись в хламе откопал релешки, тайни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.
Вот и все, осталось только смонтировать до конца.
>>> Просмотр (3000x1080, 495 Kb)
← предыдущие | следующие → |