Přátelé,
já tu pozorně četl i reagoval na spoustu názorů. Dovolím si to na konec shrnout a víc už nereagovat.
1. tato chyba není podle všeho příliš nebezpečná, může způsobit jen okrajové problémy, ale může (existují vhodnější implementace Easter eggu),
2. nabyl jsem dojmu, že ti, kteří to obhajují, jednají spíš na emoční vlně a prostě se jim taková legrácka líbí; kdyby ve stejnou dobu man vypisoval nějakou urážku, politický názor, anti-GNU tezi, jsem plně přesvědčený, že by se našel stejně velký zástup těch, kteří by to odsuzovali (přitom kód by byl stejný),
3. problém, na rozdíl od zdejší diskuse, nikdo nebagatelizoval, byl promptně vyřešen - tedy byl opravdu považován za problém,
4. jako problematické nespatřuji to, že man vypíše název legendární písničky, ale to, že taková část kódu byla 6 let bez povšimnutí, případně bez toho, aniž by těm všem, kteří údajně o ní věděli, došlo, že nějaké potíže způsobit může - je to příklad toho, že otevřený vývoj nevede sám o sobě ke 100% výsledku,
5. naopak sympatická pak byla rychlost opravy problému - v tom OSS získává výhodu, ale další otázkou je, jak rychle to probublá do instalací,
6. alarmující je, že celé to způsobil sám mantainer projektu, který Eaester egg navěsil do nevhodného místa a ukázal tím, že jeden člověk, který má "moc" (nikoliv ve smyslu "mnoho," ale ve smyslu "síly"), může svoji pozici lehce zneužít - v tomto případě prakticky neškodně.
Namísto urážek jsem očekával spíš zamyšlení nad tím, jak vývoj OSS zkvalitnit a odstranit i tato rizika.
Neměl jsem tím na mysli to, že v uzavřeném vývoji nejsou chyby nebo nezodpovědní programátoři - to bude asi ve stejném poměru jako u OSS.
V uzavřeného vývoje lze zavést tradiční mechanismy prevence, u OSS k tomu musí dojít jinou cestou - a zatím jsem nečetl jediný příspěvek, který by o tom hovořil.
Jsem rád, že jsme si popovídali, emoce byly veliké a ratio bylo trošičku v pozadí.
Hezký den všem!
Mirek
Je mi luto, ale uz po prvom bode mam pocit, ze vy vobec nerozumiete programovaniu, inak by ste neboli schopni tu chybu oznacit za nie prilis nebezpecnu. Pretoze ta chyba je uplne neskodna. A zrejme ani netusite co je to stderr a stdout.
A ten pocit sa umocnil aj v 4. bode.
Prosim, dalej sa venujte len manazovaniu ludi alebo co to tam robite u vas. Ale programatorom do ich prace velmi nekecajte.
Ano, racio islo do uzadia. Smutne je to, ze aj napriek tomu co tu zaznelo, Vy teraz zrejme budete medzi znamimi dalej sirit famy o tom ake problemy OSS ma a ukazovat tento easter egg ako perfektny priklad, pretoze to urcite muselo rozbijat plno scriptov a podobne. Poznam taketo typy.
Dobry pokus ako robit z komara somara.
Aku ma definiciu Medium? partial non-critical functionality loss, or issues which impair some operations but allow the customer to perform their critical tasks. This may be a minor issue with limited loss or no loss of functionality and limited impact to the customer's functionality. [https://bugzilla.redhat.com/page.cgi?id=fields.html#bug_severity]
nikdo nezpochybnil, že se to musí odstranit. Problém to tedy JE.
Proč to překrucujete? Nikdo nemohl zpochybnit, že se to musí odstranit, protože to nikdo netvrdil. Prostě někdo popsal ten problém s testem, a autor se rozhodl, že jako vtípek to stačilo a nejjednodušší bude ten kód odstranit. Čímž se problém s testem vyřešil a nebylo tedy vůbec nutné zjišťovat, jestli je to problém man um natož aby někdo řešil, zda a jak se případně musí vyřešit. Dokonce autor to velikonoční vajíčko nejprve upravil, aby nekolidovalo s testem, s čímž byl zástupce RedHatu spokojen. Teprve dodatečně se autor rozhodl vajíčko úplně odstranit – takže to vaše „musí odstranit“ a „je to problém“ je prostě lež.
To vše, co píšete, bych bral, kdyby:
1. vajíčko neovlivňovalo běžný běh programu - proti tomu aptitude moo v pořádku, neplete se to do vykonávání žádného jiného příkazu a nenarušuje to očekávaný běh programu; aptitude moo je navíc reprodukovatelné, a man after midnight de facto není
2. nejedná se o chybu, která se může vloudit každému, ale o úmysl (byť ne zlý)
Běžný běh programu man je ten, že se minutu po půlnoci zobrazuje vajíčko. Otázka je, zda to tak má být nebo nemá být. Vy si myslíte, že to tak být nemá, tenhle názor vám nikdo nebere, a vy se zase smiřte s tím, že nemusí být vše podle vašeho názoru, man šest let nebyl v souladu s vaším názorem, ale není na tom nic špatného.
Spuštění man -w má mít nějaký výstup, a v 0:30 lokálního času má jiný výstup s tím že je to nedokumentované ale velmi vtipné, tak to podle vás není defekt? Vždyť to ovlivňuje normální fungování programu.
To že v open source kódu léta zůstávají i kritické chyby, protože ty zdrojáky nikdo systematicky nečte, je celkem dobře prokázaný fakt. Byly tu už uvedeny konkrétní příklady (Debian SSL keys, CoW vulnerability). Dost neslavně dopadl i audit TrueCryptu.
A zrovna my dva jsme spolu dlouze diskutovali o tom, že do většiny open source projektů může kdokoliv vložit kód s backdoorem ve formě "chyby". Stačí když dotyčný párkrát pošle kus kódu, tím si vybuduje reputaci, a pak zanese "chybku". Přispěvatele nikdo nekontroluje, neví jestli fyzicky existují, nemají bezpečnostní prověrku, nelze po nich nic vymáhat. Na místě NSA a dalších podobných agentur bych dávno přispíval do projektů pod stovkou aliasů. Třeba u Debian SSL Keys je na místě se zamyslet, jestli nešlo přesně o tenhle scénář.
Přispěvatele nikdo nekontroluje, neví jestli fyzicky existují, nemají bezpečnostní prověrku, nelze po nich nic vymáhat.
Poslechni, lulane, po kterém z těch bezpečnostně prověřených umělců z té vaší dementskvadry v Redmondu můžou něco vymáhat za další incident, kdy i přes zákaz upgradujete (už zase!!!) operační systém na novou verzi?
No, jenže tady jsou tři rozdíly:
1) zdá se, že od Microsoftu to nebyl záměr, ale chyba (= srovnejte se záměrným eggem),
2) můžeme si domýšlet, ale je to pravděpodobné, že se toto okamžitě zařadí to testovacích scénářů,
3) a pokud už toto selhání bylo pod něčí odpovědností, tak dotyčný mít radost nebude.
V případě gimme gimme gimme nenastane nic z těch posledních dvou bodů.
Samozřejmě zde patrně, s citem Vám vlastním odpovíte, jak Microsoft nic takového nedělá a jaká je to banda dementů, přesto mají nejúspěšnější systém na světě.
Očekávaný výstup je na stdout a to vajíčko je na stderr, tedy očekávaný výstup to neovlivňuje. Ovlivnilo to test, který kontroloval, jestli je stderr prázdné, což podle dokumentace není zaručené nikdy, mohou tam být třeba varování libc. Chyba tedy byla na straně testu, který předpokládal něco, co nemusí nastat. Autor se ale rozhodl, že když jde o Easter egg, který není pro běh programu důležitý, tak bude lepší jej odstranit, než řešit stížnosti lidí, kteří neumí napsat testy podle dokumentace.
Miroslav Šilhavý
Je kouzelné číst, co si lidská mysl dokáže vymyslet, aby obhájila něco, co je jí sympatické.
tuto vetu je mozne psat pod vsechny tve demagogicke komentare(takze 99% z tech co konkretne pod touto zpravickou od tebe jsou)
Vsadím se, že kdyby v 0:30 man vypisoval nějakou urážku, politické heslo, reklamu, nebo něco podobného, už by ti samí lidé pro to pochopení neměli.
samozrejme, protoze uz by to nebyl vtip, ale neco jineho...
stejne tak muzes demagogicky napsat ze "pokud by man v 0:30(necham stranou ze to bylo nejspis v jinej cas) formatoval disk, tak by se to lidem co easter egg berou s humorem take nelibilo" :-)
pokud se chces zachovat (alespon pred sebou) jako svepravny clovek, zamysli se konecne (nebo znovu, pokud to poprve nestacilo) nad tim, ze vystup nebyl na stdout (tedy standartni vystup, kam se normalne pri parametru -w zobrazi seznam cest pro vyhledavani manual stranek), ale na stderr (tedy vystup chybovych hlasek, ktere nezavisle na easter eggu MUZOU KDYKOLIV zobrazit neco co NENI zadane a tedy testovaci script to MA rozlisovat
a jak sem pochopil, to ze nakonec autor man provedl druhou zmenu, kdy po prvni uprave aby se nezobrazovalo pri "man -w" (coz bylo dostatecne technicke vyreseni tomu kdo pise SPATNE testovaci scripty), v druhe uprave to odstranil uplne, coz ale jiz nebylo potrebne technicke reseni ktere by resilo nejaky technicky problem, ale POUZE to aby zavrel usta demagogujicim individuim kteri (stejne jako ty) NECHAPOU fakticke informace a (ne)mozne problemy s tim (ne)souvisejicim... ;-)
Chyba ve vašich úvahách je v bodu 4. To, že je to problém, se zjistilo teď, takže to těžko mohlo být opraveno před šesti lety. Potíže může způsobit všechno. Tohle bylo prostě záměrné chování aplikace, žádná chyba – a teď se dospělo k tomu, že by bylo lepší změnit požadované chování aplikace, a následně se změnil kód, aby odpovídal požadovanému chování.
Chybu děláte v tom, že si požadavky na chování aplikace představujete jako něco statického, co vznikne ještě před prvním řádkem kódu aplikace, nadále je to neměnné a do posledního puntíku přesně to popisuje chování aplikace. Jenže tak to není, každý má od aplikace jiná očekávání, i u jednotlivých uživatelů se to mění, a autor aplikace se na základě toho snaží vytvořit aplikaci, která bude splňovat požadavky nějakých uživatelů. Takže i požadavky na chování aplikace se v průběhu času vyvíjejí. Před šesti lety byl požadavek na nějaký vtípek, dneska je požadavek na bezproblémové testování a tomuhle požadavku se dala přednost. Nejde o žádnou chybu, vůbec nijak to nesouvisí s OSS – prostě se jen změnili požadavky na aplikaci, tak se aplikace podle nových požadavků upravila. To je vše.
Namísto urážek jsem očekával spíš zamyšlení nad tím, jak vývoj OSS zkvalitnit a odstranit i tato rizika.
To ale byl problém ve vašich očekáváních, protože tohle s OSS vůbec nijak nesouvisí.