abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    včera 19:11 | Komunita

    Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.

    Ladislav Hagara | Komentářů: 2
    včera 16:11 | Nová verze

    Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.

    Ladislav Hagara | Komentářů: 0
    včera 14:11 | Nová verze

    FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.

    Ladislav Hagara | Komentářů: 2
    včera 13:11 | IT novinky

    Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.

    Ladislav Hagara | Komentářů: 8
    včera 12:22 | IT novinky

    Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v

    … více »
    Ladislav Hagara | Komentářů: 26
    včera 01:55 | Nová verze

    Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.

    Ladislav Hagara | Komentářů: 2
    včera 00:55 | Nová verze

    Byla vydána (𝕏, Bluesky) nová verze 2026.1 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 8 nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 0
    24.3. 16:33 | IT novinky

    Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce

    … více »
    NUKE GAZA! 🎆 | Komentářů: 11
    24.3. 13:55 | Nová verze

    Byl vydán Mozilla Firefox 149.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.

    Ladislav Hagara | Komentářů: 6
    24.3. 13:22 | Nová verze

    Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland

    … více »
    Ladislav Hagara | Komentářů: 1
    Které desktopové prostředí na Linuxu používáte?
     (15%)
     (7%)
     (1%)
     (12%)
     (30%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1152 hlasů
     Komentářů: 27, poslední 17.3. 19:26
    Rozcestník

    Pekelná konstrukce

    27.5.2007 17:47 | Přečteno: 1900× | Ani zbla | poslední úprava: 27.5.2007 17:51

    Kdysi dávno jsem byl v konferencích cecko@pandora.cz a os@pandora.cz. Už nevím, do které z nich kdosi poslal kus kódu v céčku, který řadu přítomných udivil. Jednalo se o Duff's device, které by se ale mělo jmenovat spíš Hell device. Po letech jsem na tuto konstrukci znovu narazil, tak se s vámi chci podělit

    O co jde? Je to kus kódu, kde je konstrukce switch promíchána s jinou konstrukcí - v tomto případě do/while. A je to validní céčkový zdroják.

     
    switch (count % 8)  /* count > 0 assumed */
     {
       case 0:        do {  *to++ = *from++;
       case 7:              *to++ = *from++;
       case 6:              *to++ = *from++;
       case 5:              *to++ = *from++;
       case 4:              *to++ = *from++;
       case 3:              *to++ = *from++;
       case 2:              *to++ = *from++;
       case 1:              *to++ = *from++;
                         } while ((count -= 8) > 0);
     }

    K čemu je to dobré? Dnes k ničemu. Ale v 80. letech se dělaly optimalizace na zmenšení počtu větvení programu, takže výše uvedený kód byl rychlejší než:

     do {                          /* count > 0 assumed */
       *to++ = *from++;            
     } while (--count > 0);
    

    Dneska už jsou procesory někde jinde, zrychlení to nepřinese. A programátoři takhle už optimalizovat neumí - za vše mluví, že když jsem si psal na tohle benchmark, vyrobil jsem Segmentation Fault. Jdu zase Pythonit.

           

    Hodnocení: 100 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    27.5.2007 18:55 Ondřej Čečák | skóre: 33
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    "A programátoři takhle už optimalizovat neumí -- za vse mluvi ..."

    Nebo to, ze tvrdi, ze Java je pomala.
    -- "Ja vim, on vi, ty pico!"
    27.5.2007 19:14 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Pekelná konstrukce

    1. Pokud by taková optimalizace skutečně pomohla, měl by ji dělat překladač, ne programátor. Takhle zprasit a znečitelnit zdroják kvůli drobnému zrychlení, to nejsem při nejlepší vůli ochoten považovat za chvályhodné.

    2. Současné verze GCC (a nejspíš i jiných překladačů) mají funkce typu memcpy() implementované jako builtin, který už je optimalizován pro danou platformu.

    3. Až někdy nebudu mít do čeho dloubnout, docela rád se podívám, jestli je to syntakticky opravdu v pořádku nebo jestli je to jen nepozornost překladače.

    b42 avatar 27.5.2007 19:35 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Dnes uz asi takova optimalizace nema opodstatneni, nicmene v teto podobe vznikla pred temer 25 lety a v te dobe asi byly veci trochu jine nez jsou dnes:) viz wikipedia
    b42 avatar 27.5.2007 19:39 b42 | skóre: 12 | Ostrava/Brno
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Divam se ze link je i v clanku. Omlouvam se a prosim vsechny, aby se tvarili jako ze jsem nic nenapsal.
    alblaho avatar 27.5.2007 19:44 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Ty jsi ten post snad vůbec nečetl. Jasně říkám, že dnes už je to pasé. Navíc to ani není hezké, ale spíš je to kuriozita.

    Syntakticky to v pořádku opravdu je. Dokonce i v C++, pač Stroustrup to má údajně v knížce :-)
    27.5.2007 21:45 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Na platnosti věty "Takhle zprasit a znečitelnit zdroják kvůli drobnému zrychlení, to nejsem při nejlepší vůli ochoten považovat za chvályhodné." trvám bez ohledu na rok vzniku takové hrůzy.
    27.5.2007 23:26 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Takže ekvivalent v assembleru by byla "nepřenositlelná hrůza", když tohle je přenositelná hrůza? :-)
    27.5.2007 23:57 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Od toho, kdo programuje v assembleru, se takové hrůzy víceméně očekávají. Ve vyšším programovacím jazyce (šetřte klávesnici, céčko je vyšší programovací jazyk) by se mělo myslet i na srozumitelnost kódu.
    28.5.2007 00:07 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Ehm, já vím, že Cčko je vyšší jazyk - kdyby nebylo, nebylo by přece (z definice vyššího jazyka) přenositelné. ;-)
    28.5.2007 08:56 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Když slyším vyšší jazyk, tak mě vždy napadne změřit výšku jejich specifikace :-)
    When your hammer is C++, everything begins to look like a thumb.
    28.5.2007 17:55 deda.jabko | skóre: 23 | blog: blog co se jmenuje "každý den jinak" | za new york city dvakrát doleva a pak už se doptáte
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    v tom pripade nejvyssim programovacim jazykem je bezesporu Open XML
    Asi před rokem se dostali hackeři na servry Debianu a ukradli jim zdrojové kódy.
    27.5.2007 19:45 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    1) Kompilátory Cčka v roce 1983 na strojích s omezeným množstvím paměti neměly zrovna mistrovské optimalizátory. ;-) A to zrychlení v danou chvíli asi nebylo "drobné", myslím, že bylo dvojnásobné nebo tak nějak. Teoreticky bych ho (na modernějším VAXu) mohl zkusit změřit, luštit latenci VAXích instrukcí ze specifikace se mi nechce, je příliš tlustá a jednoduchá tabulka v ní není. :-)

    2) Tohle ale nebyl memcpy(). ;-) Nebo aspoň ne původně: Alblaho měl vložit původní verzi, jejíž smysl je poněkud čitelnější (viz Wikipedia).
    alblaho avatar 27.5.2007 20:07 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    No, ta původní verze dělá tohle:
     do {                          /* count > 0 assumed */
       *to = *from++;              /* Note that the to pointer is NOT incremented */
     } while (--count > 0);
    Tedy neinkrementuje pointer to. Čuměl jsem na to jak puk, a myslel jsem, že ostatní čtenáři by čuměli taky. Pak jsem si přečetl, že na adrese to je namapován I/O port a rozsvítilo se mi. Takže původní verze sice nelze smést ze stolu tvrzením "použij memcpy", ale zato je dnes zcela dokonale pasé. I když jednou jsem v nějaké embedded krabičce na port takhle přistupoval...
    28.5.2007 19:50 jekub | skóre: 9 | blog: noblog
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    ad 3, syntakticky je to v pořádku, dokonce to uvádí Bjarne Stroustrup jako cvičení po některé kapitole v "C++ Programovací jazyk"
    27.5.2007 22:44 Ladicek | skóre: 28 | blog: variace | Havlíčkův brod
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Kdysi dávno jsem byl v konferencích cecko@pandora.cz a os@pandora.cz.
    A proč už nečteš OS? Nedávno jsme tam probírali, jestli by náhodou kluci od Flexu nechtěli to svoje dítko opensourcovat :-)

    Tedy ve skutečnosti o tom padly dvě věty a zas to šlo hodně rychle do kytek. Ale co, Aleš Procháska byl celkem pro :-)
    Ještě na tom nejsem tak špatně, abych četl Viewegha.
    alblaho avatar 28.5.2007 00:56 alblaho | skóre: 17 | blog: alblog
    Rozbalit Rozbalit vše Re: Pekelná konstrukce
    Jsem myslel, že už se zajímá jen o potápění.

    Jak je znám, tak by si stejně vymysleli licenci nekompatibilní s čímkoliv. "Můžete linkovat s tím a tím, jen když si budete hvízdat Most přes řeku Kwai" :-)
    28.5.2007 15:18 Andrej | skóre: 51 | blog: Republic of Mordor
    Rozbalit Rozbalit vše Re: Pekelná konstrukce

    Tento hustý kousek kódu mě zaujal natolik, že jsem udělal malý benchmark. :-)

    Založit nové vláknoNahoru

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