LINUX.ORG.RU

Сообщения hbee

 

FVWM: Плоский Мир. Пять лет спустя.

Галерея — Скриншоты

FVWM: Плоский Мир. Пять лет спустя.

http://www.linux.org.ru/view-message.jsp?msgid=393807

Ну что ж, выбранный стиль оказался жизнеспособным. Только компьютеры стали быстрее, мониторе - шире (кстати, рекомендую NEC 20WGX2 Pro), vim сменился на Emacs, links - на Firefox, C++ - на Java.

Десктоп домашний. На работе Windows, deeply customized до юзабельного состояния (Emacs+cygwin+dexpot), но это совсем другая история.

Забавно, насколько мало всё изменилось. По-прежнему нет бесполезных рамок у окон. 24 воркспейса, переключение Alt-F<номер>, Win-F<номер> и Win-<буква> для избранных приложений. Обычно на каждом воркспейсе ровно одно максимизированное окно (или несколько, если это многооконное приложение вроде пиджина). Наличие рамки и заголовка у окна - признак неиспользуемости данной программы :). Мышь используется очень мало, поэтому заменена трекболом Logitech Marble Mouse (на скрине не поместился =)).

Реализованы две killer-features. Первая - при переключении на конкретный воркспейс запускается "приписанное" к нему приложение, если ещё не запущено: lazy loading в действии. Вторая - последняя выполненная в xterm команда отображается в заголовке, что весьма удобно для локализации нужного терминала по пейджеру.

Места девать некуда, поэтому панель заполнена всякой фигнёй, огромными часами, великолепным стильным лого FVWM, самопальными оповещалками о новых сообщениях ICQ, Skype, рабочей и гугловой почты, а местами и совсем не заполнена :).

С нетерпением жду комментариев. Как приятно снова окунуться в спокойную, дружелюбную атмосферу ЛОРа, видеть эти улыбающиеся ясноглазые лица, пожимать эти мужественные, закалённые в борьбе руки! =)

>>> Просмотр (1680x1050, 288 Kb)

hbee
()

Отучить seamonkey от антиалиасинга шрифтов

Форум — Desktop

Попробовал создать файл ~/.fonts.conf

<?xml version="1.0"?> <fontconfig> <match target="font" > <test compare="more" name="size" qual="any" > <double>0</double> </test> <edit mode="assign" name="antialias" > <bool>false</bool> </edit> </match> </fontconfig>

но не помогло.

hbee
()

Вопрос к знатокам CVS: проблема при слиянии двух веток проекта

Форум — Development

У меня возникла проблема с CVS, и я не могу понять, где баг - у меня или в CVS. Прошу помощи.

Имеется две ветки исходников проекта: B1 и B2. Первая активно развивается, вторая почти заморожена. Тем не менее во второй ветке есть фичи F1 и F2, которых нет в B1. Время от времени (примерно раз в два месяца) в ветке B1 ставится tag, и производится merge B1->B2 командой, запускаемой в песочнице B2:

cvs update -jtag1 -jtag2

Здесь tag1 старше tag2 по возрасту.

По моему разумению (см. manual http://www.network-theory.co.uk/docs/cvsmanual/cvs_61.html), должно произойти слияние кода B2 с изменениями в B1, которые накопились между моментами проставления tag1 и tag2. Вроде бы так оно и есть, но: фича F1 исчезает (хотя не должна), и что ещё более удивительно, фича F2 остаётся.

Замечены и другие странности, вроде конфликта без меток (два конфликтующих фрагмента наличествуют в тексте, но отсутствуют метки <<<<<<< и >>>>>>>).

В чём тут может быть дело?

hbee
()

Запуск 32-битного ELF на x86-64 и pthreads

Форум — Development

Коркается в функции pthread_cond_wait многопоточная программа, собранная для 32, но запускаемая на 64. Если собрать для 64 - всё OK.

Кто-нибудь сталкивался с подобным? И насколько вообще здоровая идея - запускать 32-bit executable на 64-bit машине?

hbee
()

DjVu - превратить в набор картинок.

Форум — Development

Как бы сконвертировать DjVu в набор картинок, где каждая картинка - "страница" определённого разрешения, скажем 590x472? Для PDF подобная задача решается утилитой pdfimages.

hbee
()

Gnus. Просто Gnus.

Галерея — Скриншоты

Кажется, ещё не было скриншота с Gnus'ом? Это читалка новостей / почтовик, написанная целиком на Emacs Lisp. Что даёт нам "эргономическое единство плюс мощное скриптование на халяву" (формулировка украдена у lg).

Надпись внизу экрана (в минибуфере XWEM) имеет некое диалектическое единство с читаемым обсуждением :)

>>> Просмотр (1024x768, 100 Kb)

hbee
()

XEmacs for fun

Галерея — Скриншоты

Демонстрация некоторых нетривиальных штучек:

1. Mode-depending фоновое изображение.

2. Modeline активного окна отличается от остальных (thanks to lg, идея описана здесь: http://www.linux.org.ru/profile/hbee/view-message.jsp?msgid=887863 ).

3. Ошибки компиляции и ворнинги идут разным цветом (весьма помогает в работе).

4. Текстовое контекстное меню работы lg - заменяет обычное, чтобы не использовать мышь ( http://lgarc.narod.ru/xemacs/index.html ).

5. Наконец, давно муссируемая тема - smart completion а-ля MSVS.

Window manager - XWEM ( http://www.xwem.org ), конечно же!

Интересно, lg расшифровывается как Lisp Guru? :)

>>> Просмотр (1024x768, 91 Kb)

hbee
()

Lisp for fun

Галерея — Скриншоты

Демонстрация использования Лиспа для создания OpenGL программ. Драйвер на Лиспе (driver.lisp) управляет тупым движком на C++ (engine.cpp) через FIFO-файлы. Движок возвращает события ввода как s-выражения, готовые для интерпретации.

Почему для логической части проекта лучше использовать Лисп, а не C++? Да потому, что программы на C++ - машины, а программы на Лиспе - организмы :-)

Движок использует тулкит OGRE ( http://www.ogre3d.org ), драйвер написан на CMU CL ( http://www.cons.org/cmucl/index.html ).

На закуску, старинная народная ЛОРовская забава: угадай window manager :-)

>>> Просмотр (1024x768, 96 Kb)

hbee
()

XWEM - первые шаги

Форум — Development

Какова лучшая конфигурация для запуска XWEM?

Первое, что я получил (установив http://www.xwem.org/packages/xlib-current-pkg.tar.gz и http://www.xwem.org/packages/xwem-current-pkg.tar.gz) при ~/.xwem/xwemrc.el, содержащем только строчку (setf max-lisp-eval-depth 5000):

Symbol's value as variable is void: default-toolbar-visible-p

А при попытке M-x kill-emacs:

Wrong type argument: XSetInputFocus, X-Dpy-p, nil

Подписался на рассылку xwem-devel@xwem.org, но не хочу засорять её своими глупыми вопросами :-)

Ниже следует текущая конфигурация.

hbee
()

XEmacs/pcl-cvs: вывод версии в modeline

Форум — Development

Если локально изменить CVS-controlled файл, то номер версии в modeline начинает выводиться при помощи face 'highlight. Это здорово, но хотелось бы уметь изменять этот face. Как бы исхитриться это сделать?

Для чего это нужно. Если шрифт в modeline мельче основного, то 'highlight там выглядит уродливо. Если же уменьшить 'highlight, то в основном тексте подсвеченные куски даются меньшим шрифтом - ещё хуже.

hbee
()

Gnus как почтовик: проблемы с письмами в windows-1251

Форум — Desktop

XEmacs 21.4.16 без Mule, Gnus 5.10.6

Настройки умолчальные, за исключением (setf message-default-charset 'koi8-r)

Сообщения с виндовой кодировкой видятся так:

|----------------------------------------------
|Content-Type: text/plain; charset=Windows-1251
|Content-Transfer-Encoding: 8bit
|
|яБЪГЭ РН Х ДЕКН ОПНОЮДЮЕР
|----------------------------------------------

Пляски с mm-coding-system-priorities и gnus-summary-show-article-charset-alist
ничего не дают.

Проблема! Можно, конечно, перекодировать буфер, но хотелось
бы автоматически...
hbee
()

XEmacs: подсветка произвольных слов в c++-mode

Форум — Development

Допустим, нужно подсветить слова foo и FOO как ключевые. 
В соответствии с документацией на переменную font-lock-keywords
пишем в хуке для соответствующей моды:

(set (make-local-variable 'font-lock-keywords)
  (append c++-font-lock-keywords
     '(("\\<\\(foo\\|FOO\\)\\>" 0 font-lock-keyword-face t))))

Получаем требуемую подсветку, но внутри комментариев тоже! 
То есть выбранный face перебивает font-lock-comment-face?
Может, надо сунуть в переменную более сложное выражение?

В общем, прошу помощи у знатных емаксеров, например у lg :-)
hbee
()

Скрипт на newLISP'е

Форум — Development

":"; exec newlisp $0 "$@"
;;; Check if a file contains at least one ^M character

(if (< (length (main-args)) 3)
    (begin (println "Usage: control-m <filename>") (exit)))

(setq filename (nth 2 (main-args)))
(setq file (open filename "read"))
(unless file
    (begin (println "Cannot open file " filename) (exit)))

(define (test)
    (while (setq in-char (read-char file))
        (if (= in-char 13)
            (throw "YES")))
    (throw "NO"))

(catch (test) 'ans)
(println ans " " filename)

(close file)
(exit)
hbee
()

Архитектурное решение: GUI в отдельном процессе

Форум — Development

Начинаем разрабатывать на C++ сложный продукт, моделирующий сложный объект :-). Должен быть насквозь скриптован, часто будет запускаться в пакетном режиме. Не менее часто, однако, будет использоваться GUI. В связи с этим напрашивается решение разделить GUI и функциональность по разным процессам.

Какой механизм IPC для этого лучше использовать? Сокеты смотрятся слишком низкоуровневыми (придется разрабатывать и поддерживать сложный протокол). CORBA выглядит слишком громоздкой...

hbee
()

Emacs compile: errors и warnings разным цветом

Форум — Development

Как бы научить Emacs выводить сообщения об ошибках и ворнингах разным цветом в буфере компиляции? Было бы весьма пользительно.

hbee
()

Назначение клавиш в Emacs

Галерея — Скриншоты

Вот такие вот мелкие приятности для C++ кодера :)

>>> Просмотр (1024x768, 39 Kb)

hbee
()

Emacs M-x occur

Форум — Desktop

Команда M-x occur запрашивает регулярное выражение и открывает во втором окне буфер-меню *Occur*, содержащий подходящие строки текущего буфера. При нажатии RET на любой из строк occur-буфера перескакиваем в текущий буфер на нужное место.

Всё хорошо, но как сделать, чтобы окно буфера *Occur* автоматически закрывалось при этом?

hbee
()

Кто пользуется C++ средой VolkoEditor?

Форум — Development

Вроде симпатичная: http://www.volkoeditor.com/

Как она в работе?

hbee
()

Простейшая функция на ELisp - не работает...

Форум — Development

Пишем в ~/.emacs

(defun my-isearch-yank-word () (interactive) (isearch-yank-string (current-word)))

Потом открываем заново этот файл, установив курсор на слово defun. Вместо того, чтобы подставить его в поиск, выдаёт:

Wrong type argument: integer-or-marker-p, nil

При повторном запуске картина меняется:

Failing I-search backward: defundefun

(Sic!) Где ж засада?

hbee
()

POV-Ray

Галерея — Скриншоты

Это интересный пакет для рейтрейсинга. Мне нравится такой не-WYSIWYG подход, когда сцена сначала описывается на некотором языке, а потом рендерится.

>>> Просмотр (1024x768, 220 Kb)

hbee
()

RSS подписка на новые темы