Scenar na komiks jsem redakci poslal ja. Autor komiksu ho mirne zmenil. Koukam ted, ze na jednom radku jsem zapomnel strednik. Puvodne to bylo takhle:
1. Surfboard na mori s tlustym brejlatym pupkatym geekem v lehce nevkusnych
shortkach, padlujicim - kmitajicim rukama o 106, z kraje ramecku se na nej vali
vlna kterou se snazi chytit
2. more s vlnou v pozadi, na vlne geek ve stylisticky dobre vypadajici pozici
na boardu dela divoke manevry. V popredi na plazi stoji 2 osoby. Jedna - mene
atraktivni - jeho pritelkyne - se kouka na geeka. Druha - prsata blondyna s
koktejlem v ruce se kouka na prvni a rika "a to si porad rikala ze ma nejakou
poruchu a porad jenom programuje"
3. samotna vlna s geekem o okamzik pozdeji uprostred nejakeho divokeho manevru,
geek uprene hledi dopredu, soustredi se kam jede, myslenkovy oblacek od geeka s
nasledujicim obsahem:
Zcela jiste se jedna o nove se hojne vyskytujici druh, takzvany programator zacatecnik (Homo sapiens neandrtalis computeris) ktery se k nam rozsiruje z mist jako Unicorn nebo Indie. Pozor na ne! Kousou a pouzivaji goto, berou 80 Kc/hodinu a delaji nam ostudu!
Neřekl bych, že goto musí být nutně začátečnické. Pokud se podíváte do zdrojáků kernelu, tak tam jsou skoro v každé 3. funkci. Pochopitelně používat je místo cyklů je fuj.
Hm, a Theo de Raadt je v tomto oboru nějakou autoritou? Člověk, který nařizuje svým vývojářům, co smějí a nesmějí říkat, který je známý svými ublíženými výkřiky bez argumentů, a který, jsa sám argumenty utlučen, začíná fňukat "ale my píšeme OpenSSH, takže se k nám chovejte hezky"?
Viděl jste někdy zdrojáky OpenBSD? Napsat půl operačního systému v céčkovém preprocesoru není zrovna nejlepší příklad přehledného stylu programování.
Bohuzel je to od slova "mytit" jako vypalovat stromy viz treba http://cs.wikipedia.org/wiki/Vyjmenovaná_slova a nebo google ktery po zadani vymytil najde 1920 odkazu a vymitil 1060, coz je podle me nejlepsi slovnik ;)
Nejhorší je, když začne člověk, který by měl raději mlčet a poslouchat, aby něco věděl, mít vtíravou potřebu někomu radit, aniž by o tom sám něco věděl, jako v tomto případě...
Tohle mi něco připomnělo:
Programátor sedí u počítače a programuje. Říká si: "Tak, teď buď můžu přestrukturovat celý program, nebo použiju jedno malé goto." Tak ho použije a v tom hop, hop, hop - přiskákal velociraptor a chramst! - sežral ho.
Nutnost pouzit goto v Cckovem programu svedci o spatnem navrhu celeho programu. Vyjimkou jsou samozrejme casti napsane primo v Assembleru, kde to je nezbytne. Coz se da ale nasemu surfari jiste prominout jsa casti mozku vytezovan vyvazovanim teziste.
Už Ti někdo řekl, že jsi čuně? Nebo jsi dodnes nepochopil, proč je v Cčku pořád ještě goto? (nápověda: právě kvůli takovýmhle případům...) Taky předěláváš do...while jenom na while a switch na jenom if...else if...else, aby to bylo jó všechno "jednodušší"?
On hlavně v 99,9% případů není důvod ten vnitřní cyklus nedat do samostatné funkce. Nebo, jako v tomto případě, by stačilo namísto while (1) v tom vnějším cyklu dát while (!pryc). V opravdu zanedbatelném množství případů je goto užitečné, ale to jsou fakt výjimky. Pascal, který nemá break a continue, se bez goto obejde opravdu těžko, ale to je jiná story.
Nielen že má continue a break ale má aj break n kde n je úroveň z ktorej má vyskočiť. goto som písal akurát tak v hisoft pascale na spectrer pred 20timi rokmi. ;)
Samozřejmě, že to jde i přes for, já jen chtěl ukázat, že použití goto v C není zapotřebí a pro vyskočení ze dvou cyklů lze použít i jiné konstrukce. Goto jsem v C ještě použít nemusel.
Ale všechny tyto konstrukce jsou méně čitelné a obě jsem uvedl už ve svém příspěvku jako horší než goto. Dále je goto velmi užitečné pro postupnou dealokaci prostředků po chybě.
To samozřejmě jde (a na rozdíl od v jiných příspěvcích navrhované stavové proměnné se mi při tom neotvírá kudla v kapse), jen je otázka, jestli je to přehlednější a v daném případě vhodné (pokud to hledání závisí na deseti proměnných a hledá se podle nějakého zvláštního predikátu, pak asi ne - pokud hledáme nulu, pak je to OK). S tím souvisí i ta znovupoužitelnost.
Ono jsou i jiné možnosti, třeba strčit do extra funkce to co následuje za found: a místo goto found volat tu funkci. Ale platí o tom to samé.
Ale hlavně si myslím, že goto (třeba) v tomhle případě čitelnost programu nezhoršuje. A pokud někdo říká že goto je špatné, nikdo ho nesmí používat, ale nedokáže říct proč si to myslí, pak tím ukazuje jen svou omezenost.
A Chuck Moore zase tvrdí, že používat pojmenované lokální proměnné svědčí o špatném návrhu celého programu, že jemu vždycky stačil zásobník. (Na rozdíl od Tebe ovšem ten pán navrhl a vyrobil tucet procesorů a vyvinul pro ně kompletní vývojová prostředí a píše aplikace od začátku šedesátých let.) A teď mi řekni, který z těchhle dvou názorů má větší váhu a proč by ji měl mít.
No jo, ale ve Forthu :-)
V programu ve Forthu jsem v životě nepotřeboval pojmenovanou lokální proměnnou a když, tak jsem to vždycky předělal tak, abych ji nepotřeboval - a program se tím pokaždé zelegantnil.
Pokud z nějakého důvodu nechci či nemohu (u C++) použít automaticky destruovatelné/zavírané proměnné, tak příklad s goto bývá lepší řešení než bez něj. Přestože obvykle překladače přeloží ve výsledku oba kódy +- stejně, ve druhém případě si z lidského pohledu lépe pohlídám že vždy zavřu vše co mám - stačí napsat jednou na konci. Obzvláště když je těch error ukončení velký počet a rutinu stále vyvíjím a hrabu do ní a třeba přidávám další lokální věci co potřebují uzavření/dealokaci.
Typicky ctenar sobotniho komiksu nebude diskutovat o vtipu, ale o tom, jestli autor vubec umi programovat, kdyz za register_timer() chybi strednik, dalsi ctenar pak prida informaci, kde kompilator zahlasi chybu, dalsi tri mu navrhnou pouziti novejsi verze gcc, ktera se chova o trochu lepe (s dalsim oponentem, ktery danou verzi gcc oznaci za nestabilni). Na zaver debata skonci flamewarem programatoru o tom, proc v 21.stoleti se jeste pouzivaji jazyky, ktere jeste vyzaduji oddelovace strednik a nebo se konecne i pro starsi jazyky nenapisou lexikalni analyzatory, ktere tuto berlicku nebudou potrebovat.
Tu chybu se strednikem jsem tam zavlek ja - zapomnel jsem to tam a nezkontroloval jsem to. Surfer by tedy mel tedy spravne zahlasit "mozegfault" a hodit okamzite wipeout.
Rikaval Rudolf Kryl. My mame v Linksu goto 950x. Zejo, Miguasi?
Lidi z vysokych skol taky rikaj, ze prijimac Ronji nemuze z principu fungovat. Maji v zasade pravdu - prvni stupen ma sirku pasma jen 0.22 MHz a na prenos 10Mbps manchester signalu je treba sirka pasma 16 MHz.
Problem neni ze by byla Ronja navrzena spatne. Problem je v tom, ze oni nechapou trik, co jsem pouzil.
No, podle mně má člověk programovat tak, aby tomu kódu po sobě porozumněl hlavně on sám, takže pokud člověku nevadí číst goto, ať je klidně píše. Pokud mu goto vadí, může tam místo několika goto naflákat třeba 7 vnořených cyklů a 2 pomocné proměnné.
Mně přišel kód, který si vývojář psal sám pro sebe, srozumitelnější než kód, který psal pro ostatní.
Nejde totiž o počty goto nebo komentářů --- jde o to, že když máš možnost udělat rozhodnutí, které ti momentálně ušetří trochu času, ale z dlouhodobého hlediska udělá projekt hůře spravovatelný, tak pokud to člověk píše sám pro sebe, tak takové rozhodnutí neudělá (protože každá prasárna se mu za několik měsíců vrátí), zatímco, pokud to píše v týmu, tak to klidně udělá, s tím, že problémy si pak slízne někdo jiný.
IMHO zalezi spis na tom jaky je to clovek (nebo spis programator). Jsou lidi, kteri by tymu takovy podraz neudelali, a jsou lidi, kteri si zdemoluji i vlastni program a jeste se tim vytahuji, protoze nechapou rozdil mezi normalnim programovanim a soutezi na tema obfuskace kodu.
Ronja je navrhnuta zle,.. aby sa Ronja aspon kusok priblizila k priemernemu navhru bolo by treba zacat znova a urcite zmenit meno, lebo kazdy kto to videl by bol dopredu zaujaty :-).
Ty vlny v 1. policku jsou obracene. Zdatny matematik by na to mohl prijit :) Jak to funguje - po vyreseni diferencialni rovnice povrchove vlny (tu ted nedokazu na webu najit, ale na surfovacim kursu jsme ji meli) vyjde rychlost sireni vlny v aproximaci takhle:
kde d je hloubka vody. Vidime, ze cim hlubsi voda, tim rychleji se vlna siri. Vrcholek vlny ma hlubsi vodu nez spodek a bezi tedy rychleji -> vlna ma tendenci prepadavat dopredu. Na obrazku vlny prepadavaji dozadu.
V extremnim pripade kdyz vlna prudce najede na melcinu, rozdil je tak velky, az vrsek vlny zacne prepadavat jako vodopad - to pak vznikaji takove ty trubkovite vlny v nichz uvnitr jezdit je sen vsech surferu.
Pokud je gramatika dostatecne jednoducha a kompilator delany bisonem, tak se vsude kde je ';' da neterminal command_separator a pak se nadefinuje:
command_separator: /* empty */
| ';'
;
A pak se pomodlit, aby si s tim Bison poradil. Bison vyplivne hlasku neco jako milion shift-reduce a milion reduce-reduce konfliktu a pak to treba i bude komplikovat - a kdyz budeme mit stesti, treba i spravne :)
nahodou jsem sem zabloudil, protoze jsem myslel že silver surfer bude nekdo jiny :-)
Ale rozebirat vtip a hledat tam programatorské chyby to je fakt síla! Nepřemýšleli jste o nějaké ambulatní léčbě? To fakt vypadá jako nějaký syndrom z jednotvárného pracovního zaměření. Možná by občas stačilo otevřít okno a nebo se vypravit do přírody :-D
Nemůžeš ženský jen tak říct "dobrý den slečno, nechtěla byste sex?". Takže nějakou konverzaci s ní prvně navázat musíš, i když toužíš po sexu na jednu noc. A to já neumím. Mám poruchu, a vůbec si nedokážu představit, co říct nebo jak se u toho mám tvářit.
LOL!
Aby ses nedivil! :-)
V podstatě jsou tři možnosti, jak by to mohlo dopadnout:
1. "Sprosťáku!" (+ případná facka)
2. "Jdeš na to nějak zhurta ;-)" (+ případné kousnutí se do spodního rtu)
3. "Och, ty divochu, po dlouhý době zas pořádnej chlap co přesně ví, co chce!"
Nepříznivá je jen jedna z těchto tří variant a navíc ani ta ještě nemusí nutně znamenat neúspěšný pokus (může jít o ženskou, jíž se tvá slova teprve v hlavě rozleží).
Jeden můj bývalý spolužák z gymplu vystudoval psychologii a podobný pokus dělal v rámci studia. Prý bychom byli všichni překvapeni, jak málo byla v reakcích zastoupena první varianta :-)
Jenže jak už to tak bývá - kdo nehraje, nevyhraje.
Vyborne, tak to bysme meli, a ted uz jen prijit na to kde ty slecny najit, protoze ja jako student technickych skol, pracujici jako bastlic kodowy a zijici na koleji jedne technicke univerzity jaksi nemam sanci potkat jakoukoliv divku.
Vyraz 'univerzita' se (alespon dle me zkusenosti) pouziva pro vysoke skoly, ktere maji fakulty velmi sirokeho zamereni, navic spis na (prirodo- a humanitne) vedecke obory, nez inzenyrske obory.
"A university is an institution of higher education and research, which grants academic degrees at all levels (bachelor, master, and doctorate) in a variety of subjects. A university provides both tertiary and quaternary education. The word university is derived from the Latin universitas magistrorum et scholarium, roughly meaning "community of teachers and scholars"."
Coz splnuje. Navic to ma i v nazvu ( ktery schvaloval nekdo, kdo urcuje co je univerzita a co neni ). Duvod proc nic takoveho na Zapade neni je take v tom clanku.
Tohle je podle moji zkusenosti jeden z naprosto nesmyslnych
(a pro kvalitu vzdelani nebezpecnych) mytu,
rozsirenych u nas ve vyhodni Evrope (nastesti s novou generaci nenavratne vymirajici,
i kdyz se to jeste obcas ustne predava jako jakasi rodinna tradice).
Chce to čas od času zvednout zadek a vyrazit do města. Nebo jinak - existuje spousta slečen, které mají problémy s obory, s nimiž my obvykle problémy nemáme. Bonusem je to, že ženským imponuje, když chlap něco umí, zvlášť když je to něco, co ona ne, nebo něco, co ona považuje za náročné. Takže v rámci doučování matematiky se může klidně volně přejít i k jiným činnostem... jak jinak názorně popsat, co to je průnik ;-)
Jenže pro mně je blbá nejen možnost 1., ale i možnost 3. --- nejsem totiž pořádný chlap ani divoch, takže takovouto reakci od ženy nechcu. Jsem psychopat.
Kolik procent žen v tom experimentu reagovalo způsoby 1, 2 a 3?
Kdysi jsem se nějaké ženy ptal, a říkala, že by se jí nelíbilo, kdyby jí někdo přímo nabídl sex, že by ho vyfackovala.
To nevím, zas tak do hloubky jsem ho nezpovídal :-)
Třeba seš pořádný chlap a divoch, ale sám o tom ještě nevíš ;-) Kdybys ještě dodal, že jsi psychopat a významně při tom mrknul, třeba by se na tebe vrhnula, ani bys nevěděl jak :-D
Ale pravda je, že jistější je svádět ji, než to na ni vybalit takhle rovnou :-)
Můžeš zkusit třeba "Slečno, už jste to někdy dělala s psychopatem? ;-)"
Pozor, pokud se ji v pripade DKP brzo nezbavis (coz pro psychopata nebude problem), tak to bude stat vyrazne vice nez ta stetka a navic se z toho stanou mandatorni vydaje.
Jinak je to postup nazvany podle prvnich pismen casti tela pres ktere se postupuje, at uz se to objektu libi nebo ne, nebot pokud objekt iniciatorovi nenafackuje nebo na nej nezavola policajty, tak se ji to libi, i kdyz u toho ma jinak plno kecu - ono se ji to nejspis libi i v tech pripadech, kdy fackuje a vola policajty, ale stydi se tak, ze sex s ni by stejne byl jen ztratou casu; snadnejsi a bezpecnejsi je to zkusit na jinem objekty.
Taky jsem kdysi neveril, ze to funguje. Zakladnimi parametry jsou jen casove odstupy mezi jednotlivymi fazemi. Nicmene ani ty nejsou nijak zasadni, obvykle urcuji jen miru tech kecu, pripadne facek.
do you wanna call yourself an administrator? Do you wanna to make it not rellevant you have a big shit in your head? Are you nobody and wanna be somebody?
Just do *not* think, use Debilian and let *it* think for you ! The package is stable only when Debilian says it's stable, got it dumbass? And now go back to your *buntu/$hit and REMEMBER: you must do what you gotta do, right? Do not think, let Debilian think 4u and call yourself an administrator.