LINUX.ORG.RU

Сообщения j-a-t-a

 

Работающий OpenVPN блокирует подключение к серверу

Возникла странная проблема: Подключаюсь по ssh к удаленному серверу (1), запускаю на нем openvpn клиент, клиент подключается к vpn серверу (2). В момент подключения связь с сервером 1 теряется, пинги не идут, переподключиться не получается.

У хостера (DigitalOcean) есть vnc консоль, и через нее видно, что openvpn работает, данные идут, интерфейсы eth0 и tun0 живы и здравствуют.

Насколько я понимаю, сам факт подключения к vpn не должен блокировать реальный сетевой интерфейс. Тогда в чем может быть проблема?

 

j-a-t-a
()

Clementine в dwm блокирует ввод в остальных приложениях

Столкнулся со странной проблемой: в dwm при работающем Clementine блокируется ввод в остальные приложениях — при попытке вписать что-либо с клавиатуры курсор ввода моргает, но ничего не происходит, при этом в Clementine все вводится как надо. Мышь везде продолжает работать.
Ни Clementine, ни dwm, ни xorg никаких ворнингов\ошибок не выдают. Help!

 ,

j-a-t-a
()

Как узнать, под какими дефайнами находится код?

Есть ли какой-нибудь способ определить, под какими дефайнами находится код?

Например, если есть что-то такое:

#ifndef X
void foo( bool b)
{
#if (Y == Z)
    baz();    <=== здесь хочется получить что-то вроде "ifndef X && (Y == Z)"
#endif
}
#else
void foo()
{
    bar(); <=== а здесь "!ifndef X"
}
#endif

Задача похожа на поиск парных скобок, и без автоматизации жутко раздражает.

 ,

j-a-t-a
()

Шумозащита в openspace

Работаю в openspace, дико отвлекают и не дают концентрироваться шумы и разговоры людей вокруг.

Нужна какая-то персональная шумоизоляция.

Слушать музыку не подходит. Музыка тоже отвлекает.

Лучшее из всего попробованного — беруши, больше всех понравились 3M 1100. Большая часть звуков приглушается, но как раз разговоры практически не фильтруются.

Насколько я понимаю, проблема в том, что почти вся индивидуальная шумозащита (включая супердорогие и громоздкие наушники типа 3M Peltor) проектируется под фильтрацию очень громких шумов, типа грохота на заводе, но при этом дает возможность слышать речь. А мне нужно абсолютно обратное — грохота тут нет, а вот болтовню хотелось бы выключить напрочь.

Скорее всего я не одинок с этой проблемой, кто как ее решает? Может быть есть какие-нибудь специализированные решения?

 , openspace

j-a-t-a
()

Кому книжки?

В связи с изменением всего отдаю книжки. Немного обалденных книг по лиспу с амазона, немного классики по искусственному интеллекту, немного по ядру, немного дискретной математики, чуток хаскеля, и еще несколько микрокатегорий — смотрите фото. Еще есть архив ][ c конца 2001 по середину 2005 года, может кому-нибудь в коллекцию надо.

Лор, я очень на тебя надеюсь! Для меня вся эта затея — это примерно как пристроить щенков, надеюсь они найдут любящих хозяев. И уж выкидывать ненужные книги (даже совсем пропащие, вроде «Сервисов и протоколов Win2k») для меня — последнее дело.

Фото книг здесь:
http://itmages.ru/image/view/475833/c66afef3
http://itmages.ru/image/view/475835/2e5844c3
http://itmages.ru/image/view/475856/f8509e18

Пишите кому что надо. Место встречи — метро Нагорная, для третьей пачки — где-нибудь в метро между Крылатским и Нагорной.

UPD: Приоритет хотящим конкретные книги, а не вообще. Проведите аналогию с отдачей щенков, и вы меня поймете :) Если желающих много, разберитесь сами, пожалуйста.

UPD2: почта flagist0 на гмэйле. Телефон для конкретизирования встреч (где встречаемся), 8 962 927-84-98 (прошу не злоупотреблять, я на работе).

 , , , ,

j-a-t-a
()

[emacs] Переключение тэгов в зависимости от пути к файлу

Я работаю одновременно с исходниками из нескольких репозитариев.

Хочу сделать так, чтобы emacs переключался на другую таблицу тэгов (сtags) при переключении на файл из другого репозитория.

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

Код переключалки (если есть нарекания по коду, высказывайте, в ELisp'е я совсем лопух):

(defvar tag-paths-alist () "*List containing pairs of path regexp and corresponding tag file." )

(setq tag-paths-alist '(("/somepath/trunk.x/" . "/somepath/trunk.x/bla/TAGS")
                        ("/somepath/trunk.y/" . "/somepath/trunk.y/bla/TAGS")))

(defun switch-tag-file () "Find corresponding tags file for current buffer and enable it."
  (interactive)
  (if tag-paths-alist
      (let ((alist-iter tag-paths-alist))
        (while alist-iter
          (let ((path-regexp (car (car alist-iter)))
                (path-to-tags (cdr (car alist-iter))))
            (if (string-match (regexp-quote path-regexp) default-directory)
                (progn
                  (message "switch-tag-file: found \"%s\" for \"%s\"\n" path-to-tags default-directory)
                  (setq tags-file-name path-to-tags)))
            (setq alist-iter (cdr alist-iter)))))))

 

j-a-t-a
()

[emacs] Есть ли поддержка тэгов от Exuberant Ctags?

Насколько я понял, emacs неважно, каким тулом была создана база тэгов, главное чтобы совпадал формат. Я хочу использовать Exuberant Ctags (а etags, gtags, semantic etc — не хочу), который по опции -e генерирует базу в емаксовском формате. База генерируется без ошибок. Но при попытке подключить тэги емакс выдает «visit-tags-table-buffer: File /<path>/TAGS is not a valid tags table»

Что делать? (с)

 

j-a-t-a
()

[emacs 23] Ограничить количество окон

В emacs 23 раздражает одна вещь: он делит фрейм на слишком большое количество окон. В емаксе 22 пространство сплитилось максимум на 2 окна, при открытии нового буфера он перекрывал одно из открытых окон. А 23 емакс делит фрейм, пока число окон не достигнет 4.
Это усложняет переключение и мешает нормальному восприятию.
Уважаемые знатоки, как ограничить максимальное количество окон на экране?
PS: Уже спрашивал в General, но там никто не ответил.

j-a-t-a
()

[emacs 23] Ограничить количество фреймов

В emacs 23 раздражает одна вещь: он открывает слишком много фреймов одновременно, что усложняет переключение и мешает нормальному восприятию.
Например, если открывать результаты грепа, то у меня на экране будет 4 буффера — греп и три файла. В 22 емаксе фрейма было бы два.
Уважаемые знатоки, как ограничить максимальное количество фреймов на экране?

j-a-t-a
()

[emacs, русская раскладка] Биндинги, аналогичные английским (^s == ^ы etc)

С недавнего времени стал писать на русском в емаксе. Проблема в том, что не работают кейбинды, повешенные на английские буквы. Постоянно переключаться смерти подобно. Возникла идея хака, при получении не self-insert сочетания клавиш заменяющего русские буквы на висящие на этой клавише английские. Подскажите, есть ли какие-нибудь готовые решения по этому вопросу?

j-a-t-a
()

[emacs, org-mode] Перенос строк

В org-mode ужасно раздражает автоматическая вставка переносов строки после определенной длины строки (примерно 70 символов).
Кто-нибудь знает, как выключить эту фичу или хотя бы изменить максимальную длину строки до переноса?

j-a-t-a
()

gcore, core dump и gdb

Пытаюсь сделать core dump многотредовой программы в определенной точке и дальше использовать его как снэпшот состояния для отладки. Делается это для ускорения отладки, т.к. программа идет до места падения очень долго, а reverse debug использовать не могу — gdb не поддерживает обратную отладку для многотредовых приложений.
Для создания дампа использую gcore. Насколько я понял, версии gcore для Linux и BSD отличаются — BSDшная версия умеет останавливать программу до снятия дампа. Поэтому усыпляю программу вручную — из кода вызываю kill(SIGSTOP,getpid()), дальше снаружи вызываю gcore на выданный pid.

Полученный дамп отдаю gdb (7.2) через --core. Он определяет исходную программу, восстанавливает треды, но в бэктрэйсе показывает муть и не подхватывает отладочную информацию. Подключение исходного бинаря через symbol-file ничего не меняет. При попытке запустить исполнение с места сохранения выдает No executable file specified.
Раньше с core dump'ами не работал. Need help.

j-a-t-a
()

SIGFPE

Первый раз такое встречаю — получил Float Point Exception c подкодом Inexact Result. Уважаемые эксперты, поясните пожалуйста суть этого исключения — у гугла непривычно скупая выдача по этому вопросу. Насколько я понимаю, этот тип ошибки связан с невозможностью для инструкции выдать неокругленный результат. Тогда почему этот эксепшн не вылезает на каждом шагу, например при попытке сохранить в double 2/3?

j-a-t-a
()

time: Почему изменяется время в юзерспейсе?

Добрый день.
Не могу понять, почему у неинтерактивных программ, делающих одно и то же в одном и том же окружении, различается время исполнения в юзерспейсе. Например смотрим время грепа по директории:
$ for i in {1..5} ; do /usr/bin/time -f «E:%E S:%S U:%U» grep blahblah *; done
E:0:00.21 S:0.11 U:0.08
E:0:00.19 S:0.09 U:0.08
E:0:00.16 S:0.08 U:0.07
E:0:00.15 S:0.07 U:0.06
E:0:00.16 S:0.07 U:0.06
Насколько я понимаю, вся функциональность, время исполнения которой может варьироваться в зависимости от загрузки системы и т.д., например открытие\закрытие файлов, чтение из них и вывод на экран, исполняются в ядре через сисколлы. Поэтому ядерное время может меняться. Но какие факторы влияют на время исполнения в юзерспейсе?

j-a-t-a
()

Восстановить таблицу разделов и xfs-раздел

На винте был один xfs-раздел, занимающий все место. Раздел был удален, данные раздела не были затерты, но таблица разделов была перетерта. Теперь вопрос: можно ли с максимальной точностью определить границы раздела и снова занести эти данные в таблицу разделов? Видимо для этого надо найти суперблок XFS, но как это сделать?

j-a-t-a
()

[emacs] Поменять местонахождение .emacs.d

Добрый вечер!
Пользуюсь Emacs Starter Kit, чтобы содержать все модули, настройки и т.д. упорядоченно и в одном месте.
На работе ввели квоту на домашнюю папку в 100Мб. Все что мог — перенес в другое место, но все равно возникает проблема с дот-файлами и конкретно с Самой Важной Папкой — ~/.emacs.d.
Скажите, есть ли способ сказать emacs искать её в другом месте?

 

j-a-t-a
()

[emacs] Восстановить custom-variables из памяти

По стечению обстоятельств стерся custom.el, в котором лежали все [непомерным трудом накопленные] кастомизированные переменные.
Но экземпляр emacs, считавший еще правильный файл, еще жив. Появилась мысль, что можно найти в нем все кастомизированные переменные и сдампить их обратно в файл.
Please help!

 

j-a-t-a
()

[emacs] Изменение аттрибутов текста

Захотел сделать раскрашивалку в емаксе, пытаюсь изменить бэкграунд текста в данном регионе.

(defface hl
  '((t :background "red"))
  "Default face for colorizing the region.")

(defun colorize-region (from to &optional ask-for-color)
  (interactive "r\nP")
  (progn
    (if ask-for-color
        (read-face-attribute 'hl :background))
    (put-text-property from to 'face 'hl)))

Возникло три вопроса: 1. Неужели нельзя напрямую изменить аттрибут :background для текста, а надо задавать свой фейс?

2. Как хранится аттрибут фейса в тексте? Ссылка это или значение?

3. Почему оно не работает?

 

j-a-t-a
()

[emacs,whitespace-mode] Уведомление о найденных проблемах

Попробовал whitespace-mode в emacs, понравилось. Единственное неудобство — если файл большой, то подсвеченные проблемы можно и не увидеть. В принципе, есть whitespace-report, но его надо вызывать ручками для каждого файла, да и содержит он слишком детализированную информацию — мне только нужно знать, найдены ли указанные мной проблемы или нет. Посему хотелось бы, чтобы при открытии файла whitespace делал проверку и менял цвет имени мода в мод-лайне в случае проблем.
Как это сделать? Как менять цвет в модлайне я вроде нашел:
(setq mode-name (propertize mode-name 'face 'whitespace-indentation))
(force-mode-line-update)
Остальное сокрыто туманом незнания.

j-a-t-a
()

[пришла весна] gcc выдает разные результаты при вызове из шелла и субпроцесса

Есть сгенерированный исходник на плюсах, содержащий два статически инициализированных массива структур и код между ними, примерно такого вида:

struct global_sym {
  char* name;
  void* target;
};

struct global_sym imported_syms[]={
  { 0, 0 }
};

//тут код, где объявляются нижеупомянутые ops_fed и reset_ops

struct global_sym exported_syms[]={
  { "ops_fed" , &ops_fed },
  { "reset_ops" , (void*) reset_ops },
  { 0, 0 }
};
В программе вызывается gcc для компиляции этого исходника:
 command = "gcc" + filename + " -c  -g -fPIC -o " + obj_name + " 2>&1";
 output = popen(command.c_str(),"r");
В скомпилированном таким способом коде отсутствует второй массив структур, nm такого символа не видит! Но первый массив присутствует:

0000000000000000 B imported_syms.

Во время выполнения программа выводит команду, которой выполняется компиляция. Так вот, если выполнить эту команду в шелле, то, как и должно быть, в объектнике появятся оба массива:

0000000000000000 D exported_syms

0000000000000000 B imported_syms

Собственно вопрос: почему gcc (3.4.6) считает себя в праве удалить массив и почему он этого не делает при вызове ручками (код, опции и компилятор тот же)?

j-a-t-a
()

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