Portál AbcLinuxu, 1. května 2025 10:24
Já myslel, že jsi OSVČ, nebo to "šéf" říkáš jen tak ze zvyku?„Zadavatel“. Reálně je to stejně šéf, když tomu šéfuje.
nebo se jim prostě líbím a ten úsměv má být asi něco jako když se chlapi ohlídnou za ženskou.Haha, tak to gratuluju. Ženské se usmívají když něco chcou. Ještě na sebe hoď něco reflexního, v létě nátělník a brýle na oči a budeš se cítit jak pan Tau. Dobře zabezpečeného samečka vždycky spolehlivě vycítí…
Je to roztomilé zlobidlo staré kousek přes dva měsíce. Je to australský ovčák, i když barvama a „medvídkovatostí“ zatím spíš vypadá jako bernský salašnický pes.Jo, jo. Beruška plyšová, kulatá…ňu, ňu, ňu a ty očička. Počkej až to vyroste. Je to bestie v kožichu zamaskovaná za plyšovou maskou. Tvoje přítelkyně nemá nejmenší ponětí co si na sebe pořídila.
Přítelkyně z něj ale vyšiluje, protože se poslední pár týdnů moc nevyspalaA to je teprve začátek. Nevím koho to bere za páníčka, ale předpokládám že sis na sebe taky ušil slušnou kulišárnu (cha, cha, dobře ti tak ty přítelkyně). Doporučuju taky začít posilovat i končetiny spodní. Buď během a nebo na kole. Je to ovčácký pes, ne tahací smeták. Buď to dostane ovci a pokud ne tak si ji udělá z pánička. Potřebuje to neustálý pohyb a zaměstnání (jinak to trpí), není to panelákový pes. Frisbee a pár tratí na procházky jsou absolutně nezbytné minimum. Běhat s tím nebo s tím jezdit na kole je lepší, unaví se to a na půl dne to dá pokoj. Čím víc prostoru, tím líp. Zas na druhou stranu se s tím dostaneš do míst a máš takové starosti, které by si bez psa neměl. Taková předpříprava nanečisto…
Zdraví (několikaletý) paniček jedné takové bestie. BTW: Je to fena nebo pes? Předpokládám že pes.
Jak se vynořuje a definuje z prázdnoty nezkonfigurované mysli a vytváří si mentální modely světa.A k tomu bych měl dodat že Australští ovčáci se řadí mezi ty chytřejší. Počkej až se to začne konfigurovat ty mentální modele. Nenech se zmást kukučem, je to vychcané jak pětikoruna na asfaltu…
Jo, jo. Beruška plyšová, kulatá…ňu, ňu, ňu a ty očička. Počkej až to vyroste. Je to bestie v kožichu zamaskovaná za plyšovou maskou. Tvoje přítelkyně nemá nejmenší ponětí co si na sebe pořídila.Přítelkyně už předtím vychovala australského honáckého psa (ACD) a horší už to asi nebude :) Tenhle je oproti ACD takový jemný, například nepoužívá nos jako bagr a taky cítí bolest, takže nedělá takové ty věci, jako že by k tobě přiběhl a zanořil do tebe nos, až ti udělá modřinu.
Zdraví (několikaletý) paniček jedné takové bestie. BTW: Je to fena nebo pes? Předpokládám že pes.Pes.
Přítelkyně už předtím vychovala australského honáckého psaTak proč z něho vysiluje? Čekal jsem případ „Jé, pěkné plyšové štěňátko co musíme vzít domů“, že už měla honáckého psa jsem nečekal.
Pes.Pokud ho necháte vykastrovat (za což by měli trestat), tak ten ještě umí dělat to že chytne stopu a zdrhne ti klidně několik kiláků za nějakou divou zvěří. Mnoho zdaru a pevné nervy, páničku.
Tak proč z něho vysiluje? Čekal jsem případ „Jé, pěkné plyšové štěňátko co musíme vzít domů“, že už měla honáckého psa jsem nečekal.Protože je to dvouměsíční štěně, které půl noci nespí a brečí a zlobí. Teď ho má třetí týden a všechna práce s výchovou teprve začíná.
Jako rada fakt nahovno.No a jestli chceš radu, jednu ti dám klidně zadarmo: Hoď se do klidu, chce to klid a nohy v teple
No a jestli chceš radu, jednu ti dám klidně zadarmo: Hoď se do klidu, chce to klid a nohy v tepleTo nebylo myšleno jako urážka, ale jako obecné konstatování.![]()
Zdraví (několikaletý) paniček jedné takové bestie. BTW: Je to fena nebo pes? Předpokládám že pes.Pěkný pes btw. Jak se jmenuje?
$ abicko_komentare --explain "http://www.abclinuxu.cz/blog/bystroushaak/2017/9/na-cem-delam-2017-9/diskuse#40" Grunt je totální píčus. Segmentation fault(Výstup tohoto zjevně nefunkčního programu nijak nehodnotím a příspěvek tedy není nutné cenzurovat. Navíc se nejedná o off-topic, protože všude jinde než u komentáře, na který reaguji, funguje správně. Děkuji za pochopení.)
There are fine people on both sides.
Problém je hlavně v tom, když je někdo osm nebo víc hodin v jedné poloze. Je potřeba to střídat. Na to bych chtěl polohovací stůl. Zatím jen občas střídám židli a klekačku (nicméně většinou je to židle).
Tohle je zajimavy tema.
Ja k tomu muz rict asi nasleduici
- ve veku asi 10let sem obdivoval "visjolie kartinky" (ruskej casak s bilou gramofonovou deskou)
- kdyz me bylo 12 "majkl najt" (ten borec co jezdi v kitu tzn David Hasselhoff) byl lepsi nez nejlepsi pionyr a mel sem za to, ze musi rozhode byt ze Zapadniho Nemecka
- kdyz me bylo 14 az 16 a nasi nak poresili mtv, veril sem "dreams can come true"
- ve veku nakych 20+ sem se prestehoval do zapadni evropy a vydelaval mega+(krat x) czk rocne
- v nakych triceti sem vratil a koukal na vsechny ty vocasy kolem co "se snazi byt cool pouzivanim czechis"
- je me ted dost jinak nez u posledni odrazky, ale porad je zajimavy pozorovat lidi kolem a beru cestinu jako jednu z veci, ktera me dava oproti svetu vyhodu
Nemam predstavu co tim chcu rict, a je me to celkem jedno ... cas vse popre a je relativni ... zkus si precist treba toto, neni to zadna h/c scifi, ale predstava, ze prozivas ten prvni zivot te odvari :) ... pardon, zivot v 28 je teprve na zacatku
jestli byl John von Neumann génius, nebo neTak to je celkem jednoznačné, byl to jeden z nejchytřejších lidí ever. Z The Recollections of Eugene P. Wigner" "I have known a great many intelligent people in my life. I knew Planck, von Laue and Heisenberg. Paul Dirac was my brother in law; Leo Szilard and Edward Teller have been among my closest friends; and Albert Einstein was a good friend, too. But none of them had a mind as quick and acute as Jansci [John] von Neumann. I have often remarked this in the presence of those men and no one ever disputed me."
Interstellar je vysoko-rozpočtový film, který je tak debilní, jak jen filmy můžou být debilní.Jo mě přišla premisa jako prostá ekoagitka. To hejbání s ručičkama hodinek bylo WTF a Michael Caine měl teda pěkně malou roli. Jo a roboti mě připadali jako modely v minecraftu
Picke Rick je můj nový hrdinapickle riiiick!!
mého oblíbeného tématu; bootstrapingu z ničehoJop bootstrapping je super. Teďka dělám bootstraping JTAG host řadiče
Když jsem na to pak psal testy, tak jsem musel vyrobit porno videa a porno archivyTak to bych měl strašně nízkou pracovní produktivitu :-/. BTW na co se to pak použije? Doufám že ne na cenzurování internetu :-/. BTW by byla prdel tím natrénovat DeepDream od googlu :-P. Vtipná idea: hmm co by se stalo kdyby z té tvé neuronové sítě vzniknul nějakej klasickej AI jako Skynet/Matrix apod.
Všechny nás ale zarazil, když si vybral Kali linuxHoly shit, to je větší šílenec než já se slackwarem :-O ... Nebo sledoval jen Mr Robot seriál.
Třeba jsem šel po ulici a najednou se na mě usmívala ženská způsobem, který mě upřímně vyděsil.
podobám někomu známému, kdo vzbuzuje pozitivní asociace (nějaký komik, nebo takTo bys musel nahodit fotku i když teda nevím jak moc se tu lidí kouká na TV. Nejspíš se na tebe koukaj kvůli těm svalům no :-P.
Picke Rick je můj nový hrdinaKdyž si pak člověk uvědomí, že Mortyho i Ricka mluví stejnej člověk...
Jo mě přišla premisa jako prostá ekoagitka. To hejbání s ručičkama hodinek bylo WTF a Michael Caine měl teda pěkně malou roli. Jo a roboti mě připadali jako modely v minecraftuRoboti byli hned po hudbě to nejoriginálnější, na celém filmu. Mně spíš srala už jen ta podstata původní myšlenky, že země je k ničemu, tak si najdem jinou planetu. Jako wtf. Proč prostě nejít pod zem, nebo pod moře, nebo na orbitu (afaik tam byl nějaký problém se obsahem kyslíku ve vzduchu), nebo prostě nestavět vzduchotěsné domy spojené tunely, nebo postavit gigantické jaderné reaktory, které budou štěpit mořskou vodu na kyslík? Možností je asi tak miliarda a každá z nich tisíckrát levnější a míň namáhavá, než stěhovat větší množství lidí na jinou planetu, ještě k tomu v jiné galaxii..
pickle riiiick!!Terryfold song znáš? Nedávno mě taky pobavilo (Animated) Justin Roiland from Rick and Morty - Prank Call Joel Osteen's Church on H3 Podcast.Jinak nejlepší scény smartest people in the universe, one screw turn a i'm alive (se super remixem) a pass the butter (i když při současný ceně másla by byl takovej job dobrej [/trololo]).
Tak to bych měl strašně nízkou pracovní produktivitu :-/. BTW na co se to pak použije? Doufám že ne na cenzurování internetu :-/. BTW by byla prdel tím natrénovat DeepDream od googlu :-P.Dělám pro nejmenovanou společnost hostující uživatelské soubory. Porno chceme přehazovat na doménu s 18+ varováním a tak.
Vtipná idea: hmm co by se stalo kdyby z té tvé neuronové sítě vzniknul nějakej klasickej AI jako Skynet/Matrix apod.To co jsem dostal se neumí učit, je to jen klasifikátor.![]()
Roboti byli hned po hudbě to nejoriginálnější, na celém filmu.No já neříkám že byli špatný, ale prostě mě to okamžitě připomnělo minecraft.
Proč prostě nejít pod zem, nebo pod moře, nebo na orbituTo tam říkali, protože se vyvinula nějaká superplíseň a celou populaci Země ty izolovaný farmy neutáhly.
Terryfold songJo
Dělám pro nejmenovanou společnost hostující uživatelské soubory. Porno chceme přehazovat na doménu s 18+ varováním a tak.Uložto?
pickle riiiick!!Ta poslední epizoda měla hned tři naprosto kruté scény: U toho vypínače pořád přemýšlím, jestli je Morty vypnul, nebo jestli tím že byli po smrti nějak narušili schopnost Mortyho poznávat strany, kvůli které si je tam Rick živil :DJinak nejlepší scény smartest people in the universe, one screw turn a i'm alive (se super remixem) a pass the butter (i když při současný ceně másla by byl takovej job dobrej [/trololo]).
U toho vypínače pořád přemýšlímLOL vida tu scénu jsem zrovna v té hloubce nepochopil. Ale teďka bych spíš řekl, že mu je Morty vypnul a tím kliknutím v kumbále mu vypnul něco dalšího.
Jo mě přišla premisa jako prostá ekoagitka.
Prvoplánově možná. Ale nevím, jak moc byli ekoaktivisté nadšení z myšlenky, že nakonec lidstvo stejně zachrání ti proradní vědci a technici, ne hlasatelé návratu k přírodě, zavržení technického pokroku a dokonce i přepisování historie ve jménu těchto idejí.
jak moc byli ekoaktivisté nadšení z myšlenkyNejspis jich moc neznas - drtiva vetsina by byla rada, kdyby lidstvo zachranilo cokoli, treba i Donald Trump. Spis mi prijde (i kdyz jsem ten film jeste nevidel), ze film tomu reseni trochu utika - lide zdrhnou na jinou, neznicenou planetu? To neni moc ekologicka agitka. To by prave bylo, kdyby se ten problem opravdu podarilo vyresit.
Nejspis jich moc neznas - drtiva vetsina by byla rada, kdyby lidstvo zachranilo cokoli, treba i Donald Trump.
Nenapadlo mne, že by si můj komentář někdo mohl vyložit takhle. Nemyslel jsem samozřejmě to, jak by byli nadšení v reálném světě, pokud by skutečně čelili té hrozbě a někdo ji vyřešil; pak by asi opravdu jen ti nejvíc hardcore fanatici dokázali být odmítnout řešení jen kvůli tomu, kdo s ním přišel. Reagoval jsem na označení filmu za ekoagitku a pozastavil se nad tím, jak se asi (skutečným) ekoaktivistům líbila ta zápletka, o které jsem mluvil.
- Nikdo nečekal, že země, která nám dávala potravu, se proti nám takhle obrátí a zničí nás.Například tohle je prostě clickbait na lidi s konspiračníma teoriema:
- Je to zastaralá učebnice. Nahradili jsme ji opravenou verzí. - Jak opravenou? - Je tam vysvětleno, že mise Apollo byly zfalšované, aby přivedly Sovětský svaz k bankrotu. - Vy nevěříte, že jsme vstoupili na Měsíc? - Podle mě to byla skvělá propaganda, díky které se Sověti sami zničili, když investovali do raket a zbytečných strojů. - Zbytečných strojů? - A pokud nechceme opakovat plýtvání z 20. století, tak musíme děti učit o této planetě. A ne to, jak ji opustit.
K tomu prvnímu: možná jsem něco přehlédl, ale nevzpomínám si, že by tam někde bylo explicitně řečeno, že za tu ekologickou katastrofu může lidstvo a jeho činnost. Pro určité skupiny lidí to asi může znít jako samozřejmost, ale vůbec to tak být nemuselo. Já to třeba bral spíš jako takové upozornění, jak křehká může naše civilizace za určitých okolností být (i bez toho, abychom se zničili sami).
K tomu druhému: opravdu vám připadalo, že je to tam prezentované jako že ti učitelé mají pravdu a ta učebnice je podvrh? Na mne to působilo přesně obráceně: jako klasická ukázka přepisování historie za účelem manipulace lidí. Možná i proto, že si z vlastní zkušenosti pamatuji, že v našich učebnicích nebylo všechno tak úplně pravda.
Na mne to působilo přesně obráceně: jako klasická ukázka přepisování historie za účelem manipulace lidí.Však i na mě jo, ale negativní reklama je pořád taky reklama. Prostě proč musí být ve sci-fi, který by mohl být hardcore, klasická populární konspirační teorie.
Takže tobě vadí, že se film okrajově vyslovuje proti přepisování historie a konspiračním teoriím a že je pro řešení problémů technickým přístupem protože ti vadí, že se k tomu vůbec vyjadřuje?V oscarovém filmu mohli tu katastrofu, kvůli které je potřeba opustit Zemi, udělat líp.
Takže kdybych třeba řekl, že je podle mě komunismus svinstvo navržené k manipulování lidí aby šli navzájem proti sobě, tak mě tu obviníš z toho, že vlastně napomáhám konunismu tím, že o něm vůbec mluvím?Pokud bys to řekl uprostřed večerníčku, tak si zaťukám na čelo proč to taháš do jinýho tématu.
Mě ani ne, a ani mi nepřišlo že by to byl vyloženě špatný film, spíš naopak. Na druhou stranu ale shouhlasím s tím, že spoustu prvků v tom příběhu nebyli úplně domyšlené nebo byli zcela nesmyslné, ale to vychází z toho, že jeden z hlavních motivů toho filmu bylo cestování vesmírem (a časem), kde naopak těch blbostí moc nebylo. Myslím že to byl Asimov, kdo napsal že science fiction je o tom, že si autor vymyslí nějakou změnu v technologii nebo společnosti (jakkoli nesmyslná by se mohla na první pohled zdát, o to nejde), a domýšlí důsledky, co by to mohlo se společností udělat. Tady je ale problém v tom, že nikdo nedokáže domýšled důsledky do takové šíře, aby to zcela dávalo smysl. Dobrý autor se s tím dokáže vypořádat tak, že prvky mimo hlavní nápad potlačí. V případě Interstellaru to boužel bylo vyřešeno zkratkovitě, a i v ději bylo pár wtf momentů, ale jako celek mi to přišlo pořád ještě dobré. Rozhodně si myslím, že většina vysoko-rozpočtových sci fi filmů je bohužel debilnější. Téma ekologie se tam imho v podstatě neřešilo. Byla tam zmíněná jakási pseudo ekologická katastrofa, ale přišlo mi to jen jako nějaký jednoduchý zástupný důvod, proč je potřeba rychle opustit planetu a vydat se do vesmíru. Nijak se to tam dál nerozebíralo, a ani to v těch detailech, co tam byly, nedávalo moc smysl jako důvod proč opustit Zemi. Např. jen vytvořit někde ve vesmíru nový, nezávyslý ekosystém je aktuálně považováno za neřešitelné, tj. že to nikdo neumí udělat a ani se o to nikdo po neúspěchu Biosphere 2 aktuálně nesnaží.Interstellar je vysoko-rozpočtový film, který je tak debilní, jak jen filmy můžou být debilní.Jo mě přišla premisa jako prostá ekoagitka.
Interstellar určitě není vyloženě špatný film a celkově patří k těm lepším. Sice připouštím, že jsem z něj byl taky trochu zklamaný, ale když se nad tím zpětně zamyslím, tak hlavně proto, že po batmanovské trilogii bylo očekávání tak velké, že ho snad ani nešlo naplnit.
Co se ekologické zápletky týká, asi nejvíc mi vadilo, že na začátku je to prezentované skoro jako kdyby lidstvo mělo každou chvíli vymřít, ale pak uplynou desítky let - a nic. Doslova "nic", ani zmínka o tom, jak se situace vyvinula.
ale když se nad tím zpětně zamyslím, tak hlavně proto, že po batmanovské trilogii bylo očekávání tak velké, že ho snad ani nešlo naplnitHuh. Tak z téhle trilogie jsem viděl tuším ten prostřední (Dark Knight) a přišlo mi to dosti slabé. Je tenhle díl horší než ty ostatní, nebo to prostě celý není moje krevní skupina? (Tipuju asi spíše to druhé, vzhledem k tomu, že Dark Knight má dobrá hodnocení.)
Co se ekologické zápletky týká, asi nejvíc mi vadilo, že na začátku je to prezentované skoro jako kdyby lidstvo mělo každou chvíli vymřít, ale pak uplynou desítky let - a nic. Doslova "nic", ani zmínka o tom, jak se situace vyvinula.Jo to taky.
že jeden z hlavních motivů toho filmu bylo cestování vesmírem (a časem), kde naopak těch blbostí moc nebylo.Jo sci-fi část byla relativně OK. I když teda to že je červí díra jednosměrná a planety krouží těsně u horizontu událostí mě teda přišlo, že je to mírně účelové (když dokáže Cooper předat informace přes ty gravitační anomálie, tak proč nemůže být červí díra obousměrná, nebo proč nemůžou být dvě, planety blízko horizontu událostí by byly roztrhaný slapovými silami - zvlášť když na jedné jsou permanentní 100m přílivový vlny).
Byla tam zmíněná jakási pseudo ekologická katastrofa, ale přišlo mi to jen jako nějaký jednoduchý zástupný důvod, proč je potřeba rychle opustit planetu a vydat se do vesmíru.Jo právě mohli tam ukázat nějakej riot proti technologii. Ve městu Permutací v podobné době (204x) zkoušeli ovlivnit vznik a směr hurikánu něčím jako efektem motýlích křídel, v interstellaru mají problém předvídat písečnou bouři. Klidně mohli tu extinction event napojit na vytvoření červí díry blízko země nebo pád meteoritu a bylo by to ucelený sci-fi.
Rozhodně si myslím, že většina vysoko-rozpočtových sci fi filmů je bohužel debilnější.Jo to souhlasím, taky moc aktuálních hollywoodských filmů nesleduju.
tak proč nemůže být červí díra obousměrná
Červí díra prostě je jednosměrná, říkala to Samantha Carter. :-) (narážka na S04E19 "Prodigy")
To byl jen vtip… myslím, že univerzální odpověď na podobné otázky je "protože se to tak hodilo do scénáře". :-) Ale jinak mi samozřejmě taky vadí, když svět nějakého filmu nebo seriálu postrádá vnitřní konzistenci.
Asi nejlepší způsob, jak Interstellar brát, je ten, že Nolan chtěl natočit něco jako je Kubrickova Vesmírná odysea, ale na rozdíl od něj tam dal dost děje na to, aby mu diváci během těch tří hodin neusnuli. :-)
Taky rukama teď neudělám stejné pohyby jako dřív, protože prostě vrstvy svalů omezují stupeň volnosti. Například zkřížit ruce za zády (jednu ruku spodem, druhou horem a sevřít dlaně) je teď skoro nemožné.Hmm... Já to s posilkou nedávno vyhodnotil úplně stejně jako ty, totiž že bych to sám dělal naprosto blbě a akorát si uškodil, takže mam teď taky trenéra, ačkoli v jiný posilce. Poslední část tréningu vyčleňuje vždycky na protáhování, nejprv podle toho, co jsem ten den cvičil, a pak ta poslední část je vždycky stejná, takovýto "zkus se dotknout špiček" a podobně. Přijde mi to důležitý, máš tam u vás taky něco takovýho? Což mi připomíná, že bych si to měl projít a protáhnout se :-/ Snažim se k tomu dokopat pokudmožno denně, ale ne úplně se to daří... Co se týče proteiňáků, kupuju si na radu kamaráda gainery od Nutrendu a ty jsou co do chuti docela ok. Mam teď nějakej jahodovej, celkem dobrej. Hnusný jsou, jen když to málo protřepu (ie. když tam jsou hrudky / není to 100% hladký).
Hmm... Já to s posilkou nedávno vyhodnotil úplně stejně jako ty, totiž že bych to sám dělal naprosto blbě a akorát si uškodil, takže mam teď taky trenéra, ačkoli v jiný posilce. Poslední část tréningu vyčleňuje vždycky na protáhování, nejprv podle toho, co jsem ten den cvičil, a pak ta poslední část je vždycky stejná, takovýto "zkus se dotknout špiček" a podobně. Přijde mi to důležitý, máš tam u vás taky něco takovýho?Jo, jo. Protahování na začátku a na konci. Záda, ruce, nohy, krk.
Co se týče proteiňáků, kupuju si na radu kamaráda gainery od Nutrendu a ty jsou co do chuti docela ok. Mam teď nějakej jahodovej, celkem dobrej. Hnusný jsou, jen když to málo protřepu (ie. když tam jsou hrudky / není to 100% hladký).Já nemám rád mlíko. Doslova je mi z té chuti na blití a tenhle co jsem si teď koupil, ten je hnusný po mlíku. Ten co jsem měl předtím chutnalo jen asi jako shnilý oves.
Ono po Praze a obecně po městě se běhá doceka blbě.Není prostor?
Běhat po tvrdém povrchu není úplně ideální (asi se to dá kompenzovat vhodnou obuví, ale ta něco stojí).
...zrovna v Praze je to snad odevšad kousek do nějakého parku nebo přímo do lesa :) Mezi feťáky, lupiče a další VIP obyvatele. Nějakému lesu v Praze se přezdívalo Řáholec, ale nevim kterymu.To jsou zase legendy a pohádky o Praze... Mně se třeba v Praze typicky běhávalo líp než v 'rodné vísce'. V minulém bydlení (v Praze) jsem to měl kousek na Ladronku a Hvězdu, teď to zas mám kousek do Kunratickýho lesa. V ani jedné z těhle lokací jsem neviděl žádný váguse ani feťáky. Oproti tomu na vesnici byly akorát cesty mezi polema, kde smrdělo hnojivo a člověk musel uskakovat kombajnům a podobně. Nejbližší les sice nebyl nijak drasticky daleko, ale dostat se k němu dalo jen přes poměrně rušnou silnici, navíc ten les byl menší než Kunratický. Takže ono to není všechno tak černobílé.
Nechci vám ani jednomu do toho kecat, ale než se cpát nějakýma proteiňákama a trávit večery u trenéra, nebylo by užitečnější vytáhnout to kolo, kolečkově brusle nebo prostě běhat? U sedavého zaměstnání (kor v Praze) je potřeba se držet fit, ne ze sebe dělat kulturistického modela alias Schwarzenegger.To, co dělám já, je dost všeobecný cvičení, kromě klasickejch silovejch věcí tam jsou i balanční cvičení, cvičení na flexibilitu, příp. se přidává i to běhání (podle potřeby a možností). Kulturista ze mě nebude ani blbou náhodou a ani můj trenér není žádnej vyrýsovanej šílenec, vypadá úplně normálně. Ježdění na kole je fajn a doporučuje se, akorát já aktuálně nemám pořádně kde kolo skladovat :-/ Běhání je sice masivně populární, ale je hodně zatěžující např. na klouby. Dřív jsem běhal rád (okolo 10km, i nějaký ty půlmaratony jsem si vyzkusil), ale pak mě chytlo koleno a od tý doby běhat v podstatě nemůžu. Pravděpodobně se to stalo právě z toho důvodu, že jsem neměl žádnou takovouhle průpravu...
akorát já aktuálně nemám pořádně kde kolo skladovatPlně chápu a soucítím.
Nechci vám ani jednomu do toho kecat, ale než se cpát nějakýma proteiňákama a trávit večery u trenéra, nebylo by užitečnější vytáhnout to kolo, kolečkově brusle nebo prostě běhat? U sedavého zaměstnání (kor v Praze) je potřeba se držet fit, ne ze sebe dělat kulturistického modela alias Schwarzenegger.Záleží na tom co je cílem, podle toho potom můžeš definovat nějakou užitečnost. Mým cílem momentálně je nabrat svaly, protože jsem vyhublý. V tom by mi jízda na kole vážně nepomohla, naopak bych pravděpodobně ještě víc zhubnul.
protože jsem vyhublýProč tu provokuješ? Jestli chceš, rád se podělím „a budeme mít stejně“.
Interstellar je vysoko-rozpočtový film, který je tak debilní, jak jen filmy můžou být debilní.
To by bylo na světě krásně, kdyby se tohle tvrzení aspoň vzdáleně blížilo pravdě.
GLMBasicExamples open
. Nezapomeň také na http://agilevisualization.com/
Vyšší produktivita pro praktické úkoly paradoxně částečně pramení z větší omezenosti Smalltalku vůči Selfu. I ve Smalltalku objektový model umožňuje dělat různá kouzla, ale člověk vždy narazí na omezení pramenící z nástrojů, které jsou k dispozici. To sice do jisté míry svazuje člověku ruce, ale zase lépe umožňuje udržovat vyšší stupeň kontroly. Outlinery jsou skvělé, nicméně přímočařosti Browseru zatím nedosahují.
Ale jsem přesvědčen, že času stráveného nad Selfem určitě nemusíš litovat
Trochu jsem si pohrál a podařilo se mi poměrně jednoduše nasimulovat Marvina bez nutnosti modifikace VM, takže bychom se nemuseli vzdávat prototypů ani v Pharu.
Přitom by stačilo mít možnost změnit layout....Já to asi zkusím někdy naprogramovat. Ale Morphic v Selfu, resp. totální absence čehokoliv, co by jen připomínalo dokumentaci je taky kapitola sama pro sebe.
Trochu jsem si pohrál a podařilo se mi poměrně jednoduše nasimulovat Marvina bez nutnosti modifikace VM, takže bychom se nemuseli vzdávat prototypů ani v Pharu.Jenže prototypy v neprototypovém systému většinou moc nesedí. Například si vem Morphic, ten do Smalltalku taky pasuje hrozně divně a vůbec není tak využit, jako v Selfu (například prototype based UI tam sice můžeš udělat duplikací přes morphic halo, ale už s ním nemáš možnost moc dál pracovat a třeba ho uložit).
Chystám se na GEBtak good luck
pouzivate nekdo ten cherrytree? nahradi to onenote?
Stock.*Plantation|Plantation.*Stock
Analogicky lze tagy aplikovat na cokoliv co cloveka zajima (napr knihovnicka - rok vydani/zanr etc)
Find a Node: This option searches for the text string in the names and tags you have given your nodes. For example, if you used Cherrytree to keep recipes in, and one of your recipes was in a node named Cordon Bleu, with the tag "French, Chicken", you could use either "Cordon" "Bleu", "French" or "Chicken" as your search string and Cherrytree will show you that node. The search dialog for each of these methods has these options:Mozna by stalo za to si ten sw osahat misto mrkani ...
A co Zim wiki? Dokaze nekdo porovnat s Cherrytree?Zim jsem používal kdysi před CherryTree. Nebyl špatný, ale nebylo to ono. Přišlo mi že neškáluje tak dobře jako CherryTree co do počtu nodů a už někdy od 50 to žačalo být divné. V CherryTree mám o řád víc a pořád v pohodě. Špatně se to vysvětluje. Chybělo mu hodně vlastností, které jsou v CherryTree tak nějak samozřejmé. Na druhou stranu musím nechat, že měl lepší vnitřní formát, za kterého nebyl žádný problém dostat čisté HTML.
Když už zmiňuju ty boty, jaký boty kupujete?
Ale jinak: na botách se nešetří. Takže kvalitní kožené boty z nějakého obskurního kšeftu importujícího boty ze Švajcu.
Bystroushaaku toto všechno jste zvládl za čtvrt roku? Hluboce smekám! Sice se také stále učím něco nového, ale toto všechno stihnout by mi trvalo minimálně rok, ne-li více. Když přijdu večer z práce, snažím se ještě pracovat na svých projektech, ale moc toho už nedělám. O víkendech obvykle více, ale třeba tento víkend jsem neudělal absolutně nic, jen nainstaloval a nastavil Ubuntu na jeden stroj a večer se sousedem hleděl do jedné Springové appky. Původně jsem chtěl studovat Javu a Spring, ale naše tři děti tak děsně řvaly celý víkend, že jsem se nenaučil skoro nic. V pondělí jsem šel do práce zničenější než jsem byl v pátek večer. Fakt máte můj hluboký obdiv a těším se na další blog. Co se týká knih, stále se mi připomíná sága od H. N. Turtledove - Světoválka. Často nad tím přemýšlím, jaké by to asi bylo. Za posledního čtvrt roku jsem četl pár knih od Jefferyho Deavera, líbí se mi jeho způsob uvažování. Mám rozečtenou knihu o Pythonu, o návrhových vzorech, přečetl jsem knihu o Gitu a nějaké další věci kolem programování. V plánu mám přečíst si něco o matematice, nedělám nic, kde bych potřeboval něco víc, než se bere někdy v prváku na střední. Zapomněl jsem toho strašně moc.Tohle je asi tak 10% toho co jsem dělal, jen takové ty vybrané zajímavější věci. Ty nudné a nezajímavé jsem tam samozřejmě nepsal. Osobně si myslím, že toho nedělám zas tak moc. Dní, kdy jsem nic nedělal, nebo jsem dělal něco úplně nezáživného, ale nutného byla pořád většina.
A tenhle princip se vztahuje na úplně libovolnou konzumní věc, protože designeři se samozřejmě snaží předmět přizpůsobit co největší zákaznické skupině.
Jestli má globalizace nějaká pozitiva tak to, že v globálním měřítku jsou i minoritní skupiny zákazníků zajímavé z komerčního hlediska. (ne všechny skupiny a zdaleka ne pro všechny výrobce, ale šance na propojení výrobce-výrobku-spotřebitele tu jsou přeci jen o dost vyšší než na malém lokálním trhu)
RSS feed generuje tisíce položek měsíčně a je únavné tím zaměstnávat můj mozek. Zatím jsem to rozepsal pomocí naivních bayessovských klasifikátorů, jaké se používají ve spam filtrech, ale ty neurony mi přijdou, že by mohly být úspěšnější.
A nebojíš se, že si vytvoříš svoji vlastní informační bublinu?
Ta neuronová síť, to je obecně zajímavá věc. Přibližně 80MiB blob
Tohle mne na tom trochu děsí. Pokud se nějaký proces (lidská činnost) stane závislým na klasickém programu, tak je to pořád transparentní pro člověka, tzn. můžeš si vzít zdroják, přečíst, pochopit a upravit. Ale co s blobem? Můžeš ho naučit něco nového, ale chtělo by to si nechávat i dřívější vstupní data, aby bylo možné proces učení reprodukovat. A dá se výsledek učení nějak verzovat? Vracet se zpět, větvit? Dělá se to běžně?
Druhý nováček dokončil po třech měsících parttime práce své zadání. Výsledkem je asi šest set řádek kódu (ta práce byla hodně o jednání s protistranou, ne o psaní kódu), na které jsem mu v pátek dělal code review.
Chyba je, že jsi se k tomu nedostal průběžně a dělal revizi až na konci. Ale přiznám se, že mi to taky dělá problém – když jsem zavalený jinou prací a urgentními úkoly, tak se mi taky čas na revize hledá těžko.
Jedna z věcí, které bych fakt chtěl, je objektové storage, kde vezmu objekt vytvořený u mě na počítači a prostě ho hodím na server a ten se postará o jeho prezentaci, podle metod a metadat.
Tohle mi připomíná dávné časy, kdy jsem si četl o tom, jak ukládat javovské objekty do LDAPu nebo relační databáze… Zřejmě máš (pro tenhle účel) vhodnější technologie, ale mně přijde sporná ta samotná myšlenka. IMHO je lepší oddělit data a kód.
Ačkoli většinu programátorského času trávím s nějakou formou OOP, tak mám o objektovém přístupu svoje pochybnosti resp. došel jsem k tomu, že existují dva druhy „objektů“ a zatímco u jedněch ten objektový přístup spojující data a kód dává smysl, ty druhé by měly zůstat spíše strukturami, zatímco kód by měl být uložený v procedurách.
Do té první skupiny patří abstraktní konstrukty, které primárně vznikly a žijí uvnitř počítače. Zatímco do té druhé patří struktury, které mají za úkol modelovat entity existující v AFK/vnějším světě. Do první skupiny lze někdy zařadit i objekty, které modelují ty entity z vnějšího světa a slouží jako proxy pro interakci s nimi.
S přítelkyní nebydlíme, vídáme se párkrát týdně, takže vidím jak postupuje ve skocích a víc si to uvědomuji. Baví mě pozorovat, jak objevuje svět, jak se neustále učí něco nového. Jak se vynořuje a definuje z prázdnoty nezkonfigurované mysli a vytváří si mentální modely světa.
Vytrženo z kontextu tyhle věty zní, jako bys nepsal o psovi :-)
A nebojíš se, že si vytvoříš svoji vlastní informační bublinu?Cílem je vytvořit si informační bublinu z konkrétních témat, která mě zajímají. Já čtu takhle RSS někdy od roku 2006/7, tisíce měsíčně, takže tenhle strach nemám. Problém je, že je to časově čím dál náročnější a s tím jak se sám specializuji je čím dál větší kus z toho irelevantní a také se velká část z toho opakuje. Dřív jsem například na 100 proklikaných RSS položek z
/r/programming
měl třeba 5/6 otevřených článků, které jsem přečetl. Dneska je to tak 1-2, což už se prostě těžit touhle metodou nevyplatí, tak to chce vylepšit vybavení pro těžení.
Tohle mne na tom trochu děsí. Pokud se nějaký proces (lidská činnost) stane závislým na klasickém programu, tak je to pořád transparentní pro člověka, tzn. můžeš si vzít zdroják, přečíst, pochopit a upravit. Ale co s blobem? Můžeš ho naučit něco nového, ale chtělo by to si nechávat i dřívější vstupní data, aby bylo možné proces učení reprodukovat. A dá se výsledek učení nějak verzovat? Vracet se zpět, větvit? Dělá se to běžně?Jak jsem psal, dělala to pro nás nějaká firma. Jenže se tomu prý už nechtějí věnovat, tak se snažím trochu nenápadně tlačit, abych to po nich mohl převzít. Verzování a vracení se zpět si umím představit. Ten blob imho naučit nic nového nemůžeš. Ne že by to principielně nešlo, ale já k tomu nemám žádné podklady jak a čím byl trénován, ani konkrétní scripty.
Chyba je, že jsi se k tomu nedostal průběžně a dělal revizi až na konci. Ale přiznám se, že mi to taky dělá problém – když jsem zavalený jinou prací a urgentními úkoly, tak se mi taky čas na revize hledá těžko.To psaní kódu bylo jen relativně malá část, z větší části to bylo o jednání a na tom bych zabil hodně času. Většinu toho kódu napsal během asi týdne, takže já to jako průběžně beru.
Tohle mi připomíná dávné časy, kdy jsem si četl o tom, jak ukládat javovské objekty do LDAPu nebo relační databáze… Zřejmě máš (pro tenhle účel) vhodnější technologie, ale mně přijde sporná ta samotná myšlenka. IMHO je lepší oddělit data a kód.Pro mě to není něco hrr. Je to výsledek zcela promyšlené snahy za poslední asi tři, možná čtyři roky. Imho naprosto nemá smysl snažit se modelovat objekty v něčem, co není samo o sobě programovací jazyk s nějakou mírou perzistence.
Ačkoli většinu programátorského času trávím s nějakou formou OOP, tak mám o objektovém přístupu svoje pochybnosti resp. došel jsem k tomu, že existují dva druhy „objektů“ a zatímco u jedněch ten objektový přístup spojující data a kód dává smysl, ty druhé by měly zůstat spíše strukturami, zatímco kód by měl být uložený v procedurách. Do té první skupiny patří abstraktní konstrukty, které primárně vznikly a žijí uvnitř počítače. Zatímco do té druhé patří struktury, které mají za úkol modelovat entity existující v AFK/vnějším světě. Do první skupiny lze někdy zařadit i objekty, které modelují ty entity z vnějšího světa a slouží jako proxy pro interakci s nimi.Ono hlavně to čemu se běžně říká OOP je takový divný zmutovaný a zkomolený bazmek. Například ten protypový model co používá Self je fakt něco úžasně jednoduchého a přitom silného. To jsem asi nikde replikované neviděl.
Cílem je vytvořit si informační bublinu z konkrétních témat, která mě zajímají. Já čtu takhle RSS někdy od roku 2006/7, tisíce měsíčně, takže tenhle strach nemám. Problém je, že je to časově čím dál náročnější a s tím jak se sám specializuji je čím dál větší kus z toho irelevantní a také se velká část z toho opakuje. Dřív jsem například na 100 proklikaných RSS položek z /r/programming měl třeba 5/6 otevřených článků, které jsem přečetl. Dneska je to tak 1-2, což už se prostě těžit touhle metodou nevyplatí, tak to chce vylepšit vybavení pro těžení.
V zásadě člověk potřebuje znát trendy, vědět, co všechno existuje, a mít nějakou hrubou předpověď budoucnosti – ne číst konkrétní zprávy. Je to jako se čtením novin. Ty jsou v podstatě zbytečné.1 Když budeš potřebovat nějakou konkrétní informaci, tak si ji cíleně najdeš – nemusíš kvůli tomu projíždět průběžně všechno, co vyšlo (v tu chvíli ty informace nepotřebuješ).
Taky bych si to chtěl nějak automatizovat. Chtělo by to mít informace typu: „od druhého čtvrtletí roku X se čím dál intenzivněji mluví o Y“ nebo „o Z se mluvilo první měsíc nadšeně a teď vychází čím dál víc kritických zpráv“ nebo „v projektu D se sešli lidi z projektů A, B a C, které byly úspěšné (nebo z mého pohledu zajímavé)“.
Nevím, jak je ten tvůj filtr postavený, ale pokud staví na tom, o čem dnes víš, že to existuje, a považuješ to za zajímavé, tak ti může uniknout něco, o čem jsi v době nastavení filtru ani nevěděl, že to existuje, ne?
Zatím ale bohužel nemám lepší recept, než že člověk bude vstřebávat i náhodné informace (aspoň povrchně, aby věděl, že něco existuje/vzniká).
A zpět k té automatizaci – ta stojí na tom, že jiní lidé si dali práci ty informace ručně zpracovat a ty ty jejich výstupy jen přežvýkáš nějakým algoritmem. Pokud jsi jeden z mála / první, tak to může být celkem úspěšný přístup. Jenže co když začne automatizovat víc lidí, vznikne zpětná vazba a ty algoritmy se začnou vzájemně ovlivňovat? Co když se stane něco podobného jako na burze, kde se někdy algoritmy „zblázní“ a začnou reagovat na výstupy jiných algoritmů, místo na reálnou situaci?
Imho naprosto nemá smysl snažit se modelovat objekty v něčem, co není samo o sobě programovací jazyk s nějakou mírou perzistence.
To je otázka, zda to je skutečný objekt, který žije svým vlastním životem a dělá něco sám za sebe, nebo jestli je to jen struktura, která má být obrazem nějaké reálné entity a která je někým s touto entitou synchronizována. Viz můj další komentář.
Ono hlavně to čemu se běžně říká OOP je takový divný zmutovaný a zkomolený bazmek. Například ten protypový model co používá Self je fakt něco úžasně jednoduchého a přitom silného. To jsem asi nikde replikované neviděl.
Nejde o to, jak moc je který jazyk OOP, ale jestli vůbec má to spojování stavu a chování do jednoho objektu v daném případě smysl.
[1] Ve skutečnosti tě nezajímá, že včera někoho přepadli, nebo kolik motorkářů se tenhle víkend vymlátilo. Důležitý je nějaký celkový obrázek, na základě kterého se rozhodneš. Např. „roste kriminalita → měl bych se nějak připravit“ nebo „jak moc je jízda na motorce riziková – stojí mi to za to?“
V zásadě člověk potřebuje znát trendy, vědět, co všechno existuje, a mít nějakou hrubou předpověď budoucnosti – ne číst konkrétní zprávy. Je to jako se čtením novin. Ty jsou v podstatě zbytečné.1 Když budeš potřebovat nějakou konkrétní informaci, tak si ji cíleně najdeš – nemusíš kvůli tomu projíždět průběžně všechno, co vyšlo (v tu chvíli ty informace nepotřebuješ).Já jsem noviny přestal číst už před 10+ lety a televizi taky tak. V podstatě všechno co tam je jsou dočasné sračky nulového významu, které ale zanechávají pocit, jakože mají nějaký význam, nebo důsledek pro tvůj život. Jenže nemají. To úplně vynechávám, že díky negativní zpětné vazbě jsou to většinou jen depresivní věci. Kde kdo koho zabil, co se nepovedlo a tak podobně.
Taky bych si to chtěl nějak automatizovat. Chtělo by to mít informace typu: „od druhého čtvrtletí roku X se čím dál intenzivněji mluví o Y“ nebo „o Z se mluvilo první měsíc nadšeně a teď vychází čím dál víc kritických zpráv“ nebo „v projektu D se sešli lidi z projektů A, B a C, které byly úspěšné (nebo z mého pohledu zajímavé)“. Nevím, jak je ten tvůj filtr postavený, ale pokud staví na tom, o čem dnes víš, že to existuje, a považuješ to za zajímavé, tak ti může uniknout něco, o čem jsi v době nastavení filtru ani nevěděl, že to existuje, ne?Momentálně je to primitivní blacklist. Nespecifikuji co mě zajímá, ale co mě nezajímá. I bayesovský filtr bude fungovat jako blacklist, stejně jako když třídíš spam.
A zpět k té automatizaci – ta stojí na tom, že jiní lidé si dali práci ty informace ručně zpracovat a ty ty jejich výstupy jen přežvýkáš nějakým algoritmem. Pokud jsi jeden z mála / první, tak to může být celkem úspěšný přístup. Jenže co když začne automatizovat víc lidí, vznikne zpětná vazba a ty algoritmy se začnou vzájemně ovlivňovat? Co když se stane něco podobného jako na burze, kde se někdy algoritmy „zblázní“ a začnou reagovat na výstupy jiných algoritmů, místo na reálnou situaci?Jedna z věcí, které mi silně zjednodušují život je filosofie neřešení problémů, které nemám.
To je otázka, zda to je skutečný objekt, který žije svým vlastním životem a dělá něco sám za sebe, nebo jestli je to jen struktura, která má být obrazem nějaké reálné entity a která je někým s touto entitou synchronizována. Viz můj další komentář.Meh. Přijde mi, že se bavíme o úplně odlišných věcech.
Ve skutečnosti tě nezajímá, že včera někoho přepadli, nebo kolik motorkářů se tenhle víkend vymlátilo. Důležitý je nějaký celkový obrázek, na základě kterého se rozhodneš. Např. „roste kriminalita → měl bych se nějak připravit“ nebo „jak moc je jízda na motorce riziková – stojí mi to za to?“
Doporučuji zamyslet se nad tím, jestli rostoucí počet zpráv o přepadeních nebo nehodách motorkářů opravdu nutně odráží trend v počtu těch přepadení a nehod a jestli to nemůže stejně dobře odrážet preference (nebo dokonce zájmy) těch, kdo připravují a vybírají zprávy.
A co bys doporučoval, nečíst?
Spíš vstřebávat i náhodné informace včetně těch z jiných oborů.
Jinak si myslim, že neni třeba se bát, protože v informační bublině žijeme každý z nás.
V zásadě ano, ale jde o to, co všechno ta bublina zahrnuje. Tímhle slovním spojením se většinou myslí příliš omezená bublina. Což ale u Bystroushaaka zjevně neplatí, když předpověděl např. Bitcoin a Ethereum.
Dělá se to běžně?Ano, když učíš síť, je rozumné dumpnout si občas checkpoint (protože ten runtime je nestabilní. Protože může vypadnout proud. Protože to může zdivergovat a pak se rád vrátíš k předchozí funkční verzi.). A pak jsou lidi, co dávají nadějně vypadají checkpointy ke stažení. Problém je, že typicky furt nevíš, co se v té síti děje, a jediné měřítko kvality checkpointu je jak dobře funguje na testovacích datech.
Ačkoli většinu programátorského času trávím s nějakou formou OOP, tak mám o objektovém přístupu svoje pochybnosti resp. došel jsem k tomu, že existují dva druhy „objektů“ a zatímco u jedněch ten objektový přístup spojující data a kód dává smysl, ty druhé by měly zůstat spíše strukturami, zatímco kód by měl být uložený v procedurách.A je mezi tím opravdu rozdíl? Přijde mi, že ten rozdíl je spíše v syntaxi a/nebo pojmenování než v podstatě věci...
A je mezi tím opravdu rozdíl?
Ano, myslím, že v tom právě rozdíl je. Objekt vzniká a „žije“ uvnitř informačního systému a poskytuje nějakou službu jiným objektům/komponentám nebo je naopak řídí a říká jim, co mají dělat. Ten objekt tam existuje a jedná sám za sebe. Např. to může být procesor, který je nějak nakonfigurovaný (tzn. má stav) a převádí data z jednoho formátu do druhého nebo je nějak vyhodnocuje (což může zase ovlivňovat jeho stav – např. hodnota hashe závisí na přechozích bajtech nebo hodnocení anti-spamového filtru závisí na tom, jaké e-maily přes něj prošly v minulosti).
Oproti tomu struktura je jen modelem/kopií nějaké entity z vnějšího světa (mimo tvůj informační systém) a někdo musí stav té reálné entity a toho obrazu synchronizovat. Např. když se tvůj zákazník přestěhuje, tak ty si musíš ve svém IS aktualizovat jeho adresu (a je jedno, jestli je to záznam v DB nebo struktura v operační paměti – BTW: synchronizace těchto dvou je zase další kapitola). Ta struktura se sama od sebe neaktualizuje – musí přijít někdo jiný (procedura) a provést synchronizaci. Běžně tu dochází k nekonzistencím resp. ke zpoždění – stav reálné entity se už změnil, ale struktura obsahuje ještě stará data. U skutečných objektů se to neděje, protože objekt je sám sebou, on je ten primární zdroj informace/stavu, není kopií/modelem něčeho jiného.
Něco mezi tím jsou ty proxy objekty, které zprostředkovávají přístup k entitě vnějšího světa. Např. proxy objekt, který poskytuje stav skladových zásob u dodavatele. Tenhle objekt by měl mít dvě oddělená rozhraní – jedním by poskytoval služby směrem ke zbytku IS (tvářil by se, že je sám tím skladem dodavatele) a druhé by sloužilo k synchronizaci stavu s vnějším světem (např. příjem notifikací o změně stavu zásob nebo naopak dotazování se externí služby).
Taková proxy je celkem smysluplný návrhový vzor a OOP na to sedí. Ale pak jsou tu ty modely/kopie a u nich mi OOP moc nedává smysl. Tam mi přijde vhodnější oddělení stavu a chování – tzn. struktura + procedury (byť syntakticky to můžou být zase objekty a metody, podle toho, co ti jazyk dovolí – viz níže). A tam potřebuješ synchronizovat tři místa – 1) reálná entita ve vnějším světě 2) struktura v operační paměti 3) persistentní struktura (typicky v nějaké databázi). Na synchronizaci 2 a 3 existují různé nástroje případně ti jazyk/platforma od toho umožní abstrahovat, abys ani nemusel moc řešit, zda je to ještě na disku nebo už v paměti a naopak. Ale synchronizaci 1 a 2/3 si musíš nějak zajistit sám a OOP se k tomu moc nehodí. Resp. vymyslíš tam maximálně nějaké gettery a settery. A je tam problém se sémantikou a srozumitelností rozhraní – v podstatě by ten objekt musel implementovat několik různých rozhraní, podle toho, z které strany k tomu přistupuješ. Např. když na subjektu zavoláš metodu změňAdresu()
, tak se mají jen aktualizovat data ve struktuře/databázi nebo se má té reálné entitě ve vnějším světě odeslat příkaz, aby se přestěhovala? A má se provést oboje nebo odeslat příkaz a pak počkat, až se entita přestěhuje a potvrdí nám to, a pak teprve aktualizovat strukturu / záznam v databázi?
Pak můžou ještě existovat proxy objekty, které zajišťují tu synchronizaci mezi strukturou v paměti a persistentním záznamem (databází), ale to je jen čistě technická záležitost, pomůcka k řešení nějakého technického problému. Z hlediska významu/podstaty je to jen datová struktura, která má stav, ale nemá chování.
Navrhnout systém tak, aby obsahoval objekty (spojující stav a chování) a zároveň dobře fungoval, dobře se používal a dal se rozvíjet, je hodně obtížné a v některých případech IMHO až nemožné. Takže si myslím, že oddělit stav a chování do struktur a procedur není žádná ostuda – spíš je to často to nejlepší řešení. Ten objektový přístup bych si nechal pro objekty, které vznikly a žijí primárně v informačním systému (tzn. jsou to nějaké konstrukty – služby/komponenty – vytvořené programátorem a ne kopie/modely entit z vnějšího světa).
Přijde mi, že ten rozdíl je spíše v syntaxi a/nebo pojmenování než v podstatě věci...
Je to věc sémantiky, významu. Syntaxe je daná jazykem – pokud používáš jazyk, který nepodporuje struktury, procedury ani funkce a má jen objekty a metody, tak samozřejmě vše budou objekty a metody1 a ten význam/sémantika bude patrný z návrhových vzorů a jmenných konvencí.
[1] technicky vzato – byť svým obsahem/podstatou jsou některé z nich struktury nebo procedury
Oddělení kódu a dat na struktury a procedury na jednu stranu smysl dává, ale na druhou tím rozbiješ zapouzdření.
Zapouzdření se někdy hodí z technických důvodů (např. abys někam podstrčil proxy, dělal persistenci, odchytával události, měl cache…) ale z hlediska byznys logiky a zadání tam žádné chování není – je to jen datová struktura. Abych to uvedl na pravou míru – ono až tak nevadí, že něco implementujeme (technicky vzato) jako objekt nebo že nějaký jazyk nepodporuje struktury/procedury, ale jen objekty/metody – to je celkem nepodstatný implementační detail – jde spíš o to, co do těch objektů a metod dáme – jestli to jsou (svým obsahem podstatou) skutečné objekty spojující stav a chování nebo spíš datové struktury a chování je vyčleněné jinam, do procedur (i když technicky vzato to jsou zase metody nějakých objektů, protože daný jazyk nic jiného neumí). Problém může být, když se někdo snaží z těch technických objektů (ve skutečnosti struktur) udělat skutečné objekty a nacpat do nich chování, které tam nepatří nebo které dává smysl jen z určitého úhlu pohledu na daná data nebo jen v určité životní fázi té struktury.
Koukni na Smalldb, to tak udělané je a funguje to docela dobře.
Vypadá zajímavě, ještě si to prostuduji… a koukám, že je to tvoje práce :-)
To je fajn, ale je otázka, jestli ta daň za to (složitost jazyka) není příliš vysoká.
(a to říkám z pozice člověka, který by se C++ rád naučil – ale zatím jsem do toho prostě nepronikl dostatečně na to, abych si v tom troufal psát něco seriozního)
Když používáš jazyk jako Java, tak je všechno objekt (třída, metoda), i když něco z toho je ve skutečnosti (svým obsahem, podstatou) struktura nebo procedura. Když ale použiješ třeba relační databázi jako PostgreSQL, tak tam zase budeš mít jen struktury (záznamy) a procedury (resp. tam jsou to funkce, protože mají návratovou hodnotu) a můžeš s tím postavit dobrý informační systém1. A dost možná lepší, než kdyby ses snažil „myslet objektově“ a spojoval nesmyslně data a chování dohromady v nějakém jazyce, který to umožňuje. Ono i v té Javě se hodně systémů navrhuje z velké části procedurálně a objektový přístup se používá jen pro řešení technických detailů jako persistence nebo cache (ale ne pro byznys logiku) nebo tam, kde to skutečně dává smysl (ty objekty, o kterých píšu výše, ty které jsou konstruktem programátora a vznikají a žijí primárně v tom informačním systému, nejsou to obrazy nějakých externích entit). A pak jsou jazyky, které ty datové struktury a objekty umožňují oddělit i na úrovni syntaxe, protože podporují oboje. (nicméně teď neřeším, který jazyk je lepší, mluvím o tom, co v něm člověk napíše)
[1] jen přidáš nějakou tenkou vrstvu třeba v Javě nebo PHP, která implementuje nějaký protokol pro komunikaci s okolím – ale tahle vrstva je celkem nepodstatná a není v ní žádná logika
technicky vzato – byť svým obsahem/podstatou jsou některé z nich struktury nebo proceduryVšechno jsou to procedury a struktury... Dopručuju podívat se na UFCS, pokud nejsi s tímhle pojmem už obeznámen. Myslimže pojem pochází z jazyka D, ale podobně to má v zásadě i Python a další jazyky. V podsatě jde o to, že
objekt.foobar(argument)
je identitcké s
foobar(#objekt, argument)
(Kde #
značí nějaký druh přístupu, ať už hodnota, pointer, reference, whatever - snažím se to napsat co možná obecně.)
Jde v podstatě jen o to, že jazyky k tomu prvnímu argumentu přistupují více či méně specielně. V čistém C žádný specielní význam nemá, pak je spousta jazyků někde mezi tím (D, Python, Rust, Go,...) a potom třeba v C++ a Javě je natolik specializovaný, že už se ani explicitně nevypisuje a pracuje se s ním jen nepřímo pomocí příznaků jako static
nebo const
. Ve výsledku to pak v C++, Javě apod. vypadá, jako kdyby tam ten argument nebyl, a navíc tím, že member funkce jsou namespacované jménem toho objektu a i fyzicky ve zdrojáku jsou jakoby "v něm", to budí dojem, že ten objekt "má" nějakou metodu a něco pomocí té metody dělá. Ale to je jen syntaktické divadlo, reálně to je stále to samé - prostě funkce, která má jako první/nultý argument datovou strukturu, ze který něco čte nebo do ní zapisuje. Čili tam ten rozdíl je IMHO opravdu spíše syntaktický a konvenční, faktický ale ne.
Že je dost rozdíl mezi strukturama popisujícíma externí data a interníma strukturama stroje, co se "samy" udržují aktuální, to souhlasím...
Jakmile dojde na polymorfismus, tak ten první argument určuje nejen na čem se bude pracovat, ale i která procedura se to vlastně bude volat.Tak ono když se člověk podívá do dostatečně rozsáhlé céčkové codebase, určitě tam najde struktury s pointerama na funkce, které v podstatě dělají přesně tohle. Čili ani dynamic dispatch není v zásadě žádnou změnou paradigmatu. V tom OOP je to v podstatě jen o tom, že ten synatktický cukr umožňuje psát stručnější kód (boilerplate generovaný kompilátorem), snáz to organizovat, mít v tom pořádek a nějakou štábní kulturu. V tom vidím ten přínos spíše než v nějaké změně paradigmatu. Co se týče generik, ty s tím imho vůbec nesouvisí.
když se člověk podívá do dostatečně rozsáhlé céčkové codebase, určitě tam najde struktury s pointerama na funkceA ja bych tam cekal spis Common Lisp.
najde struktury s pointerama na funkce, které v podstatě dělají přesně tohle. Čili ani dynamic dispatch není v zásadě žádnou změnou paradigmatuDivas se na celou vec prilis technicky. V diskuzi o paradigmatech programovani neni klicove, jak se dana vec da naimplementovat, ale to, jak je chapan program a data.
OOP je to v podstatě jen o tom, že ten synatktický cukr umožňuje psát stručnější kódOOP je o tom, ze ti umoznuje vyjadrit program a data urcitymi prostredky (interface, information hiding, dynamic dispatch), ze tu samou myslenku muzes vyjadrit ekvivalentnim kodem v proceduralnim jazyce neni podstatne. Dohnano ad absurdum, jestli je OOP jen syntakticky cukr na proceduralnim programovanim, da se rict, ze proceduralni programovani je synatktický cukr umožňuje psát stručnější kód (boilerplate generovaný kompilátorem), snáz to organizovat, mít v tom pořádek a nějakou štábní kulturu. (Kazdy kdo nekdy programoval v assembleru urcite taky dospel k necemu, co se podoba proceduram, a nepotreboval pro to berlicku nejakeho jazyka.) Z tohoto uhlu pohledu tvuj argument neni moc validni.
Dohnano ad absurdum, jestli je OOP jen syntakticky cukr na proceduralnim programovanim,Třeba ve Smalltalku, což je jedno z nejstarších praktických OOP je kladen brutální důraz na late binding a předávání bloků, což je ekvivalent lambda funkcí. Například if podmínka je jen metoda bool objektu, které se jako parametr předává blok s kódem. Je to procedurální programování?
v holém céčku je to typicky tak, že se předává pointer na funkci + opaque data pointer, což je v zásadě to samé, co lambda, akorát opět bez té šikovné syntaxe, pracnější, méně bezpečné, atd...Není, protože to nemá namespace místa, kde to bylo vytvořeno a nemůžeš to vytvořit v jiné funkci (closure). Reflexe je určitě fajn, ale hraje roli imho spíš ve Smalltalku jako IDE, než jako jazyku.
Není, protože to nemá namespace místa, kde to bylo vytvořeno a nemůžeš to vytvořit v jiné funkci (closure).Můžeš, ty příslušný data z toho místa, kde ty bylo vytvořeno, jsou pak v tom opaque pointeru.
Nové C už umí definovat funkce v jiné funkci? Nebo o čem se to tu bavíme?Ne-e. Mam na mysli něco takovéhleho: Python vs C. Podobné API (tj. jako ten
takes_a_linear
) je v C na každém kroku, zrovna někdy včera jsem něco zkoušel s epoll
a kqueue
, taky to tam mají takhle.
Ten komfort oproti třeba tomu pythonu nebo jiným jazykům je samozřejmě úplně někde jinde, o tom žádná. Na druhou stranu třeba ten epoll je kernelové API a když si k tomu člověk udělá vhodný binding pro nějaký vyšší jazyk (C++, D, Rust, whichever), může v podstatě předávat lambdy+closures kernelu i s tou komfortní syntaxí, což mi přijde celkem kůl...
Ne-e. Mam na mysli něco takovéhleho: Python vs C. Podobné API (tj. jako ten takes_a_linear) je v C na každém kroku, zrovna někdy včera jsem něco zkoušel s epoll a kqueue, taky to tam mají takhle.Jasně no, ale tohle není closure. Closure je https://repl.it/LwFj/6 Ono se to může zdát jako blbost, ale umožňuje to úplně jiný styl programování. Očividná věc jsou dekorátory, ale tohle má tak nějak důsledky, které se nenápadně proplíží i do zbytku jazyka a umožní ti programovat jinak. Například v tom Smalltalku, je přes bloky řešené kde co. Tam je trochu zajímavé a také odlišuje blok od lambda funkce, že když uděláš return v tom bloku, tak to nevrátí z bloku, ale z nadřazeného elementu. Například nesmyslná ukázka:
testValue: val val ifTrue: [ ^val ].Zde dojde k vrácení nejen z bloku definovaného
[]
, ale z celé metody testValue
. Což se může zdát na první pohled divné, ale umožňuje to fakt úplně jiný styl programování.
Ekvivalent v pythonu by bylo něco jako:
def testValue(val): val.ifTrue(lambda x: return x)kdyby ten return v lambdě nevrátil nejen z té lambdy, ale i
testValue
. Může se to zdát divné, když je to ale zasazené do konzistentního zbytku systému, tak to dává smysl.
Ehm, špatně. Takhle:def testValue(val): val.ifTrue(lambda x: return x)
def testValue(val): val.ifTrue(lambda: return val)
Jasně no, ale tohle není closure. Closure je https://repl.it/LwFj/6V čem se to liší od toho mého příkladu? (Capture lokálních proměnných tam mam taky...)
Zde dojde k vrácení nejen z bloku definovanéhoOk, to už je opravdu něco trochu jiného, vzhledem k tomu, že to ovlivňuje control flow té nadřazené funkce... Nadruhou stranu zrovna konkrétně v rámci toho ifu to až tak divný není, z ostatních jazyků je člověk typicky zvyklý, že return v těle ifu vrátí z celé funkce...[]
, ale z celé metodytestValue
. Což se může zdát na první pohled divné, ale umožňuje to fakt úplně jiný styl programování.
V čem se to liší od toho mého příkladu? (Capture lokálních proměnných tam mam taky...)Mno, eh, pokud na to chceš nahlížet takhle, tak jo :D
Nadruhou stranu zrovna konkrétně v rámci toho ifu to až tak divný není, z ostatních jazyků je člověk typicky zvyklý, že return v těle ifu vrátí z celé funkce...Jasně, ale tohle není návrat z těla ifu, to je návrat z bloku. A blok může být libovolný. Zajímavé je to třeba u různých iterátorů kolekcí. K tomu je taky zajímavý ten late-binding, kde předáváš do metod blok kódu ze současného namespace, který se vykoná ale „lazy“ ve chvíli, kdy je fakt třeba.
Mno, eh, pokud na to chceš nahlížet takhle, tak jo :DPočkej, opravdu nerozumim jak jsi to myslel. Je podle tebe nějaký rozdíl (z hlediska closures/lambdas) mezi tim tvým a mým python kódem? Tam totiž žádný nevidim. Nebo jsi měl na mysli mezi pythonem a C? S tím bych určitě souhlasil (konkrétně tam vidim hlavně ten rozdíl v tom, že si musím ručně vytvořit ty typy a starat se o paměť, což ten Python oboje dělá automaticky.)
Jasně, ale tohle není návrat z těla ifu, to je návrat z bloku.Jj.
A blok může být libovolný. Zajímavé je to třeba u různých iterátorů kolekcí. K tomu je taky zajímavý ten late-binding, kde předáváš do metod blok kódu ze současného namespace, který se vykoná ale „lazy“ ve chvíli, kdy je fakt třeba.To mi připomíná projekt před lety ještě na škole, kde učitelé pracovali na svém frameworku pro 3D grafiku a měli tam pro skriptování věcí vlastní jazyk podobný Tcl, který fungoval v tomhle ohledu podobně. Typicky jako handlery událostí se předávalo něco na způsob takovýchhle bloků. (Dost jsem se tehdy divil, že nepoužili Python nebo Smalltalk nebo takněco a vynalézali vlastní řešení.)
Počkej, opravdu nerozumim jak jsi to myslel. Je podle tebe nějaký rozdíl (z hlediska closures/lambdas) mezi tim tvým a mým python kódem? Tam totiž žádný nevidim. Nebo jsi měl na mysli mezi pythonem a C? S tím bych určitě souhlasil (konkrétně tam vidim hlavně ten rozdíl v tom, že si musím ručně vytvořit ty typy a starat se o paměť, což ten Python oboje dělá automaticky.)No že to musíš dělat ručně. To bys mohl vzít assembler a říct, že má closures taky, když si je tam ručně uděláš a celé to nějak ztrácí pointu.
Lambdy až tak jiné nejsou, v holém céčku je to typicky tak, že se předává pointer na funkci + opaque data pointer, což je v zásadě to samé, co lambda, akorát opět bez té šikovné syntaxe, pracnější, méně bezpečné, atd...Ta pointa je v zásadě v tom, že v C se často / typicky pro situaci, ve které v jazycích jako Python, Java, C++ apod. použiješ closure, používá její ekvivalent (namatlaný ručně). Napsal jsem to proto, že na tom je IMHO vidět, že closure (minimálně v kontextu zmiňovaných jazyků a podobně jako značná část OOP) nepřinášejí moc novou myšlenku, pouze usnadňují a zefektivňují použití již existující myšlenky pomocí syntaktického cukru a automatiky kompilátoru nebo runtime. Naproti tomu třeba použití lambd ve FP už mi jako změna myšlení připadá. Nebo třeba v Pythonu dekorátory už mi taky přijdou, že tam je nová myšlenka. Nevim no, asi věc názoru...
A
s objektem typu B
bindovat do jednoho z těch objektů, popř. obou. Jak vlastně rozhodnout, do kterého z nich to nabindovat, a proč by to vlastně mělo dávat smysl, když takové porovnání dává smysl třeba jen v jednom krátkém scopu?
Docela mi dává smysl, aby operátory byly metodami objektu, a zápis a == b
byl ekvivalentní zápisu a.==(b)
. Tak to má mimochodem Scala:
#!/usr/bin/env scala case class Value(value: Int) { def ==(value: Int): Boolean = value == this.value; } println(Value(1) == Value(2)) println(Value(1) == Value(1)) println(Value(1).==(Value(1)))Dilema, kam tu metodu umístit (v případě více typů), zůstává, ale dělá ho jen původní autor třídy. Ale proč tomu operátoru předávat i blok, který případně spustit? V čem je to výhodné? Přijde mi, že to akorát vše komplikuje a nic moc revolučního a pokrokového v tom nevidím. Asi nejvíc se mi tedy líbí to, že i primitivní typy jsou objekty – tohle vysloveně posrali v Javě.
Asi nejvíc se mi tedy líbí to, že i primitivní typy jsou objekty – tohle vysloveně posrali v Javě.Shameless plug: Rust
Docela mi dává smysl, aby operátory byly metodami objektu, a zápis a == b byl ekvivalentní zápisu a.==(b). Tak to má mimochodem Scala:Teď nějak nevím, jestli se chápem. Tohle co do funkcionality nemá žádný rozdíl.
Teď nějak nevím, jestli se chápem. Tohle co do funkcionality nemá žádný rozdíl.Jen nad tím tak spekuluji. Tímhle jsem jen chtěl říct, že docela chápu, proč může dávat smysl mít operátor součástí objektu a ne prostě natvrdo zakotvený v jazyce, ale moc nerozumím tomu zbytku. Konkrétně u těch podmínek mi to přijde takové divné. Si tak představuji, jestli pak člověk bude psát něco jako
(x < 5).ifTrue(...).else(...)
, jak by asi vypadala obdoba switch
, a tak.
Asi si prostě počkám, až o tom Smalltalku něco napíšeš.
Si tak představuji, jestli pak člověk bude psát něco jako (x < 5).ifTrue(...).else(...), jak by asi vypadala obdoba switch, a tak.To se "nedávno" objevilo v JavaScriptu. Viz MDN: Using promises.
Jen nad tím tak spekuluji. Tímhle jsem jen chtěl říct, že docela chápu, proč může dávat smysl mít operátor součástí objektu a ne prostě natvrdo zakotvený v jazyce, ale moc nerozumím tomu zbytku. Konkrétně u těch podmínek mi to přijde takové divné. Si tak představuji, jestli pak člověk bude psát něco jakoTak ono to samozřejmě nemá smysl roubovat na C-like syntaxi. Mimochodem to taky afaik (neznám, slyšel jsem) používá taky objC a Ruby.(x < 5).ifTrue(...).else(...)
, jak by asi vypadala obdobaswitch
, a tak.
Asi si prostě počkám, až o tom Smalltalku něco napíšeš.Nechci psát o Smalltalku, ale o Selfu. Je teda fakt, že ten má v tomhle zrovna syntaxi stejnou.
Mimochodem to taky afaik (neznám, slyšel jsem) používá taky objC a Ruby.Co si tak vzpomínám, deu kdysi tvrdil, že Objective-C je C s OOP nadstavbou ovlivněnou Smalltalkem.
Nechci psát o Smalltalku, ale o Selfu.Ajo.
Co si tak vzpomínám, deu kdysi tvrdil, že Objective-C je C s OOP nadstavbou ovlivněnou Smalltalkem.Je, ale má nějakou divně hybridní syntaxi, něco mezi smalltalkem a C, s tím že je to i zpětně kompatibilní s C. Ale jak píšu, nedělal jsem v tom, jen jsem na to zběžně koukal.![]()
Divas se na celou vec prilis technicky. V diskuzi o paradigmatech programovani neni klicove, jak se dana vec da naimplementovat, ale to, jak je chapan program a data.NOTABUG. Dlouhodobě se držím toho, že vnímám tu technickou podstatu jako ekvivalentně důležitou. IMHO by se tady dalo parafrázovat takovéto pořekadlo s bicyklem: Otázka, jestli je důležitější paradigma/abstrakce, nebo implementace, je jako otázka, jestli je u bicyklu důležitější přední nebo zadní kolo. "Sandboxové" jazyky jako LISP na tohle dojely. A dokonce i u té Javy je vidět podobný efekt v kontextu toho, jak se v poslední době přizpůsobuje třeba úspěchu jazyka Go (lehkotonážní GC, kompilace do statické binárky, ...). Samozřejmě na druhou stranu potom nízkoúrovňové jazyky jsou sice ok z hlediska implementace, ale na řadu věcí nepraktické/neefektivní. Takže je to IMHO o hledání té správné rovnováhy.
OOP je o tom, ze ti umoznuje vyjadrit program a data urcitymi prostredky (interface, information hiding, dynamic dispatch), ze tu samou myslenku muzes vyjadrit ekvivalentnim kodem v proceduralnim jazyce neni podstatne.To je pravda, nicméně mně na tom, že se dá stejná myšlenka vyjádřit jinými prostředky, připadá důležité to, že to člověku rozšiřuje obzory a umožňuje mu poznat, že nějaký koncept (třeba dejme tomu třída v OOP) je opravdu pouze vyjadřovácí prostředek, který není pro tu myšlenku až tak zásadně podstatný. (Tím se nechci stavět do role nějakého osvícence, taky mám v tomhle ohledu rezervy a neškodilo by mi třeba si vyzkoušet nějaký hodně jiný jazyk než na co jsem zvyklý apod. Ale člověk je limitován časem, žeano...)
Dohnano ad absurdum, jestli je OOP jen syntakticky cukr na proceduralnim programovanim, da se rict, ze proceduralni programovani je synatktický cukr (...)Je to tak
funkce(data)
namísto data.funkce()
, ale hlavně v té imutabilitě, protože to je to, co způsobuje ten jiný styl programování, ne to, že by se volaly funkce nad daty místo metod nad objektama. Pro tebe coby znalého je tohle nejspíš zřejmé, ale řadě lidí, zejména pokud se zabývají výlučně klasickým OOP, to zřejmé není...
Co se týče toho FP, tak tam ten rozdíl oproti OOP IMHO není ani tak v tom [...]Podle Oderskyho je to ortogonální – tedy můžeš programovat současně objektově a imperativně, nebo také objektově a funkcionálně. Příkladem jazyka, který propaguje druhé zmíněné, má být Scala. Když se nad tím tak zamyslíš, tak to docela dává smysl. Jsou to dvě oddělené věci:
Pro tebe coby znalého je tohle nejspíš zřejmé, ale řadě lidí, zejména pokud se zabývají výlučně klasickým OOP, to zřejmé není...Nijak zvlášť se v různých programovacích paradigmatech nevyznám. Spíš mi tak přišlo, že ty technické detaily tady nehrají moc roli a šlo spíš o ten způsob uvažování, organizaci v kódu, a tak. Prostě víc abstraktní věci.
nechci to všechno redukovat na instrukce pro CPUJaký instrukce? Instrukce jsou přece jen cukr pro mikrokód
portable asssmebly
Samozřejmě na druhou stranu potom nízkoúrovňové jazyky jsou sice ok z hlediska implementace, ale na řadu věcí nepraktické/neefektivní.Tak třeba VHDL je tak implementačně orientovaný, že se v něm nedá ani pořádně psát
To je pravda, nicméně mně na tom, že se dá stejná myšlenka vyjádřit jinými prostředky, připadá důležité to, že to člověku rozšiřuje obzory a umožňuje mu poznat, že nějaký koncept (třeba dejme tomu třída v OOP) je opravdu pouze vyjadřovácí prostředek, který není pro tu myšlenku až tak zásadně podstatný.
V zásadě máme tři úrovně: 1) myšlenka (byznys zadání) → 2) vyjádření myšlenky (zdrojový kód) → 3) implementace (převod toho lidsky čitelného kódu na něco vykonatelného procesorem).
Těch implementací může být víc – tentýž kód můžeš převést na různé spustitelné tvary (různá běhová prostředí nebo kompilátory pro tentýž jazyk). Tahle část je ale z mého pohledu nepodstatná – ty moje původní komentáře se týkaly právě přechodu mezi 1 (myšlenou) a 2 (jejím vyjádřením v kódu). A šlo mi o to, zda – resp. v kterých případech – je vhodnější pro vyjádření té myšlenky použít objektový přístup a v kterých něco jiného.
A není to ani moc otázka volby jazyka jako spíš stylu psaní / návrhu programu. I v objektovém jazyce se dá psát procedurálně1 nebo funkcionálně2.
[1] bez problémů – zato obráceně to bude horší
[2] to může trochu drhnout, bude to ukecanější, něco možná nepůjde, záleží na jazyku…
Působí to na mě jako architektonické dilema, do jaké míry oddělovat model a logikuMozna je to strach rict, ze kral je nahy, a na nektere ulohy OOP neni dobre. Radu uloh je mnohem prirozenejsi implementovat proceduralne nebo funkcionalne. Ale protoze poslednich 20 nebo 25 let se dokolecka opakovalo, ze objektove programovani je lepsi nez proceduralni, tak spousta lidi programuje s objekty. ...ale naprosto proceduralnim zpusobem a neprijde jim to divne. Typicky ruzne korporatni IS. Takovy projekt obsahuje pul tuny POJO's majici maximalne gettry, settry (v lepsi pripade i smysluplny konstruktor) a k tomu dalsi pul tuny ruznych *Servisu a *Executoru, ktere berou tyto objekty a nejak je transformuji na jine.
Mozna je to strach rict, ze kral je nahy, a na nektere ulohy OOP neni dobre.
To bylo myšleno na koho? Pokud na mně, tak bych jen připomněl, že jsem to byl já, kdo do téhle diskuse přišel s tím, že ne na všechno se hodí objektový přístup
Ačkoli většinu programátorského času trávím s nějakou formou OOP, tak mám o objektovém přístupu svoje pochybnosti resp. došel jsem k tomu, že existují dva druhy „objektů“ a zatímco u jedněch ten objektový přístup spojující data a kód dává smysl, ty druhé by měly zůstat spíše strukturami, zatímco kód by měl být uložený v procedurách.
Viz #160
Radu uloh je mnohem prirozenejsi implementovat proceduralne nebo funkcionalne.
Vždyť to říkám :-)
tak spousta lidi programuje s objekty. ...ale naprosto proceduralnim zpusobem a neprijde jim to divne. Typicky ruzne korporatni IS. Takovy projekt obsahuje pul tuny POJO's majici maximalne gettry, settry (v lepsi pripade i smysluplny konstruktor) a k tomu dalsi pul tuny ruznych *Servisu a *Executoru, ktere berou tyto objekty a nejak je transformuji na jine.
Vždyť oni ty úlohy řeší procedurálně a o to ti šlo, ne? Nemá smysl cpát objektový přístup tam, kam se nehodí – přestože programuješ (ať už z jakéhokoli důvodu – často to neovlivníš) v objektovém jazyce (resp. dneska jazyky podporují často více paradigmat současně).
Nebo co navrhuješ? Používat několik jazyků a přepínat mezi nimi podle toho, co zrovna řešíš? Co když bude daná úloha/projekt obsahovat i části, na které se hodí objektový přístup?
IMHO buďme rádi, že jazyky to OOP podporují a můžeme pomocí něj implementovat ty konstrukty, které ze své podstaty objektové jsou a nemusíme to psát celé v něčem jako Pascal nebo PL/SQL1 – což nám ale nebrání mít jiné části programu napsané formou struktur a procedur a jinde použít přístupy funkcionálního programování.
[1] Oracle tam sice něco jako objekty dodělal, ale je to tak špatné, že doporučuji se tomu vyhnout
Ale to je jen syntaktické divadlo, reálně to je stále to samé - prostě funkce, která má jako první/nultý argument datovou strukturu, ze který něco čte nebo do ní zapisuje. Čili tam ten rozdíl je IMHO opravdu spíše syntaktický a konvenční, faktický ale ne.Tohle je nepodstatny technickych detail. Vzdycky budes mit nejaka data nejake operace, ktere s temito daty pracuji. Rozhodujici je (a to je asi patrne i to, co xkucf resi), zpusob, jak tyto data a operace s nimi interpretujes. Na jedne strane mas objektovy pristup, kdy klicova je identinta daneho objektu, o datech objektu nevis nic, a interpretovat stav objektu se da pouze definovanym rozhranim. Na druhe strane mas pristup, kdy data sama o sobe jsou nositelem informace, identita je podruzna, a procedury slouzi k transformaci jedne hodnoty na druhou. Spojenim techto dvou koncepcne odlisnych pristupu navrhu dat a operaci s nimi vznikne ale akorat velice krehky domecek z karet, jak ukazuje ORM.
Občas nechápem prečo takéto blogy nemajú TUČŇÁKA?Protože ho tomu nikdo nedal. Já mám zásadu, že tučňáky nikdy vlastním blogům nedávám.
Ťažko sa vyjadriť k tak rozsiahlemu blogu, bez toho aby z toho nebol rozsiahli komentár.Co ti brání napsat rozsáhlý komentář? :)
Rád zas čítam o Selfe a Smalltalku, ľudia musia všetko objaviť minimálne dva krát aby to naozaj objavili. Kopec vedeckých objavov sa znovu objavuje, pretože ľudský život je konečný a nikto neabsorbuje všetky vedomosti. Einstein tiež len poskladal známe fakty, výhoda pre našu budúcnosť je v tom, že to všetko prečítal a posunul dobu o minimálne 50rokov.To jsem rád, protože o něm určitě budeš číst víc. Mám v plánu němu určitě napsat několik blogů. Respektive, jeden už mám napsaný, jen ho musím upravit. Pak mám připravenou sérii o Selfu jakožto o programovacím jazyku a technologii, kde se věnuji i historii a tak podobně, a snažím se to vysvětlit v celkovém kontextu. Ale tam bude ještě trvat docela dlouho, než to dopíšu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.