LINUX.ORG.RU

Сообщения LinuxUser

 

libflashplayer.so падает, по-видимому из-за нехватки чего-то

Форум — Desktop

Iceweasel падает вместе с флешем, в Google Chrome падает только флеш.

Вот что примечательно.
На одной машине стоит FVWM и на ней флеш падает.
На другой KDE и на ней флеш не падает.

На обоих машинах Debian GNU/Linux с последними обновлениями.
На всякий случай с помощью ldd и md5sum сравнил библиотеки которые нужны libflashplayer.so - одинаковые.
Ядро одинаковое - 2.6.29-bpo.2-amd64.

По-видимому чего-то флешу не хватает и это что-то поставилось вместе с KDE. Вопрос - как узнать что это?

LinuxUser
()

Динамический goto

Форум — Development

На ассемблере «динамический goto» реализовать можно так:

.data
	msg: .string "Hello world!"
 
.bss
	.lcomm p, 4

.text
.globl _start
_start:
	mov $L2, %eax
	mov %eax, p
	jmp *p
L1:
	push $0
	call exit
L2:
	push $msg
	call puts
	add $4, %esp
	jmp L1
Можно ли в C сделать что-нибудь аналогичное?

Пробовал ассемблерными вставками организовать - не получается.
C-шные метки ассемблер не признаёт.
Пробовал вместо них использовать asm volatile («L2:») - не работает.

Есть идеи?

LinuxUser
()

Как минтировать iso образы под обычным пользователем?

Форум — Desktop

Можно ли что-нибуть в /etc/fstab прописать (или где-нибуть ещё), как для cdrom например:
/dev/scd0 /media/cdrom0 udf,iso9660 user,noauto 0 0
что mount не ругался «only root can do that»?

LinuxUser
()

Как сохранить соотношение сторон в полноэкранном режиме (добавив чёрные полоски)

Форум — Desktop

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

Дисплей у ноута имеет разрешение 1366x768, игра имеет разрешение в полноэкранном режиме 640x480. Таким образом она будет заметно растянута по ширине. Есть ли способ сделать так, чтобы растяжение было не по всей ширине, а пропорционально разрешению игры, а остальное пространство было бы чёрным?

Видеокарта Intel X3100+. Если кто знает способ для других видеокарт - тоже пишите.

Пробовал гуглить, но ответа не нашёл. Возможно не сумел внятно сформулировать запрос.

LinuxUser
()

[SQL] Как сделать автоматическое удаление записей на которые нет ссылок?

Форум — Development

Есть две таблицы one и two. В первой есть внешний ключ two_id. Во второй соответственно первичный ключ id. Связь один ко многим - одно поле второй таблицы может соответствовать многим полям первой. Кроме этого, полю второй таблицы обязательно должно соответствовать хотя бы одно поле первой.

Есть ли стандартные способы такое организовать?

Хочется чтобы поле из второй таблицы само удалялось если на него никто из первой таблицы не ссылается. Можно завести счётчик ссылок:

 Table one:    Table two:
 +--------+    +------+-------------+
 | two_id |    | id   | ref_counter |
 +--------+    +------+-------------+
 |      1 |    |    1 |           3 |
 |      1 |    |    2 |           1 |
 |      1 |    +------+-------------+
 |      2 |
 +--------+
И самому его изменить/проверять и удалять строку когда ref_counter станет равным нулю. Но это выглядит не Ъ. Что делать?

 

LinuxUser
()

[pipe] ftp не хочет общатся через два пайпа

Форум — Development

Через два не хочет, а через один - хочет. В общем вот:

#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>

int main(int argc, char *const argv[])
{
	int in[2], out[2], len;
	char buf[80];

	if (pipe(in) != 0 || pipe(out) != 0 )
	{
		perror("pipe");
		return EXIT_FAILURE;
	}

	if (fork() == 0)
	{
		close(0);//
		close(1);

		dup(in[0]);//
		dup(out[1]);

		close(in[1]);
		close(out[0]);

		execlp("ftp", "ftp", "-n", "ftp.mozilla.org", (char *)NULL);
		//execlp("pwd", (char *)NULL);
		perror("execlp");
		return EXIT_FAILURE;
	}

	close(in[0]);
	close(out[1]);

	setvbuf(stdout, NULL, _IONBF, 0);
	while (len = read(out[0], (void *)buf, sizeof(buf)-1), len > 0)
	{
		buf[len] = 0;
		printf("%s", buf);
	}

	close(in[0]);
	close(out[1]);
	return EXIT_SUCCESS;
}
Компилю, пускаю:
gcc main.c && ./a.exe
Но ничего не выводится! Если закомментировать 18 и 21 строчки (в конце них стоит //), вывод от ftp выводится. Если вместо ftp пускать pwd, то вывод есть, даже с двумя пайпами. Думал что это потому что pwd stdin не использует, но от cat вывод тоже выводится, если ему данных послать вот так: write(in[1], «test\n», 5);.

Люди добрые, подскажите, почему так? Как исправить?

 

LinuxUser
()

[bash] Можно ли получить доступ к stdin и stdout процесса форкнутого амперсандом?

Форум — Development

Например, нужно чтоб скрипт общался с ftp сервером учитывая ответы.

После запуска `ftp -n example.com &' pid потомка (процесса ftp) хранится в $!. Можно ли как-то зная pid писать в stdin и читать из stdout средствами bash?

Очень желательно обойтись без именованных пайпов.

 

LinuxUser
()

[hamachi] Куда запрятали Linux и Mac версии?

Форум — Talks

Раньше качал отсюда http://hamachi.cc/download/list.php, но теперь отуда перенаправляет сюда https://secure.logmein.com/products/hamachi2/, а там по ссылке Downloads выдаёт hamachi.msi не взирая на операционную систему.

Кто-нибуть в курсе куда они спрятали Linux и Mac версии?

P.S. Если кто знает свободные/бесплатные аналоги этой программы - не стесняйтесь пишите, с радостью перейду на что-нибуть другое.

 

LinuxUser
()

[X Window]Как узнать размер окна с границами?

Форум — Development

Размер окну можно задать через XCreateWindow и XSetWMSizeHints.
Затем, оконный менеджер приделывает к окну границу (border/decoration).

Как после этого узнать окончательный размер окна, учитывая границы?

В спеке http://standards.freedesktop.org/wm-spec/wm-spec-latest.html про это не нашёл.

LinuxUser
()

[C][OpenGL]Программа тормозит при закрытом stderr

Форум — Development

Написал программу на C с использованием OpenGL под X Window.
Программа рисует вращающийся треугольник.

Если запускать её из консоли - работает замечательно.
Если - из файлового менеджера (PCManFM, Konqueror) - подтормаживает.
Если запустить из консоли с перенаправлением stderr в /dev/null (2>/dev/null) или в самой программе закрыть stderr (fclose(stderr)) - эффект тот же.
Тормоза выглядят так - падает FPS и скорость реакции на нажатия клавиш на клавиатура/закрытия окна.

Воспроизводится на 32-х битном Debian Lenny под VirualBox и 64-х битном openSUSE 11.0 c ATI X800 видеокартой с последними драйверами.
На openSUSE 11.1 с nVidia 6600 - не воспроизводится (возможно это связано с тем, что процессор на этом компе более быстрый).

Есть идеи почему так происходить и как это исправить?

 ,

LinuxUser
()

Тут вот говорят, что монолитное ядро никуда не годится. Это правда?

Форум — Talks

Наткнулся на статью 28 причин почему Linux не имеет будущего. В каждом пункте автор делает резкие выпады и даже откровенно врёт. Но не знаю как оценивать то что написано в пункте 16 про монолитное ядро, потому что с темой не знаком. Вот цитата:

Поддержка монолитного ядра КРАЙНЕ сложна. Я считаю что любое внедрение Linux в масштабах страны будет серьезным ударом по всем организациям использующим эту систему, как только речь коснется дальнейшей поддержки и развития Linux. Поэтому все призывы опенсорщиков в которых взывается к возможности легкой модификации Linux под себя являются чистым воды саботажем.

А как насчет того, чтобы найти ошибку в монолитном ядре? По этому поводу приведу одну интересную цитату: «Второй человек в Linux, Andrew Morton, горько сетует по поводу состояния разработки -mm ветки ядра (напомню, что именно в нее сначала добавляются экспериментальные патчи, а только потом, после тестирования, они имеют шанс попасть в основное ядро): «У меня ушло двое полных суток на то, чтобы все это скомпилировать и загрузить на нескольких моих компьютерах. Чтобы добиться положительного результата в этом процессе, я написал около девяноста исправляющих патчей и патчей по отбрасыванию ненужного. Уже сейчас я наблюдаю несколько известных мне багов, но полагаю, на самом деле их гораздо больше. Я должен сказать, что [такая модель разработки] больше не работает»[12]. Последний патч для ядра 2.6.23-rc6 весит почти 30 мегабайт. По-русски говоря, это около тридцати тысяч страниц исходников (если оптимистично считать по тысяче символов на страницу)»

Насколько автор прав?

LinuxUser
()

glXGetFBConfigs(): утечка памяти не смотря на XFree()

Форум — Development

Код:

     1  #include <stdlib.h>
     2  #include <X11/Xlib.h>
     3  #include <GL/glx.h>

     4  int main()
     5  {
     6    Display *display;
     7    int screen_number;
     8    GLXFBConfig *glxfb_configs;
     9    int configs_number;

    10    display = XOpenDisplay(NULL);
    11    if (display == NULL) return EXIT_FAILURE;

    12    screen_number = DefaultScreen(display);

    13    glxfb_configs = glXGetFBConfigs(display, screen_number, &configs_number);
    14    XFree(glxfb_configs);

    15    XCloseDisplay(display);

    16    return EXIT_SUCCESS;
    17  }
Компилирую: gcc main.c -Wall -lX11 -lGL -o main. Запускаю: valgrind ./main. Результат:
==32255== LEAK SUMMARY:
==32255==    definitely lost: 386 bytes in 10 blocks.
==32255==      possibly lost: 0 bytes in 0 blocks.
==32255==    still reachable: 4,710 bytes in 6 blocks.
==32255==         suppressed: 0 bytes in 0 blocks.
Если закоментировать 13 и 14 строчки, то результат таков:
==32312== LEAK SUMMARY:
==32312==    definitely lost: 0 bytes in 0 blocks.
==32312==      possibly lost: 0 bytes in 0 blocks.
==32312==    still reachable: 22 bytes in 1 blocks.
==32312==         suppressed: 0 bytes in 0 blocks.

Вопросы: откуда утечки? что я делаю не так?

LinuxUser
()

[X Window] Как задать для окна цветную иконку с alpha прозрачность?

Форум — Development

Есть функция XSetWMHints(). В неё передаётся структура XWMHints в которой есть поля:
Pixmap icon_pixmap;
Pixmap icon_mask;
Window icon_window;
Насколько я понял из man XWMHints - icon_pixmap должна быть bitmap'ом. А bitmap может быть только чёрно-белым. В том же мануале написано, что icon_mask'ом можно задать какие пиксели из icon_pixmap нужно использовать. Получается обычная не alpha прозрачность.
Поле icon_window позволяет задать окно которое будет использоватся как иконка. Не совсем понятно как это должно работать. Пробовал присваивать icon_window окно - иконкой стала стандартная иконка для X Window программ, а не то что нарисовано в окне.

Вопрос - как задать alpha-прозрачную цветную иконку для окна X Window программы?

Гуглить пробовал - ничего по теме не нашёл. Поидее иконку рисует менеджер окон. Может быть не все менеджеры могут работать с прозрачными иконками? Такое впечатление что программы на Qt и GTK используют какие-то секретные функции или способы KDE и GNOME для задания иконок окнам.

LinuxUser
()

LAN через Bluetooth: соединение есть, пинга нет

Форум — General

Хочу соединить компьютер и ноутбук в LAN сеть по Bluetooth. Выполняю:

на ноутбуке:   pand -s -r GN
на компьютере: pand -c <MAC ноутбука> -r PANU
на ноутбуке:   ifconfig bnep0 10.0.0.1
на компьютере: ifconfig bnep0 10.0.0.2

Связь установилась, об том говорит `pand -l' и KBluetooth, а ifconfig сообщает что интерфейсы подняты и ip у них такой который заказывали. Но ping ни в ту ни в другую сторону не идёт и на samb-у которая на ноуте компьютер зайти не может.

На компьютере openSUSE 10.3, на ноутбуке Debian Lenny. Содержимое hcid.conf на обоих такое (за исключением name):

options {
	autoinit yes;
	security auto;
	pairing multi;
	passkey "9670";
}
device {
	name "Home";
	class 0x20100;
	discovto 0;
	iscan enable;
	pscan enable;
	lm accept, master;
	lp rswitch,hold,sniff,park;
}
Параметр class пробовал ставить 0x100 и 0x10c - результат не изменился. Фаерволы отключены.

Кто-нибуть сталкивался с подобным? В чём может быть причина проблемы?

LinuxUser
()

[Debian Lenny][Видеокарта Intel 965GM] FPS в glxgears в два раза меньше чем должен быть

Форум — Linux-hardware

В интернетах пишут что на этой видеокарте FPS в glxgears около 1500. У меня он в районе 700.

$ lspci | grep Graphic
00:02.0 VGA compatible controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)
00:02.1 Display controller: Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (rev 0c)

$ glxinfo | grep render
direct rendering: Yes
OpenGL renderer string: Mesa DRI Intel(R) 965GM 4.1.3002

$ uname -r
2.6.26-1-amd64

$ dpkg -l | grep xserver-xorg-video
ii  xserver-xorg-video-intel  2:2.3.2-2+lenny6  X.Org X server -- Intel i8xx, i9xx display driver

Подскажите, в чём может быть причина проблемы?

LinuxUser
()

[Java ME][JWT][ktoolbar] Можно ли изменить workdir?

Форум — Development

Когда запускаешь ktoolbar, то он создаёт так называемую workdir директорию ~/j2mewtk/2.5.2/. Мне это очень не нравится, ибо считаю что он должен жить в ~/root/projects/, а никак не в домашней директории. В связи с этим вопрос - знает ли кто-нибуть как поменять местоположение workdir?

В документации сказано, что workdir «typically» располагается в ~/j2mewtk/2.5.2/. Из этого вроде как вытекает, что может ещё быть «untypically», но про то как этого добиться - не сказано.

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

 

LinuxUser
()

[Makefile] Почему make делает то что уже сделано?

Форум — Development

Вот Makefile:

all: build/program1 build/program2

build/program1: build
	touch $@

build/program2:
	touch $@

build:
	mkdir $@

Запускаем:

$ make
mkdir build
touch build/program1
touch build/program2
$ make
touch build/program1
$ make
make: Nothing to be done for `all'.

Спрашивается, почему при втором запуске он делает то, что уже было сделано?

P.S. Если перенести зависимость build в all, то всё работает правильно. Это выглядит карсивее и правильнее. Но теоретически, приведённое содержимое Makefile'а тоже должно работать.

 

LinuxUser
()

XMPP (Jabber) Как точно определить адрес сервера?

Форум — Development

Поидее имя домена берётся из JID. Но обнаружил, что это не всегда верно. Так, например, если в Psi задать JID с доменом ya.ru (например user@ya.ru), то он соединяется не с ya.ru:5222, а с xmpp.yandex.ru:5222 (IP у них, если что, тоже разные). То же самое с аккаунтами на gmail.com, соединение идёт с talk.google.com. В спецификации по XMPP (rfc3920), по этому вопросу ничего найти не смог.

Кто-нибуть в курсе - есть ли этому научное объяснение или это произвол владельцев Яндекса и Google?

LinuxUser
()

QT Creator требует libgobject-2.0. Где брать?

Форум — Development

Скачал с оф. сайта qt-sdk-linux-x86_64-opensource-2009.01.bin. Поставил. Создал простой проект. Попробовал скомпилить. Он начал ругатся ld: cannot find -lgobject-2.0. Стал искать rpm-ку, нашёл libgobject-2_0-0, а соотв. devel пакета нету. Кто-нить с подобной проблемой сталкивался? Что делать?

Дистр openSUSE 11.1.

LinuxUser
()

[Qt][QListWidget] Закрыть Persistent Editor по Enter. Снять выделение со всех item'ов.

Форум — Development

На Qt начал писать не так давно, поэтому собственно и спрашиваю. На сигнал void itemDoubleClicked(QListWidgetItem *item) повесил слот который вызывает void openPersistentEditor(QListWidgetItem * item). Это работает нормально. Хочется чтобы по нажатию на Enter вызывался void closePersistentEditor(QListWidgetItem * item). Как это сделать?

И ещё такой вопрос. В QListWidget всегда выделен один из элементов. Можно ли сделать так, чтобы по клику мышки на пустом пространсве выделение снималось вообще? Если можно, то как?

 

LinuxUser
()

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