 |
 |
| |
 |
 |
 |
 |
|
 |
 |
For some time now, my Adobe Flash plugin (v10) in Firefox running under FC10 was working, except for the abyssmal sound quality: cracking, skipping, stuttering, you name it. Apparently, the problem lies in PulseAudio buffering, and can be fixed as follows: sudo vim /etc/pulse/daemon.confHere, I uncommented the following lines (change as necessary): realtime-scheduling = yes default-fragments = 8 default-fragment-size-msec = 25After this, restart the daemon: pulseaudio --kill && pulseaudio --startRestart firefox, and the sound problems should be gone. For more info, see pulse-client.conf(5). Tags: программизм
|
 |
 |
 |
 |
|
 |
 |

 |
| |
 |
 |
 |
 |
|
 |
 |
На дорогах, сцуко, холодно. Напялил всё, что мог, и за каких-то 100 км (туда 50 и обратно 50, ещё и с остановкой в закусочной с горячим кофе) чуть не превратился в эскимо. Хорошо хоть хватило мозгов купить подштанники. Ещё бы шлем потише, а то мой Fulmer шумит как чёрт знает что. Да, и штаны с курткой бы кожаные, было б другое дело — с расцветкой только надо что-то придумать, а то чёрную кожу не видно ни хрена, особенно в темноте, а других цветов я что-то не видел. Жилетку оранжевую или жёлтую можно, да. Ладно, на сегодня будет. Допью пиво и пойду спать. Tags: мото
|
 |
 |
 |
 |
|
 |
 |

 |
| |
 |
 |
 |
 |
|
 |
 |
Задача: создать контейнер таблицы для работы с запросами БД на C++ (в других средах есть DataSet какой-нибудь, а я вот не могу ничего такого найти). Проблема: Итераторы записей. Известно, что при манипуляциях с контейнером итераторы могут быть инвалидированы. Минимизировать этот эффект можно, используя std::list, который инвалидирует только итераторы, указывающие непосредственно на удаляемый элемент. Какой-нибудь void DataSet::erase(DataSet::Iterator& it) может, конечно, изменить свой параметр, и, казалось бы, всё бы хорошо, но как быть, если на удаляемый элемент ссылаются ещё другие итераторы? Возможное решение: 1) Убрать непосредственное удаление элементов, вместо этого помечая их как "удалённые". Итератор может проверять состояние записи: если она удалена, считать себя недействительным, а дальше по усмотрению — либо переходить на соседний элемент (а при итерации пропускать удалённые), либо просто кидать исключение (на данный момент кажется более правильным, потому что переход на соседний элемент создаёт дилемму выбора между следующим и предыдущим). 2) При очистке контейнера (метод clear()) все итераторы должны быть инвалидированы, что логично. Разумным представляется хранить слово состояния контейнера, или версию, копию которой хранить в итераторах. Оверхед небольшой (подумаешь, по 4-8 байт на итератор, по усмотрению; в конце концов, кто будет обновлять контейнер 1.8E+19 раз?), а выгода по сравнению с пулом итераторов в контейнере и работе с ним при создании-удалении-переназначении имеется: контейнеру достаточно инкрементировать слово состояния, и все итераторы автоматически считаются недействительными. В свою очередь, итератору достаточно сравнить 32 или 64 бита (слово или два, в зависимости от архитектуры), и всё сразу будет понятно. 3) Если необходимо, удалённые элементы можно чистить специальной функцией, которая пройдётся по списку и удалит (в этот раз, по-настоящему) помеченные элементы (O(n)). При этом для верности инвалидировать все итераторы (ну или заморачиваться с пресловутым пулом, который, как мне кажется, как-то слишком: иначе нельзя предугадать, кто потеряет ссылки; чистить — так уж чистить). У кого-нибудь есть ещё идеи? Tags: программизм
|
 |
 |
 |
 |
|
 |
 |

|
 |
|
 |