Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Ondra Satai Nekola

Stran: 1 ... 83 84 [85] 86 87 ... 177
1261
/dev/null / Re:Parkování u prodejny - aneb zatracená inkluze
« kdy: 22. 01. 2017, 15:57:55 »
co je to ta inkluze?

To je začleňování ementálů do většinové společnosti.
Třeba jako když zaměstnáš úředně ověřeného idiota a necháš ho dělat odpovědnou práci, jen aby se necítil jako idiot, protože je lepší, když se jako idioti budou cítit ti ostatní. Méně obvyklé to bylo dřív, pár takovým idiotů jsem viděl na různých poměrně zajímavých pracovních pozicích s vnitropodnikovou exekutivní pravomocí. Dnes mi to přijde jako standard mít alespoň jednoho idiota na důležité pozici v každé firmě. Nejspíš nějaká forma povinných kvót EU.

A proc to motas dohromady?

1262
Vývoj / Re:Dědičnost dnes
« kdy: 22. 01. 2017, 15:36:14 »
Kód: [Vybrat]
final Kruh k = new Kruh(1)
k.setPrumer(2)
k.setPolomer(3)
print k.obsah()

Nebudes tomu verit, ale je to uplne jiny pripad. Chces si za domaci ukol vymyslet, v cem je rozdil, nebo radeji napovedu? ;)
To je záměr, u tohoto případu se totiž nikdo neptá, jak se to bude chovat.

Neni to zamer ale nepochopeni.

Ten kruh neni potomek nejake jine tridy T, kde je jejim kontraktem nezavisle setPrumer a setPolomer.

Zkus si prepsat ten priklad pro Kruh a Elipsu a uvidis...

1263
Vývoj / Re:Dědičnost dnes
« kdy: 22. 01. 2017, 15:13:33 »
Kód: [Vybrat]
final Kruh k = new Kruh(1)
k.setPrumer(2)
k.setPolomer(3)
print k.obsah()

Nebudes tomu verit, ale je to uplne jiny pripad. Chces si za domaci ukol vymyslet, v cem je rozdil, nebo radeji napovedu? ;)

1264
Vývoj / Re:Dědičnost dnes
« kdy: 22. 01. 2017, 14:54:52 »
...jaký obsah má čtverec, kterému nastavím strany 2 a 3? ... do databáze perzistuji hovadinu...

JASNĚ jsem uvedl, že třída čtverce zajišťuje shodu délek stran a i b, tudíž není možno mít a=2 a b=3. Data pro uložení pak buďto poskytuje sama instance čtverce, takže dostačuje jedna strana, nebo je řešeno v mapovači čtverce do DB, který pro uložení čtverce vede jen jednu stranu.

Pocitam, ze se porad bavime o mutable variante, jinak je to trivialni zalezitost?

A jak se v tom pripade chova tahle posloupnost prikazu?

Kód: [Vybrat]
final Obdelnik o = new Ctverec(1)
o.setA(2)
o.setB(3)
print o.obsah()

?

1265
Distribuce / Re:Proč jsou mezi balíky závislosti?
« kdy: 22. 01. 2017, 11:35:55 »
skoda ze neni vyber - mne by se treba nekdy hodil deb balicek ktery by si vsechno nesl sebou

ted jsem chtel pres dpkg -i nainstalovat chrome 18.deb na muj stary stroj i386 a pise mi to ze nemam spravnou verzi libgcryptll (a kdyz nainstaluju libcryptll-dev tak to nepomuze) a libcurl3

kdyby si to ten instalator nesl vsechno v sobe, byl bych ted v pohode a vklidu to nainstaloval ..

To je porad dokola - ano, ale porusi se tim DRY se vsemi negativnimi dusledky. Zejmena zacne byt problem s tim, ze (nejen) bezpecnostni updaty zavislosti si bude muset zacit resit kazda aplikace.

1266
Distribuce / Re:Proč jsou mezi balíky závislosti?
« kdy: 22. 01. 2017, 11:29:24 »
3. apt-get install chromium-browser a jsem v pohodě a v klidu na starých strojích
... což ovšem neřeší problém, že chce mít Chrome. Třeba někdo potřebuje spolehlivě synchronizovat záložky, hesla, formuláře mezi různýma strojema (telefon, deskto s win, linux ... ) .

A proc by k tomu potreboval Chrome a ne Chromium?

https://chromium.googlesource.com/chromium/src/+/master/docs/chromium_browser_vs_google_chrome.md

1267
Vývoj / Re:Dědičnost dnes
« kdy: 20. 01. 2017, 16:07:25 »

Jak psal Satai Nekola, ctverec dedici z obdelnika je v pohode pouze, pokud je immutable, jinak porusuje Liskov Substitution Principle, tedy instance podtypu ma stejne ocekavane vlastnosti jako instance nadtypu.

...

Nechápu, co řešíte. Čtverec jako dědic musí zajistit dodržení nového pravidla, že a = b, k tomu stačí překrýt metody, které nastavují strany, aby splnění zajistily. Pak můžete se čtvercem mutovat, jak chcete, pořád to bude čtverec.

Vážně to nechápeš ;)

Nedá se to rozumně udělat při zachování i kontraktu pro Obdélník. Dále viz LSP

1268
Vývoj / Re:Dědičnost dnes
« kdy: 20. 01. 2017, 16:05:15 »
To je jak u malých. Zejména Kiwi.

Programuje se pro lidi. Jestli ti to v tom prvním semestru neozřejmili...

Každý objekt má kopec implicitních vlastností. Že ti setA neodpálí rakety je mezi nimi.

Zrovna kontrakt, co ti rozbije tu hierarchii mutable čtverce a obdélníku, bude dost možná i explicitní v nějakém property based testu:
Kód: [Vybrat]
Obdélník o, r > 0
 =>
      obsah1 = o.obsah()
      o.setA(r * o.getA())
      r * obsah1 == o.obsah() až na epsilon
   

1269
Odkladiště / Re:Židle vhodná pro programátora
« kdy: 20. 01. 2017, 11:47:48 »
Na záda je nejlepší pohyb, ne kvalitní židle. Páteř mají držet vaše svaly a ne anatomické opěradlo. Stačí cvičit 20 minut denně.

To je falešné dilema.

Musíš mít svaly, ale dobrá židle tě nedrží místo nich, ale pomáhá ti sedět správně.

1270
Vývoj / Re:Dědičnost dnes
« kdy: 20. 01. 2017, 11:21:40 »
Jinak by treba neplatila posloupnost

b = obdelnik.obsah()/obdelnik.a()
obdelnik.setSideA(10)
obdelnik.obsah() == b * obdelnik.a()

coz muze prekvapit a potrapit.

Aj! Však je to taky ze své podstaty totálně špatně! "B", "A" i obsah jsou vlastnosti objektu, které máte získávat od něj. A ne si je počítat bokem vedle. Vždyť jste tu předvedl naprosto flagrantní porušení zapouzdření!

Nicméně zařazuji do své sbírky odstrašujících příkladů.  :)

Nějaký podobný kód může být snadno součástí property based testů pro obdélník.
Ty by pochopitelně měly pricházet i pro podtřídy.


1271
Vývoj / Re:Dědičnost dnes
« kdy: 20. 01. 2017, 11:14:24 »
Kdyz budu mit mutable obdelnik s metodami setSideA a setSideB, ocekavam, ze kdyz zavolam setSideA, strana B se nezmeni, to je, rekl bych, pomerne dost ocekavana vlastnost. Jinak by treba neplatila posloupnost

Právě jste tu krásně ilustroval chybné myšlenkové pochody. Vy nemáte co očekávat to, co očekáváte, neboť to z ničeho nevyplývá! Vy máte očekávat jen to, že setSideA nastaví stranu A. O straně B se nic netvrdí, takže v souvislosti s setSideA nemáte o ní co očekávat. O straně B si jen chybně domýšlíte něco, co nikde není řečeno.

Bez urážky, ale tipuji, že matematika není vaším šálkem kávy. A toto je krásná demonstrace vhodnosti matematického vzdělání a matematického myšlení u programátorů, protože každého, kdo byl zmasírován matematikou, vaše "očekávání" nutně okamžitě udeří do očí, jelikož jde o typickou začátečnickou (resp. "zdravo-lidsko-rozumovou") chybu záměny implikace a ekvivalence.

Prosil bych nejaky odkaz. Jestlize zmena strany u obdelnika *obecne* znamena, ze se druhy rozmer necha jak byl (a to je zcela rozumne ocekavani), proc by to u ctverce (ktery je take obdelnikem, kdyz jsme to takhle "chytre" nadefinovali) melo byt jinak.

To neřeš. Tohle je očividně porušení kontraktu. Ať už někde popsaného ve specce, definovaného testy nebo očekávaného.

1272
Vývoj / Re:Dědičnost dnes
« kdy: 20. 01. 2017, 11:07:02 »
Kdyz budu mit mutable obdelnik s metodami setSideA a setSideB, ocekavam, ze kdyz zavolam setSideA, strana B se nezmeni, to je, rekl bych, pomerne dost ocekavana vlastnost. Jinak by treba neplatila posloupnost

Právě jste tu krásně ilustroval chybné myšlenkové pochody. Vy nemáte co očekávat to, co očekáváte, neboť to z ničeho nevyplývá! Vy máte očekávat jen to, že setSideA nastaví stranu A. O straně B se nic netvrdí, takže v souvislosti s setSideA nemáte o ní co očekávat. O straně B si jen chybně domýšlíte něco, co nikde není řečeno.

Bez urážky, ale tipuji, že matematika není vaším šálkem kávy. A toto je krásná demonstrace vhodnosti matematického vzdělání a matematického myšlení u programátorů, protože každého, kdo byl zmasírován matematikou, vaše "očekávání" nutně okamžitě udeří do očí, jelikož jde o typickou začátečnickou (resp. "zdravo-lidsko-rozumovou") chybu záměny implikace a ekvivalence.

Ale no tak. Kód se píše pro lidi a pokud setA má neočekávané vedlejší efekty na b a odpálí navíc jaderné hlavice, je to očividně špatný návrh.

Že takové omezení neplyne z nějaké matematické představy, co máš, je jedno.

Naopak pokud se člověk chce matematikou inspirovat, tak se celé téhle opičárně raději vyhne úplně.

1273
Odkladiště / Re:Židle vhodná pro programátora
« kdy: 20. 01. 2017, 10:39:23 »
tak napr. kolegami, moze ti na nej sediet hocikto, rozladit ju. hrat sa s nou

Aha. Asi špatná fabrika ;-)

1274
Odkladiště / Re:Židle vhodná pro programátora
« kdy: 20. 01. 2017, 10:30:01 »
a pracujes z domu alebo v kancli vo firme? nie, ze by to bolo dolezite, ale obavam sa, ze ci v kancli by mala ta stolicku dlhu zivotnost :)

Měl jsem ji tam i tam.
Čím by se to mělo v kanclu lišit?

1275
Odkladiště / Re:Židle vhodná pro programátora
« kdy: 20. 01. 2017, 10:16:05 »
Therapii složenou na míru (volíš si velikosti a tvary sedáku, područek, opěrek a dost dalších věcí).

Ale jako radu to neber. Než jsem si vybral, tak jsem dost dlouho "vybíral zadkem". Seděl jsem na dost židlích v několika showroomech, než jsem volil - a to mohu jako postup doporučit i ostatním.
kolko si za nu dal?

Už nevím přesně, mám ji určitě přes pět let. Ale myslím, že to bylo něco kolem dvaceti. Říkal jsem si něco jako "půlka notebooku" ;-)

Stran: 1 ... 83 84 [85] 86 87 ... 177