LINUX.ORG.RU

Сообщения xio

 

Частые сегфолты R под HP-UX (проблема со сборкой?)

Форум — Development

Собираю R 3.4.3 на HP-UX 11.31 с GCC 4.9.2. К удивлению, компилится до конца, но потом начинают лезть сегфолты. Т.е. некоторые вещи работают:

> 1+2
[1] 3
> sum(c(1,2))
[1] 3
> var(c(1,2,3))
[1] 1

Ну а некоторые нет:

> pgamma(1,Inf,Inf)
*** caught segfault ***
address d0650000, cause 'invalid permissions'

Traceback:
1: pgamma(1, Inf, Inf)

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection: 1
R is aborting now ...
Segmentation fault (core dumped)

'Причина' у сегфолтов бывает довольно разной.

Вообще говоря, если собирать с --with-readline, то крашится не доходя до промта:

/usr/lib/hpux32/dld.so: Unsatisfied code symbol 'tgetent' in load module '$LOCAL/lib/libreadline.sl.7'.
Killed

GCC'ные C и С++ компиляторы уже были в системе, gfortran пришлось собрать самому. Однако это получилось сделать не сразу, и у меня есть подозрения, что он не совсем корректно может работать, хоть сборка была и через трехшаговый бутстрап со всем полагающимся. Так что хотелось бы gfortran сразу исключить.

Куда еще можно посмотреть? Тулчейн на сервере по однородности можно сравнить с лоскутным одеялом.

Прикладываю на всякий случай еще вывод file и ldd:

$ file bin/exec/R
bin/exec/R:     ELF-32 executable object file - IA64

$ ldd bin/exec/R

bin/exec/R:
         /usr/lib/hpux32/libpthread.so =>        /usr/lib/hpux32/libpthread.so
         libRblas.sl =>  $LOCAL/var/build/R-3.4.3/lib/libRblas.sl
         libgfortran.so.3 =>     $LOCAL/lib/libgfortran.so.3
         libm.so.1 =>    /usr/lib/hpux32/libm.so.1
         libunwind.so.1 =>       /usr/lib/hpux32/libunwind.so.1
         libdl.so.1 =>   /usr/lib/hpux32/libdl.so.1
         /usr/local/lib/hpux32/libintl.so =>     /usr/local/lib/hpux32/libintl.so
         /usr/local/lib/hpux32/libiconv.so =>    /usr/local/lib/hpux32/libiconv.so
         libpcre.so.3 => $LOCAL/lib/libpcre.so.3
         liblzma.so =>   /usr/local/lib/hpux32/liblzma.so
         libbz2.so =>    /usr/local/lib/hpux32/libbz2.so
         libz.so =>      /usr/local/lib/hpux32/libz.so
         libnsl.so.1 =>  /usr/lib/hpux32/libnsl.so.1
         librt.so.1 =>   /usr/lib/hpux32/librt.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libgfortran.so.3 =>     $LOCAL/lib/libgfortran.so.3
         libm.so.1 =>    /usr/lib/hpux32/libm.so.1
         libunwind.so.1 =>       /usr/lib/hpux32/libunwind.so.1
         libgcc_s.so.0 =>        $LOCAL/lib/libgcc_s.so.0
         libm.so.1 =>    /usr/lib/hpux32/libm.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libgcc_s.so.0 =>        $LOCAL/lib/libgcc_s.so.0
         libunwind.so.1 =>       /usr/lib/hpux32/libunwind.so.1
         libuca.so.1 =>  /usr/lib/hpux32/libuca.so.1
         libiconv.so =>  /usr/local/lib/hpux32/libiconv.so
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libpthread.so.1 =>      /usr/lib/hpux32/libpthread.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libxti.so.1 =>  /usr/lib/hpux32/libxti.so.1
         libdl.so.1 =>   /usr/lib/hpux32/libdl.so.1
         libc.so.1 =>    /usr/lib/hpux32/libc.so.1
         libunwind.so.1 =>       /usr/lib/hpux32/libunwind.so.1

Везде выше $LOCAL — это некоторое потаенное дерево, куда локально ставится около-гнушный софт.

 ,

xio
()

Сглаживание шрифтов в LyX (RGBA vs. grayscale)

Форум — Desktop

Привет,

вот так выглядели шрифты в LyX версии 2.0.3 (если не изменяет память) под убунтой 11.xx: http://s22.postimg.org/ql77qjb0x/Screenshot_Ly_X_doc_Intro_lyx_read_only.png (1)

А так выглядят шрифты в LyX 2.0.3 (а также 2.0.6 и 2.1.0) под Ubuntu 13.04: http://s10.postimg.org/t47iudqzd/Screenshot_from_2013_08_03_18_20_38.png (2)

Возможно ли привести (2) к виду (1)? Если я правильно понимаю, разница в рендеринге шрифтов такова, что в первом случае используется RGBA, а во втором — grayscale сглаживание. В системных настройках выставлено RGBA сглаживание со slight хинтингом.

 , , ,

xio
()

eclipse + pydev console: не срабатывает повторный pylab.show()

Форум — Development

Привет, столкнулся со следующей проблемой: в pydev консоли эклипса не срабатывает повторный вызов pylab.show(). Допустим,

import pylab
import numpy
x = numpy.arange(-5, 6)
y = lambda x: x**2
pylab.plot(x, y(x))
Out [6]:  [<matplotlib.lines.Line2D object at 0xabf4dec>]
pylab.show()
# показывает хорошо, закрываю окошко с плотом
pylab.plot(x, y(x))
Out [8]:  [<matplotlib.lines.Line2D object at 0xab7242c>]
# не кажет
pylab.show()
# не кажет

В консольном ipython же все работает как должно.

xio
()

Простой вопрос по тригонометрии (период функции)

Форум — Talks

Привет,

помогите разрешить когнитивный диссонанс по вот какому простому вопросу:

  • Период f(x) это такое T, что f(x + T) = f(x).
  • Для sin(x) Tmin = 2pi, sin(x + 2pi) = sin(x).
  • Проблемный же случай, если x домножить на константу, т.е. правильный Tmin для sin(3x) есть Tmin = 2pi/3, что «makes sense», поскольку sin(3x) в три раза «короче» sin(x). Однако sin(3x + 2pi/3) != sin(3x), т.е. не удовлетворяет определению периода.
xio
()

Secondary MX anyone?

Форум — Talks

Маленький smtp сервер из пары юзеров ищет надежного secondary mx партнера на неопределенный срок. Предпочтительно на безвозмездной основе.

wbr

xio
()

Живы ли экспертные системы?

Форум — Talks

AFIAR в девяностые было много шума по поводу экспертных систем, на которые возлагались большие надежды по решению комплексных задач, связанных с «интеллектуальной» обработкой больших объемов данных. Потом это все как-то затихло, и ни в новостях, ни в непрофильных статьях я лично про них больше не слышу.

С чем это связано? Потеряли актуальность? Не оправдали надежд как GOFAI? Оказались слишком эффективны?

Идея-то прекрасная. В голове нереально решать некоторые задачи после определенного предела сложности. Типа, много-много разнообразных объектов, сложных связей между ними, куча меняющихся состояний этих объектов, вложенности, плюс общая динамичность всей системы: постоянное добавление новых данных, удаление старых, etc. Представьте себе моделирование политической ситуации, например. Такие-то страны в определенных отношениях с такими-то странами, внутри какой-нибудь страны много-много динамических характеристик, которые обновляются в реальном времени и влияют на глобальный расклад ну и все такое прочее. А потом нужно, допустим, предугадать развитие событий с учетом всего можества факторов или поставить цель и просчитать конкретные шаги для ее осуществления.

Работал кто-нибудь с экспертными системами, в общем? Как дела обстоят?

xio
()

[python] Неправильное использование yield?

Форум — Development

Изначально нужен был код, чтобы начинать чтение с произвольной строки в файле. Родилось следующее:

def read_next_line(filename, start_line=0):
    with open(filename) as src:
        for line_number, line in enumerate(src):
            if line_number >= start_line:
                yield line

Затем в другом месте дергается так:

for word in read_next_line(filename, start_line):
    # so things

Однако как задумано не работает. Если вызывать .next() у получившегося генератора, заново итерируется весь for цикл. Почему так же?

 

xio
()

Желающим получить ученую степень за рубежом (республика Южная Корея)

Форум — Talks

Всем привет!

Приглашаю заинтересованных лиц ознакомиться с условиями обучения за рубежом в республике Южная Корея с целью получения магистерской или докторской степени.

Все подробности по ссылке: http://www.yu.ac.kr/_yboard-2008/type1_down.php?board_id=engnews&seq=124&...

Основные моменты:

  • 1 год на изучение корейского языка + 2 года университетского обучения для мастера или 3 для доктора;
  • интернациональная среда, как следствие — практически неизбежная необходимость говорить на английском или корейском;
  • соответствующие моральные издержки, поначалу вовсе неочевидные;
  • полное покрытие расходов со стороны корейского правительства.

Ежели кто ознакомился с документом по ссылке и возжелает испытать свою судьбу, тот пусть напишет мне на электропочту по адресу xio@ungrund.org. Я потом эту кандидатуру порекомендую на общем собрании, как к этой программе непосредственно относящийся. Сделать это нужно не затягивая, в течении времени до завтрашней ночи (Wed Feb 15 04:00:00 KST 2011).

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

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

xio
()

[алгоритм] маппинг одной координатной системы в другую

Форум — Development

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

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

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

 

xio
()

emacs + ibus

Форум — Desktop

К емаксу есть «плагин» ibus.el[1], который дозволяет переключать раскладки через ibus. В ibus сконфигурировано два языка; в гтк-приложениях можно переключаться с умолчального английского языка на тот, что сконфигурирован первым в ibus, затем на второй и обратно по кругу.

Что работает хорошо в гтк-емаксе: (автоматическая при старте) активация режима, переключение (toggle) на ввод первого языка.

Что хочу, чтобы заработало: переключение с первого языка ibus на второй.

Поискал функции, вроде такой нет, вроде 'ibus-next-layout'. Есть ibus-enable, которая принимает опциональный аргумент engine-name. Другое дело, что я не знаю, что на его место подставить и вообще то ли оно.

В терминале, понятно, все работает.

1: http://www.emacswiki.org/emacs/IBusMode

xio
()

А есть ли альтернативы LVM на десктопе?

Форум — Desktop

Диск A: 500Gb (полный)
Диск Б: 1Tb (пустой)
Диск В: 2Tb (пустой)

Хочу, значит, диски А+Б использовать под данные, а диск В — под бэкап. При этом, хочу иметь одно... мнэ-э-э «файловое пространство» А+Б, чтобы все данные на них записанные были видны в одной дирректории.

На сервере бы подошел LVM, допустим, на десктопе/ноутбуке хочется иметь возможность подключать диски по одному за раз + подключать по отдельности к другим машинам.

Можно? Про unionmount вот слышал, оно?

xio
()

[python]Генератор снега

Форум — Development

Привет, у нас первый снег:

   *        .                 .              .                      * 
                                                                      
       .                            *                                 
         .*                                      *  .     *           
             .                                                        
                 *                                   .   .            
                      *       .               *      *                
          *                                         *     *     .    .
                           *                         .                
      *                  .                                         .  
               .        .  *                 *                  *     
             .      .                    .                .           
         .                                   .                        
                 .               .                                    
  *       .                        .       .                        . 
           *                         .              *                 
                .                  *          *         *             
           .  .                        .               .  *.          
          *    *   **                                    *            

Можно ли красиво написать такой генератор рандомного снега в одну строчку, например list comprehension'ом?

import random

freq = 0.95
flakes = ['*', '.']

def snow(x, y):
    for _ in range(y):
        s = ''
        for _ in range(x):
            if random.random() > freq:
                s += random.choice(flakes)
            else:
                s += ' '
        print s

snow(70, 20)

Думал поначалу нагенерить снежинок, потом ljust и перемешать, но random.shuffle() меняет in-place, не возвращая модифицированной строки.

Алсо! В данном примере s при присваивании каждый раз указывает на новый объект, поскольку строки неуязвимы — как это сказывается на потреблении помяти? Сборщик какой-нибудь подчищает сразу же?

 

xio
()

screen vs function keys

Форум — Desktop

Плохо разбираюсь в этой теме, думаю самостоятельно не справлюсь. А именно! В виме, допустим, удобно замапить вызов дебаггера на F6, а выход из него — на Ctrl+F6 и т.п. Проблема в том, что внутри screen/tmux сочетания Ctrl, Shift, Alt и функциональных клавиш вызывают сайд-эффекты вроде переключения между буферами в screen и до приложения как таковые не доходят.

Вопрос: можно ли научить screen/tmux игнорировать такие сочетания и просто передавать их приложению напрямую?

xio
()

[vim] [omni-completion] закрыть сплит со справкой автоматически?

Форум — Desktop

В виме есть какой-никакой комплит имен методов, всего такого прочего, вызывается по C-xC-o. Бонусом к нему открывается сплит, в тем scratch buffer с соответствующим содержанием pydoc.

Это удобно, но буфер этот после завершения комплита не закрывается самостоятельно и его приходится убивать по C-wc. Можно сделать так, чтобы он автоматически закрывался после завершения комплита?

 

xio
()

python debugging output

Форум — Development

Товарищи! Мне нужно в коде на Питоне в стратегических местах расставить отладочные print'ы, однако, которые можно было бы выключить простой установкой глобальной переменной ну или еще каким удобным образом + бонусом, чтобы у принтов на разные значения вроде ошибки или успешного выполнения были бы разные префиксы.

Нашел logger, пока написал вот чего, но уже очень оно большое и несуразное, нет ли способа попроще?

class CritFilter(logging.Filter):
    def filter(self, rec):
        return rec.levelno == logging.CRITICAL

class WarnFilter(logging.Filter):
    def filter(self, rec):
        return rec.levelno == logging.WARNING

class InfoFilter(logging.Filter):
    def filter(self, rec):
        return rec.levelno == logging.INFO

class DebugFilter(logging.Filter):
    def filter(self, rec):
        return rec.levelno == logging.DEBUG

log = logging.getLogger()   # root
log.setLevel(logging.DEBUG)

hdlr_crit = logging.StreamHandler()
hdlr_crit.setLevel(logging.CRITICAL)
hdlr_crit.setFormatter(logging.Formatter("*** ERROR: %(message)s"))
hdlr_crit.addFilter(CritFilter())
log.addHandler(hdlr_crit)

hdlr_warn = logging.StreamHandler()
hdlr_warn.setLevel(logging.WARNING)
hdlr_warn.setFormatter(logging.Formatter(">!* %(message)s"))
hdlr_warn.addFilter(WarnFilter())
log.addHandler(hdlr_warn)

hdlr_info = logging.StreamHandler()
hdlr_info.setLevel(logging.INFO)
hdlr_info.setFormatter(logging.Formatter("> + %(message)s"))
hdlr_info.addFilter(InfoFilter())
log.addHandler(hdlr_info)

hdlr_debug = logging.StreamHandler()
hdlr_debug.setLevel(logging.DEBUG)
hdlr_debug.setFormatter(logging.Formatter("> %(message)s"))
hdlr_debug.addFilter(DebugFilter())
log.addHandler(hdlr_debug)

log.critical("We are under attack!")
log.warning("More wood is needed.")
log.info("Unable to comply.")
log.debug("Unit ready.")

# yields:
#*** ERROR: We are under attack!
#>!* More wood is needed.
#> + Unable to comply.
#> Unit ready.
xio
()

«Одинокое программирование»

Форум — Development

Навеяло грустно-пстом с Хабра, «Одинокое программирование»:

Благодаря качественному открытому ПО мы можем ознакомиться с результатами работы программистов первой лиги — просто загрузите исходники и вчитайтесь. А как насчет составляющих? Вы не видите вещей, кажущихся незначительными, но повторяющихся тысячи раз, чтобы код заработал. Настройка среды разработки, быстрые клавиши, сборка программы, запуск тестов, наброски псевдокода, страницы кода, которые позднее выбрасываются и переписываются с нуля…

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

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

xio
()

flex buffered output (?)

Форум — Development

Всем привет,

решаю простую задачу на flex: в сканируемом тексте найти пару тэгов [exec] и [/exec], вывести текст без изменений, за исключением текста между этой парой тэгов, который следует принять за команды оболочки и заменить из выводом. Ну т.е.:

На системе [exec] uname -a [/exec] количество подключенных модулей после загрузки составляет [exec] lsmod | wc -l [/exec] штуки.

Должно давать вывод:

На системе Linux encke 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux количество подключенных модулей после загрузки составляет 83 штуки.

Для этого написан примерно такой lex-код:

%{
	#include <unistd.h>	/* fork+exec() */
	char *exec_string;
%}
%x	exec
%%

"[exec]"		BEGIN(exec);
<exec>"[/exec]"	{	/* saw closing tag, all done */
			pid_t cpid = fork();
			if (cpid == 0) {
				execl("/bin/sh", "/bin/sh", "-c", exec_string, (char *) NULL);
			} else {
				wait();
			}

			BEGIN(INITIAL);
		}
<exec>[^[]+	exec_string = strdup(yytext); /* fill the exec string */
 /* .|\n		printf("%s", yytext); [> default <] */
 

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

Linux encke 2.6.32-24-generic #42-Ubuntu SMP Fri Aug 20 14:24:04 UTC 2010 i686 GNU/Linux
83
На системе количество подключенных модулей после загрузки составляет штуки.

Проблема, как кажется, связана с тем, что flex не выводит символы по правилу .|\n, а буфферизирует их и выплевывает лишь на <<EOF>>. Как добиться «правильного» поведения из чтения сгенерированного исходника я не понял. Есть идеи?

xio
()

Портативные наушники?

Форум — Talks

Привет, какие портативные («маленькие», не стационарные, лол) наушники, по-вашему:

  • хорошо звучат과
  • не вылетают из ушей при совершении головой интенсивных вращательно-кивательно-наклонятельных движений과
  • дозволяют ориентироваться в окружающем звуковом пространстве при установленной средне-малой громкости?
xio
()

Автомаунт в Гноме за пределами /media?

Форум — Desktop

Возможно ли настроить автомаунтер в гноме таким образом, чтобы он монтировал тома в произвольной локации за пределами /media?

Смотрел gconf, пробовал прописывать в fstab -- без особого результата. Подозреваю, что можно как-то настроить через hal, но не знаю как конкретно.

xio
()

[шъ] Присваивание значения глобальной переменной в функции, чей stdout присваевается другой переменной в качестве значения

Форум — Development

Не работает присваивание значения глобальной переменной в функции, чей stdout присваевается другой переменной в качестве значения. Глядите:

 $ G=1
 $ f2() { (( G++ )); echo 'foo'; };
 $ f1() { echo $G; var=`f2`; echo $G; };
 $ f1
1
1
 $

А должно бы быть 1 2, по идее, т.е. конструкция (( G++ )) не срабатывает, из-за того, что результат echo 'foo' в f1() присваивается var в f2().

Как это можно обойти? Пример реальный, в G хранится оффсет, с которым работает f2(), ожидающая, что на следующем вызове он будет инкрементирован (чего не выходит из-за данной проблемы).

xio
()

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