LINUX.ORG.RU

Сообщения shatsky

 

Как в действительности работает jquery click(function(event){...})?

Форум — Web-development

Ранее думал, что все изменения на странице выполняются через манипуляции с DOM. Понадобилось сделать AJAX-навигацию, с установкой обработчиков на ссылки стало понятно, что все сложнее. Сначала для обработки ссылок с class=«ajax» засунул в $(document).ready():

    $(".ajax").click(function(event){
      event.preventDefault();
      ajax_navigate(this.href);
      return false;
    });
DOM этот код явно не меняет, никак не изменяя видимые в коде страницы атрибуты.
Навигация заработала, но затем я увидел, что по недосмотру в ответ на AJAX-запросы сервер выдает страницу целиком, а не блок контента. После исправления этой ошибки ссылки в загруженном через AJAX блоке перестали AJAX'ифицироваться. Тогда я добавил такой же код в function(data){...} AJAX-запроса, чтобы по его завершении обрабатывались новые ссылки в загруженном блоке.
После этого произошло вот что:

  • ссылки в загруженном блоке AJAX'ифицироваться все равно не стали
  • ссылки на базовой странице стали после каждого нажатия «удваивать» количество вызовов, вызывая в последующем многократную подгрузку, а после какой-то последовательности (закономерность пока не понял) вызывать зацикленную подгрузку поочередно нескольких разных страниц.

Что на самом деле происходит при назначении функции через $(...).click()? Как-то можно (Firebug'ом, ...) посмотреть, что в действительности навешено на ссылку в данный момент?

 

shatsky
()

Браузер показывает JSON вместо исходного кода страницы

Форум — Web-development

Делаю AJAX-навигацию, вот такая функция подставляет полученный в JSON контент в <div id=«main»>, а заголовок - в title:

  function ajax_navigate(url)
  {
    $.get(url, function(data){
      $('#main').html(data.content);
      document.title=data.title;
    })
  }
Браузер страницу отображает нормально, но вместо исходного кода показывает JSON (причем содержащий в поле content всю страницу, а не только полученный AJAX-ом кусок). Почему?

 , ,

shatsky
()

Хранение и объединение записей с разными, но пересекающимися множествами полей

Форум — Development

Последнее время часто сталкиваюсь такой проблемой.

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

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

Еще вариант - отдельная «агрегирующая» таблица с общими полями и nullable внешними ключами для всех возможных типов. Тогда нужно следить, чтобы для каждой записи был установлен один и только один внешний ключ из возможных и чтобы на каждую запись из таблиц с типоспецифичными полями указывала только одна запись из агрегирующей.

Как принято поступать в таком случае?

 ,

shatsky
()

Принтер не печатает, «Starting GPL Ghostscript 9.05...»

Форум — General

При попытке что-либо распечатать веб-интерфейс показывает «Starting GPL Ghostscript 9.05...», принтер остается в режиме ожидания.

$ systemctl status cups.service
cups.service - CUPS Printing Service
	  Loaded: loaded (/etc/systemd/system/cups.service; static)
	  Active: active (running) since Сб. 2013-03-23 19:16:56 EET; 52s ago
	 Process: 3819 ExecStartPost=/sbin/udevadm trigger --subsystem-match=usb --attr-match=serial=AL01077498 (code=exited, status=0/SUCCESS)
	Main PID: 3818 (cupsd)
	  CGroup: name=systemd:/system/cups.service
		  ├─3818 /usr/sbin/cupsd -f
		  └─3823 parallel:/dev/lp0 657 chaos Siciliana_Bach_BWV_1031.PNG 1 InputSlot=Auto number-up=1 PageSize=A4 Resolution=1200dpi Duplex=None job-uuid=urn:uuid:3bf...

марта 23 19:16:56 localhost systemd[1]: Starting CUPS Printing Service...
марта 23 19:16:56 localhost systemd[1]: Started CUPS Printing Service.
Как посмотреть, что в действительности с ним происходит? Все живые логи в /var/log/cups касаются только веб-интерфейса, cupsd в журнал ничего не пишет и никакой --verbose вроде как не имеет. И, кстати, что это за процесс 3823, почему у него такая странная командная строка - не путь к бинарнику, а какое-то «parallel:/dev/lp0»?

 

shatsky
()

Ubuntu продолжает интеграцию компонентов systemd

Новости — Ubuntu Linux
Группа Ubuntu Linux

На прошедшем на этой неделе онлайн-UDS обсуждалась замена ConsoleKit на systemd-logind.

Оба компонента предназначены для отслеживания пользовательских сессий и автоматического предоставления процессам пользователей доступа к периферийным устройствам, связанным с рабочими местами, на которых они запущены. Разработка ConsoleKit была фактически заброшена еще до появления systemd - в результате он представляет собой заглушку, способную отслеживать лишь одну сессию. Systemd-logind уже имеет всю заявленную функциональность, позволяя настраивать мультисит-системы с распределением периферийных устройств между местами на уровне udev.

При этом разработчики Ubuntu по-прежнему не желают интегрировать сам systemd. Так как systemd-logind использует логику systemd для взаимодействия с cgroups, они собираются переписать эту часть своими силами.

>>> Подробности

 

shatsky
()

Canonical все же делают свой графический сервер

Новости — Ubuntu Linux
Группа Ubuntu Linux

Основные факты:

  • Mir — это новый графический сервер, разрабатываемый Canonical; он не основан на X.Org или Wayland.
  • Будут поддерживаться графические драйвера Android. Будут работать существующие DRM/KMS/Mesa/GBM свободные графические драйвера. Canonical будет оказывать давление на вендоров проприетарных драйверов, чтобы добиться от них совместимости.
  • Будет поддержка X11-приложений посредством rootless X-сервера.
  • Canonical обеспечит нативную поддержку в Mir тулкитов GTK3 и Qt/QML.
  • Mir будет использоваться для всех классов устройств — от мобильных телефонов до десктопов.
  • Mir будет готов для телефонной версии к октябрю этого года, для других — через год.

>>> Подробности

 ,

shatsky
()

Ubuntu Touch - перелицованный андроид

Форум — Talks

http://www.phoronix.com/scan.php?page=news_item&px=MTMwODg
Майкл докладывает: там SurfaceFlinger вместо графического сервера и вообще это просто CyanogenMod с другими лаунчером и приложениями.

 ничего интересного, расходимся

shatsky
()

Права доступа к /dev/snd/timer

Форум — Desktop

Мультисит, две карты, у второго пользователя ничего не играется, ругань на отсутствие доступа к /dev/snd/timer Из вывода udevadm:

P: /devices/virtual/sound/timer
N: snd/timer
E: DEVNAME=/dev/snd/timer
E: DEVPATH=/devices/virtual/sound/timer
E: MAJOR=116
E: MINOR=33
E: SUBSYSTEM=sound
E: TAGS=:uaccess:
E: USEC_INITIALIZED=43262
Тега seat не видно, но почему-то в ACL /dev/snd/timer пользователь первого места.

В общем случае интересует, что собой представляет таймер (а также прочие устройства в /devices/virtual/sound/). Он общий для разных звуковых карт? Тогда к нему должен быть разрешен доступ others, насколько я понимаю (из коробки в генте он принадлежит группе audio и права rw-rw---, но с мультиситом пользователей в группе audio быть не должно, иначе они будут иметь доступ к звуковым потокам друг друга и бардак с выбором устройств).

 , , ,

shatsky
()

Проблемы со звуком

Форум — Desktop

Мультисит, с первой картой все нормально, вторая - Fortemedia FM-801. Напрямую играется более-менее нормально, с pulseaudio - регулярные щелчки с паузами/пропусками фрагментов. Попробовал, как советуют в арчевики, указать ему tsched=0 - при запуске пульсаудио на терминале, которому выделена эта карта, в журнале появляются сообщения

[pulseaudio] alsa-util.c: Unable to set sw params: Permission denied
[pulseaudio] alsa-sink.c: Failed to set software parameters: Permission denied
[pulseaudio] alsa-util.c: Unable to set sw params: Permission denied
[pulseaudio] alsa-source.c: Failed to set software parameters: Permission denied
и звука нет вообще, а пульсовый регулятор в alsamixer становится несвязанным с регуляторами карты; первая карта по-прежнему работает нормально.

Мультисит настроен средствами systemd, из двух карт

/sys/devices/pci0000:00/0000:00:04.0/sound/card0
/sys/devices/pci0000:00/0000:00:09.0/0000:05:07.0/sound/card1
первая назначена месту seat0, вторая - seat1. Фактически это означает, что для всех файлов устройств, которые создаются для первой карты, будет ставиться ACL, разрешающий доступ пользователям, зашедшим с seat0, а для второй - с seat1. Далее я посмотрел, какие устройства на самом деле имеют какие ACL'ы.

Устройства, ACL которых содержит пользователя seat0:

/dev/adsp
/dev/audio
/dev/dsp
/dev/mixer
/dev/snd/pcmC0D0c
/dev/snd/pcmC0D0p
/dev/snd/pcmC0D1c
/dev/snd/pcmC0D2p
/dev/snd/controlC0
/dev/snd/seq
/dev/sequencer
/dev/sequencer2
/dev/snd/timer
Тут мне показалось странным, что последние 4, судя по выводу udevadm, не относятся исключительно к card0, их пути начинаются с /devices/virtual/sound/. Но при этом к ним имеют доступ только пользователи seat0.

Устройства, ACL которых содержит пользователя seat1:

/dev/audio1
/dev/dmfm1
/dev/dmmidi1
/dev/dsp1
/dev/snd/hwC1D0
/dev/midi1
/dev/snd/midiC1D0
/dev/mixer1
/dev/snd/pcmC1D0c
/dev/snd/pcmC1D0p
/dev/snd/controlC1

 fm801,

shatsky
()

Опознайте музыку

Форум — Talks

Какая-то французская певица поет: http://rghost.ru/43519601

 

shatsky
()

Про мультисит с несколькими видеокартами, драйверами и иксами

Форум — Talks

Здесь мне, похоже, никто не ответит, к тому же, как мне кажется, проблема показывает серьезные архитектурные изъяны.

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

Во-вторых, логичная автоконфигурация Х-сервера должна выглядеть примерно так:
-определить, какая видеокарта используется;
-выбрать соответствующие ее драйверу юзерспейсный модуль и GLX.
Что происходит вместо этого:
-почему-то выбираются несколько модулей, и, хотя первый из них является правильным, после его загрузки иксы пытаются загрузить остальные;
-общесистемная реализация OpenGL/GLX прибивается гвоздями (в gentoo это делает eselect opengl), и все иксы пытаются использовать ее, даже если она не соответствует драйверу.

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

shatsky
()

Две видеокарты, два драйвера, два фю^W X-сервера

Форум — Desktop

Настраиваю мультисит. Есть две видеокарты Nvidia: GT240 и 6600.

Проблема первая: последний блоб не может 6600, а nouveau при попытке подхватить 240 намертво вешает систему. В принципе, меня полностью устраивает вариант использовать 240 с проприетарным и 6600 с nouveau, но пока что у меня получается их загрузить описанным образом только вручную: nouveau в блэклист, запустить Х-сервер, чтоб проприетарный занял 240-ю, потом загрузить nouveau - он подхватывает оставшуюся 6600. Надо сделать так, чтобы это происходило автоматически на стадии загрузки модулей удевом - каким-то образом скрыть от каждого из двух модулей «чужую» видеокарту.

Проблема вторая: не знаю, как в других дистрибутивах, а в генте утилитой eselect opengl выбирается общесистемная реализация OpenGL. У меня сейчас выбрана nvidia - которая для проприетарного драйвера, при этом eselect создала, например, такие симлинки:

/usr/lib/libGL.so -> opengl/nvidia/lib/libGL.so.310.14
/usr/lib/xorg/modules/extensions/libglx.so -> ../../../opengl/nvidia/extensions/libglx.so.310.14
Соответственно, при запуске второго Х-сервера с nouveau происходит такое:
(II) LoadModule: "glx"
(II) Loading /usr/lib64/xorg/modules/extensions/libglx.so
(II) Module glx: vendor="NVIDIA Corporation"
   compiled for 4.0.2, module version = 1.0.0
   Module class: X.Org Server Extension
(II) NVIDIA GLX Module  310.14  Tue Oct  9 12:14:30 PDT 2012
Loading extension GLX
...
(EE) Failed to initialize GLX extension (Compatible NVIDIA X driver not found)
Разумеется, ничто, использующее OpenGL, под ним не работает. Надо сделать так, чтобы два Х-сервера использовали разные реализации.

 , ,

shatsky
()

PCI-E x16 видеокарта в x4 слоте

Форум — Talks

Хочу поэкспериментировать с мультиситом. На материнке есть открытый слот PCI-E x4 (прорезь не закрыта перемычкой). В него можно ставить обычную, немодифицированную видеокарту?

shatsky
()

Перестали работать указанные вручную видеорежимы

Форум — Desktop

После перехода на трехсотую ветку драйверов (304.60, 310.14) перестали работать вручную прописанные в xorg.conf видеорежимы:

# 960x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 45.98 MHz
Modeline "960x600_60.00"  45.98  960 1000 1096 1232  600 601 604 622  -HSync +Vsync
# 768x480 @ 60.00 Hz (GTF) hsync: 29.82 kHz; pclk: 28.63 MHz
Modeline "768x480_60.00"  28.63  768 784 864 960  480 481 484 497  -HSync +Vsync
Вернее, переключение происходит, но режим ставится не тот, а картинка выводится с нужным разрешением, искаженным соотношением и черными полосами по краям. В Xorg.0.log вижу такое:
[ 25083.505] (WW) NVIDIA(0): No valid modes for "DFP-0:960x600_60.00"; removing.
[ 25083.505] (WW) NVIDIA(0): No valid modes for "DFP-0:768x480_60.00"; removing.
Почему?

 

shatsky
()

Не может найти подходящий шрифт и прерывается

Форум — Desktop

Пытаюсь запустить сабж под гентой, вижу ошибку:

X Error of failed request:  BadName (named color or font does not exist)
  Major opcode of failed request:  45 (X_OpenFont)
  Serial number of failed request:  12
  Current serial number in output stream:  13
Перехватил обмен с помощью x11trace, в конце вижу следующее:
000:<:000c: 60: Request(45): OpenFont fid=0x03000002 name='-*-*-medium-r-normal--0-120-*-*-p-0-iso8859-1'
000:>:000c:Error 15=Name: major=45, minor=0, bad=50331650
Я правильно понимаю - нужно искать и ставить шрифты в старом иксовом формате, соответствующие этой маске? Как это делать?

 core x font subsystem, , xfld

shatsky
()

Полуоткрытое бета-тестирование Steam для Linux началось

Форум — Talks

Сотрудник Valve, известный под ником Frank, сообщил на форуме сообщества Steam for Linux о начале первой волны рассылки приглашений, некоторые участники уже играют. В дальнейшем список приглашенных будет расширяться.
Здесь можно скачать deb-пакет. Залогиниться могут только приглашенные участники.
В магазине уже доступна фильтрация продуктов по совместимости с Linux.

Подробности

Перемещено Shaman007 из games

 ,

shatsky
()

Про источники бесперебойного питания

Форум — Talks

Оба ИБП, с которыми мне приходилось иметь дело - две разные модели APC BackUPS - сильно грелись и слышно гудели, даже при отсутствии нагрузки, даже в выключенном состоянии (но будучи включенными в сеть, разумеется).
Есть ли ИБП, которые:
-не греются до горячего, когда нагрузка работает от сети или выключена (у моего BackUPS RS 500 возле пары крупных резисторов - пока не разобрался, за что они отвечают - аж корпус потемнел);
-не гудят так, что обычному человеку в комнате городской квартиры над большой улицей слышно;
-могут определять, что компьютер выключен и при отключении света не тратить аккумы на светодиоды на материнской плате и мониторе и собственный звуковой сигнал?

 

shatsky
()

Порт Crysis возможен

Форум — Games

http://www.reddit.com/r/IAmA/comments/12grru/i_am_chris_roberts_creator_of_wi...

Для Ъ: у разработчиков игры Star Citizen (CryEngine) спросили о возможности портирования на Linux. Те ответили, что уже ведут переговоры, причем они не единственные клиенты CryTek, проявляющие инициативу в данном вопросе, так что это весьма вероятно уже в недалеком будущем.

 ,

shatsky
()

DCS World: проблема с msvcp100

Форум — Games

Пытаюсь установить сабж, валится при попытке запуска DCS_updater.exe

wine: Call from 0x7b84b971 to unimplemented function msvcp100.dll.??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z, aborting
wine: Unimplemented function msvcp100.dll.??4?$_Yarn@D@std@@QEAAAEAV01@PEBD@Z called at address 0x7b84b971 (thread 0032), starting debugger...
В процессе установки он поставил рантайм 2010-го MSVC, но это не помогло.
Если в настройках замещения указать обязательное использование внешней msvcp100, валится с err:module:import_dll Library MSVCP100.dll not found, хотя msvcp100.dll в ~/.wine/drive_c/windows/syswow64/ и system32/ есть (не знаю, какая из них основная, а какая для мультилиба, file показывает, что обе x86-64).
file ./.wine/drive_c/Program Files/Eagle Dynamics/DCS World/bin/DCS_updater.exe: PE32+ executable (GUI) x86-64, for MS Windows

 

shatsky
()

Свободный драйвер для GPU VideoCore бесполезен

Форум — Talks

Несколько специалистов, включая Luc Verhaegen и David Airlie, обращают внимание на то, что открытый Broadcom драйвер используемого в Raspberri Pi GPU практически бесполезен. В отличие от настольных GPU от AMD или Nvidia, у которых различные API реализованы в драйвере, а блоб выполняет незначительные функции вроде выполнения питанием, у Broadcom практически все сделано в огромном блобе; например, внутри него скрыта реализация GLES, которую работающий на стороне ARM-ядра драйвер использует через высокоуровневый RPC-интерфейс - это напоминает сетевые карты с TCP offloading. Таким образом, открытие драйвера не дает возможности усовершенствовать существующую реализацию GLES (о которой David Airlie очень низкого мнения) или добавить другие API.

Подробности

Перемещено tazhate из opensource

 , , ,

shatsky
()

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