LINUX.ORG.RU

Сообщения shatsky

 

Мобильные браузеры и fit to screen width

 

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

shatsky
()

Deadfall Adventures доступен для Linux

 ,

Группа Игры

Нативных игр AAA-класса прибыло: в Steam-сообществе Deadfall Adventures, приключенческого FPS на движке UE3, объявлено о переходе Linux-версии в стадию беты и ее доступности для всех покупателей. Разработчики честно предупреждают о проблемах — в частности, на видеокартах AMD с проприетарными драйверами, а обзорщики — о заштампованном сюжете (злые русские имеются).

>>> Подробности (steamcommunity.com)

shatsky
()

Launchd портируют на FreeBSD

 , , ,

Группа BSD

А тем временем в сообществе FreeBSD, обделенном вниманием Леннарта Поттеринга, занялись портированием launchd - системы инициализации Mac OS X, оказавшей сильное влияние на systemd.

Github

>>> Подробности (freebsd.org)

shatsky
()

X-Plane в Steam Greenlight

 , ,

http://steamcommunity.com/sharedfiles/filedetails/?id=201361798

Для Ъ: _очень_ качественный мультиплатформенный авиасимулятор, который прежде распространялся только на дисках, появился в Steam Greenlight. В обсуждениях подтверждают, что это сделано с ведома разработчика.

X-Plane 10
Вышел Ан-24 для X-Plane

shatsky
()

Монтирование накопителей

 андроид не линукс,

Пытаюсь подключить к планшету флешку с помощью хост-кабеля и активного хаба. Ядро ее сразу же увидело и создало /dev/block/sda1, осталось только примонтировать. Поскольку всё это делается для слаборазбирающегося пользователя, монтировать нужно с помощью какого-нибудь наглядного GUI, аналог которого есть в любом линуксовом DE.

Разумеется, ничего такого ни в настройках, ни даже в файловом менеджере цыганмода нет. Есть отдельные костыльные программы, из которых на глаза попадаются в основном StickMount и USB Host Controller. У первого в описании написано, что он нормально работает только на нексусах, и, таки да, у меня он не работает - при нажатии на кнопке монтирования просто ничего не происходит. Очевидно, у меня какая-то не такая реализация блочных устройств в ядре и какая-то не такая команда mount. Второй монтирует, но только для рута, с правами rwx------, и никакой кастомизации параметров mount, кроме точки монтирования, не предусмотрено.

shatsky
()

Нативная ArmA Tactics

Зашел в стим, а там: http://store.steampowered.com/app/224860/?snr=1_4_4__100_6

Неужели и до ArmA 2/3 очередь дойдет?

shatsky
()

Нативные Civilization V и XCOM: Enemy Unknown

 

Если верить амазону, уже в этом месяце: http://www.amazon.com/2K-Definitive-Strategy-Collection-Multiple-platform/dp/..., http://www.amazon.com/s/ref=nb_sb_noss?url=node=290573&field-keywords=&am...
Также в списке есть Borderlands и NBA (хотя на их страницах о поддержке Linux еще ничего).

shatsky
()

Поиска единомышленников тред

 , , советская музыка

Привет, ЛОР. Некоторое время назад я начал разработку CMS (Python/Django) для каталогизации музыки с построением связей по информации, которую обычно если и указывают, то разве что в текстовом описании: авторство музыки, текста и т. п. - что должно сделать возможной генерацию прилично оформленных страниц о творчестве поэтов и композиторов, например.
Первичная цель - реорганизовать архив сайта http://kkre-1.narod.ru/, представляющий собой уникальное собрание редкой музыки - в основном, советская эстрада и русские романсы (многое отсутствует даже в гигантской аудиопомойке вк). Технически там бардак из статических веб-страниц, но формат описания аудиозаписей на них более-менее однозначен, что позволяет с горем пополам автоматизировать построение по ним базы.
Имеющееся на данный момент состояние дел можно увидеть на http://music.shatsky.net/, исходники CMS лежат на https://github.com/shatsky/djmuslib.

Собственно, хотелось бы собрать людей, которым это было бы интересно, причем адекватных (гостевая kkre-1.narod.ru забита сообщениями вида «у меня перестали качаться песни с вашего сайта, зачем вы это сделали, вернитевсекакбыло») - надеюсь, здесь они есть. Для технических обсуждений есть гитхаб, для нетехнических запилил группу вдурове - http://vk.com/club59188719, пока что попытался там привлечь народ к придумыванию приличного названия для приложения заместо дурацкого «djmuslib».

Кстати, логотип с анимацией загрузки страниц нарисовать никто не возьмется? Эскиз: http://cs402720.vk.me/v402720737/8875/jvomXcqtwTQ.jpg

shatsky
()

DoesNotExist при обращении по ForeignKey объекта ранее полученной выборки после изменений

 ,

Если я перебираю в цикле выборку объектов из базы, и при обработке одного из объектов выборки изменяю другой объект, также входящий в выборку, меняя его внешний ключ и удаляя сторонний объект, на который ключ указывал перед изменением, то, когда внешний цикл дойдет до измененного объекта - эго экземпляр в выборке все еще содержит старое значение ключа, указывающее на уже удаленный сторонний объект, и при обращении по нему вылетает DoesNotExist.

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

Как правильно решается эта проблема?

shatsky
()

Запрос с использованием Q дает пустое множество

 ,

Так работает (дает людей, которые одновременно композиторы и исполнители):

models.person.objects.filter(ext_person_category__category__in=['performers']).filter(ext_person_category__category__in=['composers'])
А так нет (дает пустое множество):
models.person.objects.filter(Q(ext_person_category__category__in=['performers'])&Q(ext_person_category__category__in=['composers']))

shatsky
()

ЧЯДНТ, или есть ли более вменяемый стеммер русского языка?

 ,

Из примеров работы mystem на моих данных:

кристалинской
{кристалинский?=A=род,ед,полн,жен|?=A=дат,ед,полн,жен|?=A=твор,ед,полн,жен|?=A=пр,ед,полн,жен}
Но ведь из правил склонения следует, что это слово может быть образовано от слова «кристалинская» при сколнении в творительный падеж (а еще в родовой, предложный и дательный), которое, согласно окончанию, может быть то ли прилагательным женского рода, то ли женской фамилией (мой случай). Почему оно предлагает только «кристалинский», да еще и считает, что это слово женского рода?
На многих других подобных фамилиях работает совершенно правильно:
белинской
{белинская=S,фам,жен,од=род,ед|=S,фам,жен,од=дат,ед|=S,фам,жен,од=твор,ед|=S,фам,жен,од=пр,ед}
В данном случае, зная, что нам дана фамилия в творительном падеже, можно однозначно нормализовать.
Но почему настолько ненадежно?

shatsky
()

HTML5 History и повторные запросы при переходах назад-вперед

 , ,

При переходах назад-вперед по обычным веб-страницам браузер не выполняет повторные запросы, а сразу показывает страницы из кэша. Более того, часто даже не из кэша (по крайней мере, FF), а из памяти viewer'ов, где он держит их распарсенном виде, так что они отображаются мгновенно.
С AJAX-навигацией и HTML5 History API при простейшей реализации при вызове popstate просто выполняется повторный запрос по сохраненному адресу. Есть ли нормальные решения, позволяющие добиться такой же производительности, как в классическом случае?

shatsky
()

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

 , ,

Надо заменить в тексте все '/', кроме тех, которые находятся в сокращениях вида '<одна буква>/<одна буква>' (напр., 'к/ф', 'п/у'). Для примера рассматриваю только левую сторону контекста: перед чертой не должно быть последовательности из пробела или начала строки и одиночного символа.

re.sub('(?<!\s\S)/', ';', u' к/ф '))
- работает, но мне надо учесть, что а/б может находиться в начале строки.
re.sub('(?<!(^|\s)\S)/', ';', u' к/ф '))
- ругань на «look-behind requires fixed-width pattern» - похоже, специфичное для питона ограничение, причем оно даже не смотрит, что по обе стороны от '|' стоят варианты одинаковой длины.
re.sub('((?<!\s\S)|(?<!^\S))/', ';', u' к/ф '))
- ошибок нет, но замена на ; происходит везде - и в случае, если перед '/' начало строки и символ (что должен запрещать первый look-behind), и если перед '/' пробел и символ (что должен запрещать второй look-behind)

В моем случае можно обойтись первым вариантом с временным пришиванием пробелов к концам строки с последующим trim, но все же, как это делается правильно регулярками? Алсо, возможно ли в общем случае избавиться от ограничения fixed-width pattern? (я сначала пытался сделать обнаружение контекста в capture groups, но не нашел другого способа сделать отрицание выражения, кроме как использовать отрицательные look-*)

shatsky
()

ManyToManyField из TextInput

 

Понадобилось сделать ввод M2M не через select multiple, а через текстовый input строкой ключей через запятую. Варианты есть разные, но для начала я просто поменял полю виджет на TextInput и был удивлен тем, что при передаче строки, содержащей единственный и валидный ключ без каких-либо лишних символов форма не проходит валидацию («Enter a list of values»). Отладчик браузера показывает совершенно такой же запрос, как и с дефолтным select multiple (...&person=<просто_число>&...). В чем может быть дело?

shatsky
()

Солнечное зарядное устройство

 

Хочу купить сабж для подзарядки своих девайсов в походах. Кто пользуется, какими именно, что можете о них сказать? Я пока присматриваюсь к KVAZAR KV-3.5BM.

shatsky
()

Не могу создать образ раздела, I/O error

 ,

При попытке считать любой раздел командой

dd if=/dev/block/mtdblock0 of=imagefile
dd валится с ошибкой:
/dev/block/mtdblock0: read error: I/O error
0+0 records in
0+0 records out
0 bytes transferred in 0.002 secs (0 bytes/sec)
в dmesg вываливается такое:
<3>[07-26 23:42:15.164166] [41: mtdblockd]msm_nand_read_oob: unsupported ops->len, 512
<3>[07-26 23:42:15.164166] [41: mtdblockd]end_request: I/O error, dev mtdblock0, sector 0
<3>[07-26 23:42:15.164166] [41: mtdblockd]Buffer I/O error on device mtdblock0, logical block 0
<3>[07-26 23:42:15.164166] [41: mtdblockd]msm_nand_read_oob: unsupported ops->len, 512
<3>[07-26 23:42:15.164166] [41: mtdblockd]end_request: I/O error, dev mtdblock0, sector 8
<3>[07-26 23:42:15.164166] [41: mtdblockd]Buffer I/O error on device mtdblock0, logical block 1
<3>[07-26 23:42:15.164166] [41: mtdblockd]msm_nand_read_oob: unsupported ops->len, 512
<3>[07-26 23:42:15.164166] [41: mtdblockd]end_request: I/O error, dev mtdblock0, sector 0
<3>[07-26 23:42:15.164166] [41: mtdblockd]Buffer I/O error on device mtdblock0, logical block 0

Я предположил, что его можно читать только целыми eraseblock'ами, посмотрел их размер в /proc/mtd:
mtd0: 00500000 00020000 "recovery"
0х20000=131072, но добавление параметра bs=131072 ничего не изменило.

Что не так?

shatsky
()

LXDE переносят на Qt, планируется совместимость с Wayland

 , , ,

Группа Linux General

В блоге LXDE появился отчет о работе по переносу компонент LXDE на Qt. Скриншот демонстрирует почти полное окружение, в том числе файловый менеджер PCManFM-Qt и панель lxpanel-qt. Автор сообщает, что потребление памяти несколько повышено по сравнению с версией на Gtk+2, но с Gtk+3 ситуация не лучше. Пока что разработка идет с использованием Qt4, переход на Qt5 планируется после выхода версии 5.1. Для полной совместимости с Wayland необходимо решить проблемы с зависимостью спецификаций freedesktop.org от X11, но автор рассчитывает, что это сделают разработчики KDE и Gnome. Кроме того, уделяется внимание совместимости с Razor-Qt.

>>> Подробности (lxde.org)

shatsky
()

Oculus Rift SDK теперь поддерживает Linux

 , ,

Группа Мультимедиа

Oculus VR выпустили новую версию SDK с обещанной поддержкой Linux. Технически VR-шлем Oculus Rift представляет собой дисплей с DVI-интерфейсом и USB HID-устройство, передающее сигналы от сенсоров. Библиотека libovr предназначена для преобразования сигналов в информацию о движении головы и учета оптических эффектов HMD при формировании стереопары. Лицензия SDK разрешает распространение исходников и бинарных сборок при условии возврата всех изменений в Oculus VR.

>>> Подробности (требуется регистрация) (oculusvr.com)

shatsky
()

Ubuntu Touch стал менее зависим от Android

 ,

Группа Ubuntu Linux

Оливер Граверт сообщает, что отныне связка Ubuntu и минимального окружения Android в Ubuntu Touch «перевернута»: ранее окружение Ubuntu запускалось в chroot внутри Android, теперь же сразу загружается Ubuntu, а окружение Android, необходимое для использования заимствованных из него проприетарных драйверов, запускается внутри LXC-контейнера.

>>> Подробности (ubuntu.com)

shatsky
()

Mir катится в Wayland

 mir wayland xkbcommon

Mir теперь, как и Wayland, использует xkbcommon, хотя еще совсем недавно отказ от Wayland обосновывался тем, что он якобы унаследовал некие проблемы обработки ввода от X'ов.

shatsky
()

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