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í
×
    dnes 01:11 | Bezpečnostní upozornění

    Red Hat řeší bezpečnostní incident, při kterém došlo k neoprávněnému přístupu do GitLab instance používané svým konzultačním týmem.

    Ladislav Hagara | Komentářů: 0
    včera 23:33 | Nová verze

    Immich byl vydán v první stabilní verzi 2.0.0 (YouTube). Jedná se o alternativu k výchozím aplikacím od Googlu a Applu pro správu fotografií a videí umožňující vlastní hosting serveru Immich. K vyzkoušení je demo. Immich je součástí balíčků open source aplikací FUTO. Zdrojové kódy jsou k dispozici na GitHubu pod licencí AGPL-3.0.

    Ladislav Hagara | Komentářů: 1
    včera 22:33 | IT novinky

    Český telekomunikační úřad vydal zprávy o vývoji cen a trhu elektronických komunikací se zaměřením na rok 2024. Jaká jsou hlavní zjištění? V roce 2024 bylo v ČR v rámci služeb přístupu k internetu v pevném místě přeneseno v průměru téměř 366 GB dat na jednu aktivní přípojku měsíčně – celkově jich tak uživateli bylo přeneseno přes 18 EB (Exabyte). Nejvyužívanějším způsobem přístupu k internetu v pevném místě zůstal v roce 2024 bezdrátový

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 12:11 | Nová verze

    Raspberry Pi OS, oficiální operační systém pro Raspberry Pi, byl vydán v nové verzi 2025-10-01. Přehled novinek v příspěvku na blogu Raspberry Pi a poznámkách k vydání. Jedná o první verzi postavenou na Debianu 13 Trixie.

    Ladislav Hagara | Komentářů: 0
    včera 05:22 | Nová verze

    Byla vydána nová verze 4.6 svobodného notačního programu MuseScore Studio (Wikipedie). Představení novinek v oznámení v diskusním fóru a také na YouTube.

    Ladislav Hagara | Komentářů: 0
    včera 02:22 | Komunita

    Společnost DuckDuckGo stojící za stejnojmenným vyhledávačem věnovala 1,1 milionu dolarů (stejně jako loni) na podporu digitálních práv, online soukromí a lepšího internetového ekosystému. Rozdělila je mezi 29 organizací a projektů. Za 15 let rozdala 8 050 000 dolarů.

    Ladislav Hagara | Komentářů: 4
    1.10. 20:11 | Nová verze

    Svobodný multiplatformní herní engine Bevy napsaný v Rustu byl vydán ve verzi 0.17. Díky 278 přispěvatelům.

    Ladislav Hagara | Komentářů: 0
    1.10. 16:11 | Nová verze

    Bylo vydáno openSUSE Leap 16 (cs). Ve výchozím nastavení přichází s vypnutou 32bitovou (ia32) podporou. Uživatelům však poskytuje možnost ji ručně povolit a užívat si tak hraní her ve Steamu, který stále závisí na 32bitových knihovnách. Změnily se požadavky na hardware. Leap 16 nyní vyžaduje jako minimální úroveň architektury procesoru x86-64-v2, což obecně znamená procesory zakoupené v roce 2008 nebo později. Uživatelé se starším hardwarem mohou migrovat na Slowroll nebo Tumbleweed.

    Ladislav Hagara | Komentářů: 3
    1.10. 16:00 | IT novinky

    Ministerstvo průmyslu a obchodu (MPO) ve spolupráci s Národní rozvojovou investiční (NRI) připravuje nový investiční nástroj zaměřený na podporu špičkových technologií – DeepTech fond. Jeho cílem je posílit inovační ekosystém české ekonomiky, rozvíjet projekty s vysokou přidanou hodnotou, podpořit vznik nových technologických lídrů a postupně zařadit Českou republiku mezi země s nejvyspělejší technologickou základnou.

    … více »
    Ladislav Hagara | Komentářů: 3
    1.10. 12:55 | Nová verze

    Radicle byl vydán ve verzi 1.5.0 s kódovým jménem Hibiscus. Jedná se o distribuovanou alternativu k softwarům pro spolupráci jako např. GitLab.

    Ladislav Hagara | Komentářů: 3
    Jaké řešení používáte k vývoji / práci?
     (40%)
     (47%)
     (14%)
     (16%)
     (18%)
     (14%)
     (18%)
     (14%)
     (14%)
    Celkem 160 hlasů
     Komentářů: 11, poslední dnes 07:30
    Rozcestník

    Chyba vznikne snadno

    3.5.2006 22:10 | Přečteno: 1656× | Gammu

    Jak si tak čtu zprávičku o chybě v xkách a koukám na patch, který ji opravuje, tak se nemůžu ubránit pocitu, že tu samou chybu jsem dnes už někde viděl.

    Po chvíli uvažování mi to docvakne a vzpomenu si na dnešní commit do python-gammu. Teď mi nezvbývá než souhlasit s těmi co tvrdí, že toto vznikne hrozně snadno :-).

           

    Hodnocení: 92 %

            špatnédobré        

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

    Komentáře

    Vložit další komentář

    3.5.2006 22:20 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Tyhle chyby jsou nejhorší.

    Uvedu příklad: člověk něco nakóduje, pak mu to nefunguje dle očekávání, tak kus kódu zakomentuje, nechá jen "basic" část, která funguje. Postupně odkomentovává a zjišťuje, že nemá potuchy, kde by chyba mohla být. Nervozita. Smaže půlku kódu a napíše jej znovu. Pořád nic, chyba je jinde. Třískání klávesnicí o stůl. No a nakonec zjistí, že nový kód je mnohem hůř napsaný než ten starý a že prapůvodcem byl zapomenutý středník na 3. řádku.

    Nevyhýbám se trvzení, že by to mohl být autobiografický příklad ;-)
    5.5.2006 11:07 prOm3TheuS | skóre: 18 | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Jo, tohle jsem už někde viděl. Mám rád když lítaj písmenka z klávesnice :-D
    Heron avatar 3.5.2006 22:21 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno

    Hmm, ten patche vypadá hodně usměvně. Bohužel, něčemu podobnému se v C asi zabránit nedá, co?

    geteuid je pointer na funkci, zatímco geteuid() je volání funkce, což je céčku jedno. Nebo existuje nějaký parser, který by na podobné konstrukce upozornil?

    3.5.2006 22:32 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Můžeš si vytvořit vlastní logické operace, které budou pracovat jen nad typem boolean, a relační operátory, které budou vracet jen typ boolean.
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    3.5.2006 22:35 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Cisty C umi operator overloading?
    3.5.2006 22:40 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Těžko. Ale to nepotřebuješ, bylo by to jen matoucí a dalším zdrojem chyb. Lepší se mi zdá vytvořit si novou sadu vlastních operátorů a ty používat (místo >, třeba .GT. :-)).
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    3.5.2006 22:45 Jan Kundrát (jkt) | skóre: 27 | blog: jkt | Praha - Bohnice
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    a definovat je pres #define ..., vid...
    3.5.2006 22:48 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Tak s tím .GT. to byl vtip, protože to je z Fortranu. Ale proč nepoužít funkce?
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    3.5.2006 22:49 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    3.5.2006 22:46 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Jezisi takovyhle veci nepiste na verejnosti. Jeste se toho nekdo chytne a vazne to tak udela.
    3.5.2006 22:42 Sinuhet | skóre: 31
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Pretezovat operatory pro vestavene typy nejde ani v c++.
    Heron avatar 3.5.2006 22:52 Heron | skóre: 53 | blog: root_at_heron | Olomouc
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    No nemyslel jsem upravou kódu, prostě jen nějaký prográmek, který by se mrknul na kód a určit by podle pravidel místa, která by mohla být nebezpečná.

    Běžně kompilátory upozorňují na neinicializovanou proměnnou, tak proč ne na nevhodně použitý pointer? Tuším ale, že nějaký kompilátor mě za podobné "chyby" seřval (třeba i za = použité v if). Možná to byl ten k MSVSC++.
    3.5.2006 23:14 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Za = v if seřve i gcc. Pointer se používá dost často, takže to asi warning není.
    4.5.2006 07:32 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Bohužel proti porovnání pointeru s nulou neprotestuje ani GCC4 s -Wall, dokonce mám neblahé tušení, že snad i přímo norma specifikuje, že to musí být přípustné (ale ruku do ohně bych za to nedal, musel bych se podívat). Je to celkem logické, idiomy typu 'if (!p)' se používají skoro všude. Navíc se i NULL často #definuje jako '0' místo '((void*) 0)'.
    Luk avatar 4.5.2006 09:00 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Mám dokonce dojem, že tam je něco jako:
    #ifdef __cplusplus
    #define NULL 0
    #else
    #define NULL ((void*) 0)
    #elif
    
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    4.5.2006 12:33 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Jenže v tomto případě to není pointer, ale compile-time konstanta, použitelná např. pro statickou definici, a gcc to samozřejmě ví.
    Táto, ty de byl? V práci, já debil.
    5.5.2006 13:03 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Tak zrovna tenhle warning se mi moc nelíbí a je myslím dosti pomýlený. Množství lidí kteří píšou v C a místo dvou rovnítek omylem napíšou jen jedno, a zároveň mají náhodou na levé straně lvalue se limitně blíží nule. A přidání závorek a explicitního srovnání s NULL čitelnost kódu jednoznačně *ZHORŠÍ*, protože na levé straně se pak nakupí minimálně dvě otevírací závorky vedle sebe. Viz idiomy:
    while (curr = next_foo(bar))
      baz(curr);
    
    while ((curr = next_foo(bar)) != NULL)
      baz(curr);
    
    Stejně nechápu proč vlastně C trvá na závorkách kolem expr v příkazech if, while, for, switch, protože jsou obvykle redundantní a pouze snižují čitelnost. Zlatej python.
    Táto, ty de byl? V práci, já debil.
    5.5.2006 14:39 Miloslav Ponkrác | blog: miloslavponkrac
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Zase ten zlatej Python neumí přiřazování v podmínkovém výrazu uvnitř if, while, apod.. takže jsem došel na to, že v Pythonu se leccos zapíše dost složitěji, než v C. Stejně tak jsem v Pythonu nenašel ani obdobu do while, ani skutečný cyklus for (to co jsem našel v Pythonu pod názvem for byl ve skutečnosti cyklus typu foreach). Ono je to vlastně jedno, jestli máte závorky kolem expr u if, while atd., nebo jestli tam máte dvojtečku na konci jako v Pythonu, nějaké ohraničení expr prostě potřebujete.
    5.5.2006 15:32 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Python nebyl desingován jako mlátička, ale jako (více méně úspěně) elegantní nástroj, kdežto C je v podstatě makroassembler ;-). Čímž nechci C shazovat, protože je to můj oblíbený jazyk, jenom je určen na něco trochu jiného.
    When your hammer is C++, everything begins to look like a thumb.
    5.5.2006 17:34 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    To bude tím, že hlavní důvodem vzniku C bylo to, aby v něm jeho autoři napsali operační systém. Takže se při jeho návrhu řídili výhradně praktickými hledisky. Hezky to ilustruje důvod, který uvádějí pro volbu = pro přiřazení a == pro porovnání: v programech se statisticky výrazně častěji přiřazuje než porovnává na rovnost, proto je pro přiřazení zvolen kratší operátor; na rozdíl od Pascalu, který byl stvořen jako jazyk pro výuku, jehož návrh zohledňuje spíše teoretická hlediska než praktická. Jinak by totiž Wirtha nikdy nemohlo napadnout něco tak šíleného, jako dát operátorům and a or vyšší prioritu než porovnávání (a takových příkladů by se v Pascalu našlo víc).
    5.5.2006 17:47 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Však já nic jiného netvrdím ;-). Jinak to srovnání bylo C vs Python, Pascal bych sem opravdu netahal.
    When your hammer is C++, everything begins to look like a thumb.
    Luk avatar 3.5.2006 23:14 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Ano, microsoftí takové věci hlásí (ale zrovna to = jen jako warning). Ale zase nehlásí jiné, které hlásí GCC. To si nevybereš :-D

    Ale lze používat pomocné programy (jako např. splint), které leccos najdou.
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    4.5.2006 12:29 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Pomocné programy jsou ze systémového hlediska dosti blbost, protože z velké části zbytečně duplikují celý preprocesor a parser z gcc. Mnohem lepší by byl pluginový systém pro gcc, kde by sis mohl naháčkovat kontroly na té úrovni překladu, kterou uznáš za vhodné, a pak jednoduše balíček rekompiloval.
    Táto, ty de byl? V práci, já debil.
    Luk avatar 4.5.2006 16:06 Luk | skóre: 47 | blog: Kacířské myšlenky | Kutná Hora
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    To je sice pravda, ale v tuto chvíli je jediné řešení používat tyto nástroje (nebo nepoužívat a mít tam podobné chyby ;-)).
    Šifrování je absolutní nutnost a pomáhá chránit před nekalými živly
    4.5.2006 08:39 Michal Marek (twofish) | skóre: 55 | blog: { display: blog; } | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Zrovna takový prográmejk přišel na tu chybu v Xorg.
    4.5.2006 12:25 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Především se mi zdá že test na "real uid je root nebo effective uid není root" jaksi postrádá smysl, jde o sčítání (logické or) hrušek s jablky. Jestli ten kód má nějaký smysl, rád bych se ho dozvěděl.
       /* First the options that are only allowed for root */
       if (getuid() == 0 || geteuid() != 0)
    
    Jo a chybějící function call by mělo gcc v tomto případě hlásit, protože geteuid bez závorek je reference na externí symbol, tudíž je blbost jej castovat na bool.
    Táto, ty de byl? V práci, já debil.
    4.5.2006 12:32 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Logika je asi taková, že pokud si root (getuid) tak to můžeš udělat. Pokud binárka je setuid a tím se nastaví efektivní uid na roota, tak ne. Pokud je binárka uživatelova a/nebo nemá setuid, tak si s tím může dělat cokoliv.
    4.5.2006 12:51 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Aha, už rozumím. Jenže X je a vždy bylo setuid root (jinak by ten šmejd nemohl na železo), takže geteuid() != 0 je vždy false, takže ten test tam IMHO nemá co dělat. A kdyby tam nebyl, nebyla by ani chyba :)
    Táto, ty de byl? V práci, já debil.
    4.5.2006 13:03 Michal Kubeček | skóre: 71 | Luštěnice
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    X nemusí mít suid bit, pokud ho nepotřebujete spouštět interaktivně pomocí startx. Což dnes naprostá většina uživatelů nepotřebuje.
    4.5.2006 13:12 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Jenže pokud X není setuid, tak jej musí spouštět root, tudíž se druhý test s geteuid() v podmínce stejně přeskakuje a nemá tam tedy co dělat.
    Táto, ty de byl? V práci, já debil.
    5.5.2006 14:42 xxxxxxxx | skóre: 16 | blog: mrtvy blog | v nebi
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    kuli jednej zavorce sem dnes stahoval 88 MB rpmka v updatu :-D
    5.5.2006 14:52 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Máš používat distribuci která má Xka rozdělená :-).
    5.5.2006 15:57 Jan Grmela | skóre: 45 | blog: Kilo šťávy z lachtana | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    Buď rád, že nemáš Gentoo jako já :-)
    10.5.2006 13:03 zde | skóre: 9 | blog: Linuch | Brno
    Rozbalit Rozbalit vše Re: Chyba vznikne snadno
    88Meg kvůll chybě v (pravděpodobně) nadbytečném kódu.. jaká ironie. :)
    Táto, ty de byl? V práci, já debil.

    Založit nové vláknoNahoru

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