abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 21:55 | Nová verze

    Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.

    Ladislav Hagara | Komentářů: 4
    včera 20:22 | IT novinky

    Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.

    Ladislav Hagara | Komentářů: 0
    včera 12:55 | Nová verze

    Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.

    JZD | Komentářů: 0
    7.5. 18:55 | IT novinky

    Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).

    Ladislav Hagara | Komentářů: 10
    7.5. 18:33 | IT novinky

    Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.

    Ladislav Hagara | Komentářů: 2
    7.5. 17:11 | Nová verze

    Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.

    Ladislav Hagara | Komentářů: 0
    7.5. 13:44 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.

    Fluttershy, yay! | Komentářů: 0
    7.5. 13:11 | IT novinky

    Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.

    Ladislav Hagara | Komentářů: 2
    6.5. 21:33 | Komunita

    Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.

    Ladislav Hagara | Komentářů: 5
    6.5. 21:11 | IT novinky

    Stack Overflow se dohodl s OpenAI o zpřístupnění obsahu Stack Overflow pro vylepšení OpenAI AI modelů.

    Ladislav Hagara | Komentářů: 1
    Podle hypotézy Mrtvý Internet mj. tvoří většinu online interakcí boti.
     (63%)
     (7%)
     (14%)
     (16%)
    Celkem 139 hlasů
     Komentářů: 10, poslední včera 17:35
    Rozcestník

    Zpravodaj o Víně – 4. 3. 2012: Změny v práci se zařízeními ALSA

    6. 3. 2013 | Luboš Doležel | Různé | 2892×

    Nové verze Wine. Přetečení 64bitového čísla za 3 dny. RFC: Odstranění hledání zařízení ALSA.

    Obsah

    Nové verze Wine

    link

    Od vydání posledního zpravodaje uplynulo několik měsíců, protože se bohužel nenašel dostatek zajímavého materiálu. Toto jsou novinky posledních třech vydání Wine:

    Wine 1.5.23 vyšlo 1. února s těmito změnami:

    • Podpora HTTPS už nezávisí na OpenSSL.
    • Podpora vstupu v ovladači Mac.
    • Funkční věstavěná aplikace netstat.
    • Hromada matematických funkcí v runtimu C++.
    • Různé opravy chyb.

    Wine 1.5.24 vyšlo 15. února s těmito změnami:

    • Podpora klávesnice a kolečka myši v ovladači Mac.
    • Podpora regulárních výrazů ve VB Scriptu.
    • Velké pročištění kódu v RichEdit.
    • Různé opravy chyb.

    Wine 1.5.25 vyšlo 1. března s těmito změnami:

    • Řádná podpora kurzoru v ovladači Mac.
    • Opravy podpory RTL v RichEdit.
    • Počáteční verze fontu Wingdings.
    • Různé opravy chyb.

    Přetečení 64bitového čísla za 3 dny

    link

    Jörg Höhle se rozhodl upozornit na riziko používání 64bitových čísel – zejména pak nevhodných matematických operací. Při troše neopatrnosti pak můžeme snadno stvořit 64bitový čítač, který ale přeteče za pouhé tři dny:

    Určitě věříte tomu, že vám 64bitové integery dávají dostatek prostoru a času na to, abyste se vyhnuli problémům jako Y2k a Y2033, že jo?

    Problém je v tom, že tyto velké datové typy svádějí k používání čísel větších, než bylo zvykem, například počítání ve 100nanosekundových jednotkách, což vyjadřuje jednu sekundu jako 10000000.

    Při kombinování velkých čísel způsobíte přetčení dříve, než si myslíte. Ozvláště vzorec X * čitatel / jmenovatel představuje problém. Podívejme se na winealsa:AudioClock_GetPosition:

    QueryPerformanceCounter(&stamp);
    QueryPerformanceFrequency(&frequency);
    *qpctime = (stamp.QuadPart * (INT64)10000000) / frequency.QuadPart;
    

    QueryPerformanceCounter (QPC) vrací čas jako neurčenou jednotku (frekvence) a potřebuje to převést do 100nanosekundových jednotek. Pojďme si to vyjádřit graficky, g – odpadní bity, s – posunuté bity, X – platné bity:

        6         5         4         3         2         1
    4321098765432109876543210987654321098765432109876543210987654321
    <<< posun vlevo, násobení               dělení, posun vpravo >>>
    

    Předpokládejme, že QPC vrátí 64 platných bitů:

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX QPC

    Vynásobíme to (INT64)10000000 (log2 ~ 23):

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXsssssssssssssssssssssss *10000000

    Vydělíme to frekvencí (shodou náhod také 10000000):

    gggggggggggggggggggggggXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX /10000000 (100 ns)

    Už teď vidíte, jak se nám snižuje počet platných bitů.

    Teď už nechceme nanosekundy, chceme sekundy. Znovu číslo vydělíme:

    ggggggggggggggggggggggggggggggggggggggggggggggXXXXXXXXXXXXXXXXXX /10000000 (sekundy)

    Kruci, na vyjádření sekund nám zbývá jen 18 bitů! Kolikpak dnů to je?

    (/ (ash 1 18) 3600.0 24) -> ~3.03

    Takže po třech dnech se GetPosition v mmdevapi ve Wine protočí. 3 dny není zrovna příliš ve srovnání s 50000 léty, které se dají ve 64bitovém integeru vyjádřit s přesností 100 nanosekund, co?

    Nevím, jestli se GetPosition týká bugu #26968, kde si uživatel stěžuje, že foobar přestane po 4-7 dnech přestávat přehrávat zvuk, ale asi tušíte, oč mi jde.

    Jörg připravil na toto a několik dalších míst patche. Otázkou je, jak obecně správně postupovat. Použít typ double jako mezityp a ztratit 11 bitů na exponent, ale alespoň tak zachováme řád?

    O ničem nebylo rozhodnuto, jen Alexandre připomněl, že i bez 64bitových typů bychom se měli dokázat obejít. I tak se ale začalo na řešení pracovat.

    RFC: Odstranění hledání zařízení ALSA

    link

    Současné chování Wine je takové, že při každém spuštění prochází dostupná zvuková zařízení ALSA a ta pak nabízí. Jörg Höle to nepovažuje za nejrozumnější chování:

    winealsa by mělo přestat enumerovat zařízení ALSA. Standardně by mělo nabízet jen přístup k výchozímu zařízení ALSA nazvanému „default“.

    Kód, který aktuálně prochází registr Software\Wine\Drivers\winealsa.drv\devices=... by zůstal tak, jak je, a umožňoval by čárkou oddělovaný seznam dalších zařízení ALSA pro místa, kde není „default“ upřednostňovanou volbou.

    Odůvodnění: Frontendy ALSA (pulse, dmix, ...) pracují s několika málo backendy (jedna nebo dvě zvukové karty nebo zařízení plug). Některé frontendy drží backendy otevřené, i když nejsou používány. Ví se, že to způsobuje nahodilé chyby.

  • Sady testů nahodile selhávají („prostředek dočasně nepřístupný“), např #28109, #28048 nebo provádějí někdy více, někdy méně testů v závislosti na tom, jestli se aplikaci podařilo zařízení otevřít, nebo ne.
  • Zvuk náhodně přestává v aplikacích fungovat (věřím, že k tomu dochází při přechodu z intra do hlavního menu nebo do hry, právě tehdy dochází k opětovnému hledání zvukových zařízení).
  • Nikdo nenašel hezký způsob, jak robustně procházet zařízení ALSA (některé aplikace mají natvrdo nastavené obvyklé názvy), tak proč se problému nevyhnout úplně.

    Na spoustě systémů současný kód vytvoří docela nezajímavý výčet zařízení, např. „default“, „plughw:0“ a „plughw:4“. Kdo by v dnešní době chtěl hw:0 bez míchání? Současný kód nevypíše existující zařízení jako „plug:dmix“.

    Na druhou stranu, když vypíšeme jen „default“ nebo uživatelem ručně zadaný seznam zařízení, budeme mít očekávanější a lepší výsledky.

    Co to bude znamenat pro uživatele: Uživatelé s funkčním zařízením „default“ by neměli narazit na jakékoliv nevýhody, jen na přednosti. Věřím, že právě to je případ většiny lidí. Uživatelé, kteří si upraví svoje ~/.asoundrc nebo definují jiná zařízení bez jejich nastavení jako !default budou muset dodatečně upravit registr Wine, aby určili, co se má používat pro záznam a přehrávání, např. „asnoop“ a „amix“.

    winecfg by možná nabízelo GUI pro toto nastavení, nebo třeba ne. To by bylo podobné většině multimediálních přehrávačů, které nějakým způsobem umožňují změnit zařízení ALSA, co se má používat. Je škoda, že schéma používané v registru neumožňuje nastavení pro každou aplikaci zvlášť, ale to je nesouvisející problém.

    Co by znamenalo nepřijetí tohoto návrhu: Uživatelé i vývojáři budou nadále naštvaní. Bugy zůstanou otevřené. Bude docházet k nepředvídatelným výpadkům zvuku, kdydkoliv bude mmdevapi nanovo hledat zařízení ALSA.

    Henri Verbeet vidí jako problém to, že v ten moment nebudou mít uživatelé na výběr mezi různými zařízeními, což není v době HDMI výstupů a USB headsetů neobvyklým požadavkem. Andrew Eikum zase upozorňuje na to, že mezi ALSA a PulseAudio je rozdíl v tom, jak by takový výběr zařízení měl probíhat:

    Je to trochu komplikované, protože ALSA a PulseAudio mají rozdílné teorie o tom, kde má k výběru zařízení docházet – v aplikaci, nebo v mixéru. V případě ALSA bychom měli vypisovat zařízení. V případě Pulse by se měl vypisovat jen „default“.

    Skutečnost, že ALSA stále nemá použitelné API pro enumeraci, mě vede k tomu, že enumerace asi není zamýšleným use-case. Oficiální ukázkové aplikace ALSA obvykle používají jen „default“ nebo nechají uživatele zadat své vlastní zařízení. To se zdá být dobrým kompromisem.

    Proto mi přijde rozumné vypisovat jen „default“, ale umožnit také snadno přidat nová zařízení. Nutit uživatele, jako je Max, aby lezli do regeditu v každém prefixu, aby přidali zvukové zařízení, je na prd. To by znamenalo do winecfg přidat nějaký dialog specifický pro ovladač (nebo ovládací panel)? To je sice taky na prd, ale myslím si, že je to to nejméně špatné řešení.

    Jörg také souhlasí, že uživatel by měl mít jednoduchou možnost, jak zadat název zařízení ALSA bez spouštění regeditu. Jenže zatímco někteří přikyvují, že by se kód procházející zařízení ALSA mě vyhodit, Alexandre nesouhlasí – protože tento kód pro něj funguje právě tak, jak by měl. A tak by to mělo fungovat u všech. Ukazuje se, že enumeraci ALSA pro některé rozbíjí právě přítomnost PulseAudio.

    Dál se debata nedostala. Bohužel se ukazuje, že současný stav podpory zvuku není na Linuxu vždy zrovna uživatelsky přívětivý.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    6.3.2013 19:01 dekl
    Rozbalit Rozbalit vše Re: Zpravodaj o Víně – 4. 3. 2012: Změny v práci se zařízeními ALSA
    Jedou?
    tsLnox avatar 6.3.2013 21:13 tsLnox | skóre: 31 | blog: Blog jednoho ukecaného Gentoolemana | Žďár nad Sázavou
    Rozbalit Rozbalit vše Re: Zpravodaj o Víně – 4. 3. 2012: Změny v práci se zařízeními ALSA
    9.3.2013 23:58 JZD | skóre: 14 | blog: Na_dvorku
    Rozbalit Rozbalit vše Re: Zpravodaj o Víně – 4. 3. 2012: Změny v práci se zařízeními ALSA
    Ne, ale mám to z druhé ruky.
    Víra znamená vyznávat to, o čem člověk dobře ví, že to není pravda. Mlčeti platina, mluviti v gajzu, býti v hajzlu.
    D.A.Tiger avatar 11.3.2013 08:42 D.A.Tiger | skóre: 8 | Brno
    Rozbalit Rozbalit vše Re: Zpravodaj o Víně – 4. 3. 2012: Změny v práci se zařízeními ALSA
    Zkus to - a uvidíš ;)
    Radost z toho, že někdo objeví něco nového, je omyl starý 6000 let... (Jean Paul) | anthill inside

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.