LINUX.ORG.RU

Сообщения i-rinat

 

На чём сидят производители ноутбуков?

Форум — Linux-hardware

Серьёзно, что за вещества они принимают?

Ноутбук это плотная упаковка компонентов. Там нет простора для систем охлаждения. Даже извороты с тепловыми трубками едва успевают отводить тепло от чипов в номинальном режиме. Это стало настолько привычным, что температура процессора в 80°C при полной загрузке считается нормальным явлением. Но нет, этого мало, они добавляют разгон!

К тому, что процессоры Intel любят задирать частоты до максимума TurboBoost, я как-то привык. Его достаточно легко отключить, а ограничение частот встроенного GPU предотвращает его принудительное включение. Но теперь новый сюрприз — дискретный GPU разогнали со штатных 860 МГц до 960 МГц. Из-за каких-то жалких 5-7% производительности ноутбук превращается в переносной фен.

Кстати, как в линуксе даунклокать мобильный Radeon r7 m370? Это можно сделать в свободном драйвере? Навскидку не нашёл ничего похожего на контроль частот ни в radeon, ни в amdgpu.

 , , , ,

i-rinat
()

Сотни тысяч видео на канале Youtube

Форум — Talks

Нашёл странный канал (https://www.youtube.com/channel/UCzSaYbL1RUWWUuLC6OWYKNQ) с сотнями тысяч коротких видео. Сейчас их там 193936. Сто девяносто три тысячи, почти сто девяносто четыре. Каждые 5–6 секунд добавляется новое. Иногда с перерывами в полминуты, иногда раз в секунду.

Это уже не первый такой канал. В прошлом году я видел как минимум ещё один, только ссылка потерялась.

Что это? Зачем это?

 ,

i-rinat
()

Berkeley DB всегда была глючной?

Форум — General

Когда возникает потребность хранить пары ключ-значение, Berkeley DB — первое, что приходит в голову. Сейчас этих библиотек вагон и маленькая тележка, но всё равно, если спросить про NOSQL хранилище, в числе первых советов будет именно Berkeley DB. Эта библиотека была, кажется, всегда. Сколько ей, лет 15? Её где только не использовали, уж казалось бы, все глюки должны были быть отловлены и исправлены. Пусть её в тестах только ленивый не обгонял, всегда казалось, что все эти новомодные движки — потенциальный глюкодром. А BDB — годами проверенная надёжность. И по докам умеет много всего. Работа из нескольких процессов, кеширование, транзакции, даже репликация.

Но на простом сценарии с несколькими писателями и одним потребителем на Hash хранилище дедлок ловится буквально в первые секунды, при каждом запуске. Btree хранилище на том же сценарии вываливается, портя базу данных.

Окей, включаем журналирование, хотя по докам без него должно корректно блокироваться. Теперь ловится взаимная блокировка и в Btree! Разве транзакции не призваны были предотвратить эти блокировки? Хотя с транзакциями работает корректно чуть дольше, до минуты дотягивает.

Погружение в документацию приоткрывает врата в ужас. В документации повсеместно упоминаются взаимные блокировки, как будто они — нормальное явление. Вызов функции в одном процессе может просто подвесить все остальные процессы, навсегда. И это предлагается решать запуском отдельной утилиты db_deadlock! Логи транзакций, кстати, тоже надо чистить. Без вызовов специальных функций или запуска соответствующих утилит эти файлы просто займут всё место на диске, сколько есть. Писать по кругу в один файл эта библиотека, похоже, просто не умеет.

Berkeley DB всегда была таким глюкодромом?

 , , rant

i-rinat
()

Ищу проекты на C/C++ с определённым форматированием

Форум — Development

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

if (shortcondition) {
    some_code(1);
    some_code(2);
}

но когда условия становится длинными, расползаются на несколько строк, становится трудно различать, где кончается условие и начинается код:

if (longcondition + 1 + 2 + 3 +
    continuation + 4 + 5 + 6) {
    some_code(1);
    some_code(2);
}

Одно из решений, которое мне понравилось — переносить открывающую скобку на новую строку:

if (longcondition + 1 + 2 + 3 +
    continuation + 4 + 5 + 6)
{
    some_code(1);
    some_code(2);
}

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

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

(Найти такой проект — одно из условий, которое желательно выполнить, чтобы включить новую опцию в clang-format.)

 , , ,

i-rinat
()

gmp-widevine

Форум — Development

Прикручиваем Widevine CDM из Chrome к Firefox.

https://github.com/i-rinat/gmp-widevine

Firefox надо брать самый свежий (я брал снимок 29258f59e545 из mozilla-central), накладывать патч (есть в репозитории) и собирать самому. Хотя необходимую функциональность доделали около месяца назад, до основного релиза она ещё не скоро доберётся, да и в код нужно добавить кое-то ещё.

Работает на примерах из https://shaka-player-demo.appspot.com/, кроме «Oops» с «PSSH in MPD». Netflix и фильмы на Google Play тоже заработали.

in b4: Я в курсе, что Digital Restrictions/Rights Management это плохо. Но считаю, что у пользователя должен быть выбор. Не хочешь — не включай.

 , , , , widevine

i-rinat
()

В Firefox возможно повесить ссылку на кнопку панели?

Форум — Desktop

Как в Firefox сделать кнопку, при нажатии которой открывается новая вкладка с определённым, мной заданным, URL? Это можно сделать без аддонов? Есть готовый аддон, который это делает?

Можно включить панель закладок, но она занимает вертикальное место, а если её перетащить на панель с адресной строкой и кнопками, занимает слишком много места по горизонтали. Простая кнопка (наподобие кнопок Hello и Pocket) была бы идеальным решением.

 ,

i-rinat
()

孔明の罠 - Kaizo Trap

Форум — Talks

https://www.youtube.com/watch?v=lIES3ii-IOg

Кто-нибудь прошёл до конца?

 kaizo trap,

i-rinat
()

Firefox и DRM

Форум — Talks

Решил я, значит, разузнать на тему прикручивания Widevine CDM к Firefox. Выяснил, что придумали для этого Gecko Media Plugins, ещё один интерфейс для бинарных плагинов, но уже с изоляцией и песочницей. И вроде как через него в мае анонсированный HTML5 EME (DRM) и реализован. Нашёл описания API, примеры. Пробую — не работает. Вообще никак, даже в подсказках в Web Console нужные слова не появляются. Вспомнил, что у меня не Firefox, а Iceweasel. Выяснилось, что там при сборке всё, хоть как-то напоминающее о DRM, выключено (в обсуждениях они даже патчить собирались, но нашёлся ключ).

Достал Firefox, стал пробовать там. А оно опять не работает! По предлагаемым спекам все реализации должны поддерживать org.w3.clearkey, это простое симметричное шифрование, но и оно не работает! Там в API не хватает функций, которых ждут тестовые плееры. А те функции, что есть, просто возвращают ошибку!

Теперь не знаю, огорчаться или радоваться. Вроде как Mozilla невольно защищает нас от цепких лап капиталистов.

Справедливости ради надо сказать, что пару недель назад отсутствующую функцию всё-таки добавили. Но плееры всё равно не работают.

 , ,

i-rinat
()

Сервис для тестов GPU

Форум — General

Понадобилось мне поотлаживаться на машине с nVidia видеокартой, а видеокарты такой нет. И даже после покупки вставить по большому счёту некуда — для этого надо разбирать комп, согнав с него основного пользователя, менять видеокарту, запускать тест, возвращать предыдущую карту, собирать обратно. Разово такое сделать ещё реально, но одного раза вряд ли хватит. Ситуация осложняется ещё и тем, что разные карты ведут себя по разному, на одних код работает, а на других сбоит. Не собирать же мне коллекцию видеокарт дома.

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

Из хостингов с GPU по разумным ценам нашёл только Amazon AWS, с nVidia GRID. Но они уже несколько дней не позволяют мне создать инстанс, видимо ждут очередного совета старейшин, на котором будет решаться, позволять мне это делать или нет. И, опять-таки, не факт, что там баги воспроизведутся.

 , , ,

i-rinat
()

Как в расширении для Firefox обрабатывать embed и object?

Форум — Development

(Речь про дополнения, те, что на HTML и JavaScript. Не про бинарные плагины.)

Расширения Chrome'а умеют обрабатывать содержимое, предназначенное для плагинов. В manifest.json указывается "mime_types": [[ "application/sometype" ]] и для всех embed и object типа application/sometype в страницу фактически вставляется содержимое расширения.

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

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

 , ,

i-rinat
()

Сообщения из тем в «Клубе» видны в результатах поиска

Форум — Linux-org-ru

Как воспроизвести баг:

  1. Открыть активную тему в Клубе;
  2. перейти в профиль одного из недавно ответивших пользователей;
  3. выбрать список его комментариев;
  4. открыть страницу со списком комментариев в incognito mode браузера.

Что просходит:

В обоих случаях видны сообщения, оставленные в разделе Клуб.

Что должно происходить:

Анониму не должно быть доступно содержимое сообщений из раздела Клуб.

 

i-rinat
()

Обновление Flash плеера в ChromeOS

Форум — General

У кого есть на руках Chromebook'и, какая сейчас там версия Flash плеера? Он обновляется только вместе со всей ОС или чаще?

Версию можно посмотреть на http://www.adobe.com/software/flash/about/ или в chrome://plugins/

 , ,

i-rinat
()

Не работает рендеринг в Pixmap через EGL на Radeon

Форум — Development

Внезапно поломалось рисование в Pixmap через EGL поверхность. Приложение рисует картинку в pixmap EGLSurface, из которого потом с помощью XCopyArea изображение копируется в Drawable, который затем выводится на экран. И весь этот бутерброд работал как на встроенном intel, так и на radeon (HD7730) через DRI_PRIME. Так вышло, что на radeon я его проверял не часто, и теперь там всё поломалось, хотя на intel всё ещё работает.

У меня есть подозрение, что я что-то делаю не так, и очередное обновление просто вскрыло ошибку. Только где эта ошибка?

Ниже приведён код, воспроизводящий проблему на моём железе. При запуске DRI_PRIME=0 ./a.out рисуется ярко-фиолетовый прямоугольник с светло-синей каёмкой, как и должно быть. При запуске DRI_PRIME=1 ./a.out прямоугольник чёрный. В общем-то, неважно, что там будет, лишь glClear() или рисование, ничего не видно.

Mesa 10.3.1, xserver-xorg-core 1.16.1.

( Код )

 

i-rinat
()

apulse

Форум — Development

Everyone! Listen up! Today... today...

$ apulse <program-name> [program parameters]

https://github.com/i-rinat/apulse — эмуляция PulseAudio. Когда приложение пытается загрузить libpulse.so, ему подсовывают её версию от apulse, в которой реализована часть функций, достаточная, чтобы запустить Skype и некоторый другой софт.

 ,

i-rinat
()

Как освобождать память завершённых нитей?

Форум — Development

Вопросы аллокаторов памяти в последнее время стали трендом, а у меня опять нарисовалась старая проблема с псевдо-утечками.

Вот кусок кода:

( (показать код) )

который создаёт много нитей. У меня на 64-битной коробке эта программа выделяет 11g виртуальной памяти, которая не освобождается, когда нити завершаются.

Раньше я решал эту проблему, просто ограничивая число создаваемых нитей, но это не всегда удобно делать. Особенно в случае, если число создаваемых нитей не известно заранее. Может есть какой способ вернуть системе память, выделенную под арену для завершённой нити? Она ведь нити больше не понадобится.

Решение. Выяснилось, что pthread_detach вполне достаточно, если не создавать много нитей одновременно.

 ,

i-rinat
()

Самореклама в Job

Форум — Talks

Много раз видел темы в Job, где авторы ищут работу. Я слышал, что некоторые находили тут работу, но они откликались на размещённую работодателем вакансию, а не наоборот. В связи с очередной «ищу работу» темой у меня всплыл вопрос: «истории успеха есть»?

i-rinat
()

Ищу просмотрщик текста с множественной подсветкой

Форум — Desktop

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

Я ищу программу для просмотра текста, желательно работающую в терминале, в которой можно подсвечивать несколько разных строк разными цветами. Гугл выдаёт рецепты для связки pygments с less, но это не совсем то, так как строки, которые я ищу, меняются от файла к файлу. Сегодня это могут быть «interface» и «4555», а завтра — «param», «allow» и «12». Трёх-четырёх будет вполне достаточно, больше не нужно.

Есть такое?

 

i-rinat
()

FreshPlayerPlugin — PepperFlash в Firefox

Форум — Development

Flash плеер всё заменяют и заменяют, но никак не заменят полностью. Новые и сверхновые фичи браузеров это замечательно, но Flash бывает всё ещё нужен. К сожалению, доступная NPAPI браузерам версия застыла на 11.2, а новые версии выходят только в составе Chrome. Поэтому я делаю адаптер, который сможет быть посредником между PPAPI плагином и NPAPI браузером. Это такая штука, которая позволит использовать свежий Flash в Firefox, Opera и других браузерах, в которых работают плагины.

https://github.com/i-rinat/freshplayerplugin

 , , , , ppapi

i-rinat
()

Прошу проверить баг flash плеера с VDPAU на nVidia

Форум — Talks

В процессе ковыряния с драйвером VDPAU я наткнулся на баг в flash плеере. Проявляется он в растянутых полосах по краям видео. Это видно вот здесь с правой стороны, тогда как без использования аппаратного ускорения всё хорошо. Долгое время я считал это багом в своём драйвере. А когда пришло время исправлять, всё оказалось не так просто.

Конкретно у этого видео [1] размер кадра составляет 322x240, но flash плагин сообщает размер как 336x240, увеличивая его до ближайшего кратного 16. Я не вижу внятных способов определить реальный размер кадра, он нигде в вызовах VDPAU не проскакивает. Остаётся только проверить на nVidia карте; если он проявляется и там, то нет смысла пытаться исправить баг. К сожалению, у меня нет видеокарты nVidia, а купить что-нибудь простенькое и поставить в комп я не могу, с ноутбуком такое сложнее, чем со стационарным ПК.

И вот собственно просьба: проверить на nVidia с проприетарным драйвером, есть баг или нет. Желательно пару скриншотов с включенным и выключенным ускорением [2]. И вывод vdpauinfo | grep Info. А для полного счастья ещё и выхлоп в консоль браузера, запущенного с установленной переменной VDPAU_TRACE=1.

[1] https://www.youtube.com/watch?v=GL0VnLHpVYQ
[2] Как включить/выключить ускорение: раз, два. Чтобы изменения вступили в силу, страницу надо обновить.

 , ,

i-rinat
()

plasma^W opera не падает

Форум — Talks

http://img6.imageshack.us/img6/6051/201306011733261366x768s.png
http://img211.imageshack.us/img211/659/1lk3.png
(Тут должна быть картинка нормально отрисованной Opera Mini. Но на неё смотреть скучно)

Суть: берётся пример bitmap-plasma из android-ndk, собирается под arm Opera Mini 7.5. Из готовой apk вытаскивается .so, в полуавтоматическом режиме разбирается на инструкции, из них генерируется набор «исходников» на C. Дальше это подсовывается компилятору из NDK, который собирает .so-шку для x86. so-шка вставляется в apk. Собранное приложение запускается в эмуляторе android'а, в котором крутится штатный образ для x86. Приложение (Plasma Opera Mini) работает и не падает. Но немного глючит подлагивает в mips-устройстве.

Радость.

 , , , ,

i-rinat
()

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