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 - Mirek Prýmek

Stran: 1 ... 296 297 [298] 299 300 ... 618
4456
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 12:32:26 »
Aby nedošlo k nedorozumění ve speciálních případech je to vhodné, ale nesmí to být jediná možnost.
To jsme se nějak posunuli od "je to v praxi nepoužitelné" ;)

Metodologicko-logická poznámka: pokud chci o algoritmech něco tvrdit, tak mi každé pevné omezení zjednodušuje situaci. Pokud je nějaké omezení jenom možnost, jsem ve stejně obtížné situaci, jako bych ho neměl vůbec. A paralelizovatelnost není nic jiného než zakuklené tvrzení o algoritmu. Nejobtížněji by se paralelizoval program v assebleru, kde nemám omezení vůbec žádná.

Konkrétní příklad:

Kód: [Vybrat]
1: var x=Y;
2: f(x);
3: ...
Co můžu tvrdit?

pure FP: vím jistě, že řádek 2 můžu vypustit

volnější FP: vím jistě, že na řádku 3 platí x=Y úplně stejně jako před voláním f

Python: vím jistě, že x=Y, pokud je Y primitivní typ. Jinak nevím nic.

Stejně tak např. u FP vím, že můžu v algoritmu nahradit f(x) výrazem f(Y). V jiných jazycích to s jistotou nevím.

4457
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 12:09:04 »
Koncept stringů vykazuje stejné nedokonalosti, při intenzivních změnách se masivně kopíruje.
Nedokonalost v jednom konkrétním způsobu užití neimplikuje nepoužitelnost.

4458
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 11:50:04 »
Předávání odkazu na instanci nevadí, odkaz zanikne se zánikem instance kam jsme odkaz předali, globální proměnná není = nemáme problém.
Neříkal jsem, že to vadí. Byl to příklad, jak vpašovat mutabilitu do formálně imutabilní položky (stejně jako to funguje u immutable arrays, jak říkal PT).

Bohužel immutabilita není použitelná pro reálné projekty, z důvodu současného hardware. Problematika blokování a zámků souvisí právě s nemožností realizovat koncept immutable v praxi.
String v Javě je v praxi nepoužitelný?!

A bez immutable pravděpodobně nelze ve FP vůbec realizovat paralelizaci.
Platí silnější tvrzení: Bez immutability není žádné FP.

4459
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 11:04:22 »
Nakonec to vyšlo najevo - jedna větev OOP (přesněji Java-OOP) programátorů, když napíšou "immutable list", tak tím myslí to, že do toho seznamu se nedají přidávat a ubírat prvky, ne, že jsou immutable i položky seznamu (samozřejmě rekurzivně). Prostě jiný svět, stejné slovo s odlišným významem :-)
Jojo, tohle je i v pythonu - např. volá se odkazem, ten nemůžu změnit, ale můžu změnit stav toho objektu. Takže pokud potřebuju změnit parametr, stačí prostě použít singleton. Imutabilita jak řemen :)

4460
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 10:24:09 »
Masivní paralelizaci brání užívání konceptu globálních a statických proměnných. OOP s tím nesouvisí. Jakmile v projektu zlikvidujete globální/statické proměnné, masivní paralelizaci nestojí nic v cestě a to s i bez OOP.
Nejen. Ještě důležitější je imutabilita. Jestliže v OOP někam předám odkaz na objekt, tak už si nikdy nemůžu být jistý, že si ho neuložil a nehrábne do něj ve chvíli, kdy se mi to nebude hodit. Můžu samozřejmě projít kód a podívat se, jestli si odkaz ukládá, ale znamená to zanořit se do stromu volání tak hluboko, jak hluboko se odkaz předává. A výsledek tohodle zkoumání bude platit jenom do první úpravy kódu. U FP tohle neexistuje.

Další věc je, že u FP můžu předávat libovolnou část stavu. Např. (tohle je jenom ilustrace, nechytejte mě za slovo prosím) mám stav o deseti položkých, jedna z nich je pole. Když chci ke všem položkám v poli přičíst jedničku, udělám to v FP mapem a jsem si stoprocentně jistej, že je to paralelizovatelné. V OOP budu nejspíš provádět nějakou operaci nad celým objektem, takže to paralelizovatelné (automaticky) není. Jasně, i v OOP to můžu udělat stylem getPole, map, setPole, ale bude to porušení zásad OOP a tímpádem to většina lidí tak neudělá a ten, kdo to udělá, bude čelit výhradám kolegů, že neumí OOP. Nebo to celé obalím metodou zvysOJednickuPole, ale tím se pořád dostanu do stejného problému, jenom na jiné úrovni - v tu chvíli bude objekt blokován na jiné operace. To opět v FP není, protože když dělám nějakou operaci na jedné části stavu, můžu s klidem paralelně dělat jinou na jiné části. Zase: jde to udělat i v OOP, ale nevede to k pěknému kódu. Rozdíl je prostě v to, že v FP vždycky jasně vím, jaká operace se dělá s jakou částí dat, v OOP to musím složitě zjišťovat, zamykat, odemykat, prostě napsat nějaký explicitní boilerplate. Čím víc ho je, tím víc je kód nečitelný.

4461
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 00:37:56 »
P.S. když říkám OOP, tak tím myslím "to, co se obvykle OOP nazývá". Jinak totiž Erlang je de facto jeden z nejčistějších skutečně OOP jazyků, jaký existuje ;)

4462
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 18. 01. 2015, 00:29:26 »
Můžete si napsat VM dle libosti, načež se zjistí že to byla opět slepá cesta a budete k tomu chtít JIT a JIT je komplikovaná forma preprocesoru pro imperativní programování :-)
...to ale nijak neodporuje FP. Když mám v Erlangu deset tisíc procesů, tak samozřejmě každej z nich funguje imperativním způsobem (a dokonce je naprogramovanej imperativním způsobem). Nevidím v tom striktní buď - anebo (narozdíl od FP vs. OOP).

Pokud by se FP mělo začít používat, tak proto, co reálně přináší, ne pro to, aby nějaká světlá strana síly porazila temnou, aby zvítězil nějaký superčistý akademický koncept. Přínos FP je hlavně v tom, že ja jasné, jakými cestičkami plynou data, kde je jaké API, co s čím souvisí a tímpádem co může běžet paralelně na druhém konci planety. Narozdíl od OOP, které o izolaci sice hodně mluví, ale ještě nikdo ji nikdy v reálu neviděl.

Napřed musí někdo (konečně) nahlas říci, že OOP skutečně není ta legendární stříbrná kulka řešící všechny problémy IT
Tak oni to všichni FP-programátoři říkají celkem hlasitě, ale zatím jsou považovaní za nerdy mezi nerdy*. Ono se není moc čemu divit, když každá první hodina programování začíná výkladem toho, co je to objekt :)

Celý to je prostě jenom o tom, jestli reálná potřebnost FP někdy převáží nedostatek FP-programátorů. A to se imho rozhodne čistě mimo-IT jevy a procesy :)

* https://plus.google.com/109540561880466469418/posts/UQkQB7DMqQ4

Stejně si ale nedovedu představit, jak bude při funkcionálním programování prováděno pochopení systému, když člověk přijde na novou pracovní pozici a má alespoň to OOP tak si projde třídy v hierarchii a snadno najde ty kusy kódu, které mohou být znovu použity, ale pokud někde "ve vzduchu" visí nějaká funkce která něco dělá, jak se o ní člověk dozví? Tohle je problém i klasických procedurálních neobjektových jazyků. Částečně to samozřejmě řeší moduly, takže asi v F# budou věci v assembly, nevím jestli to má i namespacy, nedíval jsem se, ty by ale situaci taky zlepšily. Ale možná, že ve funcionálním paradigmatu duplikace kódu tolik nevadí, netuším, možná je spíš pozitivní - když se změní funkce na které závisí několik pomyslných stromů volání, tak se musí všechny otestovat, a když by jedna funkce ovlivňovala několik modulů rozdělených mezi jednotlivé týmy, no nevím nevím.
Např. Erlang má moduly, Elixir má navíc i namespacy. Ale v tom bych ten zásadní Rozdíl neviděl. Spíš v organizaci kódu. V FP je to taková fordovská výrobní linka - jasné vstupy a jasné výstupy každé části, jasná větvení a slučování. Oproti tomu v OOP je to často taková pavučina - kdokoli se rozmyslí, šáhne odkudkoli kamkoli. Proto se mluví o tom, že pokud se začne používat opravdová masivní paralelizace, bude FP stát za řeč.

4463
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 17. 01. 2015, 21:17:26 »
Programovací paradigma určují vývojáři hardware a ti z určitých důvodů zvolili paradigma imperativní a přes to nejede vlak.
To je imho nevalidní důvod, protože dneska většina jazyků stejně běží na nějakém virtuálním stroji (třeba zásobníkovém), takže ten skutečný hw pod tím to zas tak přímo neovlivňuje.

Nebo jednodušeji: protipříklad: SQL.

Zřejmě se ukáže, že stačí do tradičních jazyků zabudovat lambda funkce, map-reduce a podobné vylomeniny a o opravdické funkcionální programování nikdo nestojí.
No já jsem psal: "pokud by došlo k tomu, že by se funkcionální programování stalo opravdu potřebným/chtěným/nejlepším řešením". Je to hypotetická otázka. (nehádám se s tebou, dost možná budeš mít pravdu, jenom odpovídáš na něco jiného, než jsem se ptal)

4464
Odkladiště / Re:Buducnost informatiky za 5-10 rokov
« kdy: 17. 01. 2015, 19:47:26 »
Smrt funkcionálního programování
Rozumím tomu, co chceš říct a jaké jsou k tomu podle tebe důvody. Ale: pokud by došlo k tomu, že by se funkcionální programování stalo opravdu potřebným/chtěným/nejlepším řešením (ať už potřeba masivní paralelizace nebo cokoli jinýho), proč by nemohlo dojít k tomu, že se stávající nebo noví programátoři na FP prostě nepřeškolí. Co tomu brání? Je FP příliš intelektuálně náročné? Zas tak strašný to není, ne? Zvlášť pokud by se objevila nová generace programátorů, kteří by FP používali prakticky od začátku, takže by nemuseli projít tak bolestným mindtwistem...

4465
Software / Re:MRTG - přesměrovaní ukládaní dat
« kdy: 13. 01. 2015, 22:05:22 »
Sehnal jsem 1 GB flash a pak symlink.
Jestli myslis normalni usb flashku, tak ta ti odejde hodne rychle. Jestli o data nechces prijit, tak by mozna stalo za zvazeni je treba jenom obcas na flashku prehrat treba pomoci rsync (predpokladam, ze rrd soubory nebudou porad otevrene, takze to takhle pujde udelat). Nejake riziko ztraty dat tam porad bude, ale mensi.

Idealni by samozrejme bylo data odesilat nekam uplne jinam, pres net.

4466
Software / Re:MRTG - přesměrovaní ukládaní dat
« kdy: 11. 01. 2015, 23:08:56 »
Dá se přesměrovat celý adresař ale pak to nefunguje jelikož i WWW stranky jsou jinde.
No já jsem to psal: je potřeba se podívat, kam data ukládá a pak ty věci, které se mění, přes symlink ukládat jinam. Symlink se nemusí použít na celý adresář, ale třeba na nějakou jeho část - prostě jenom na  to, co je potřeba ukládat jinam.

4467
Software / Re:MRTG - přesměrovaní ukládaní dat
« kdy: 11. 01. 2015, 20:03:17 »
Jak však ty ukládané data tam přesměrovat?
Buď jde adresář v konfiguraci mrtg nastavit (je potřeba projít manuál), nebo pokud nejde, tak nejjednodušeji použít symbolický link. Prvně je potřeba zjistit, kam mrtg data ukládá - bude to nejspíš někde ve /var, řekněme, že to je třeba /var/db/mrtg, potom původní adresář smazat a vytvořit místo něj symlink na ramdisk, nějak takhle:

Kód: [Vybrat]
rm -rf /var/db/mrtg
ln -s /home/pi/ramdisk /var/db/mrtg

4468
Donutí ho to tlačit na svou vládu a na duchovní, aby tlačili na vládu a duchovní netoleratního státu, blokujícího vzájemné porozumění. Tím si každé náboženství srovná vlastní fanatiky a bude vystaráno.
Jasně a ty bys pro změnu mohl zatlačit na naši vládu, aby Amíci zrušili Guantanámo. Nebo aby Lichtenštejnsko přestalo krýt zloděje.

Good luck :)

4469
Já vím, že to je v Bibli. Ale plno příběhů z Bible se reálně nestalo, nebo stalo jinak. Právě to vraždění kojenců. Nebo si jako myslíš, že všechno co stojí v Bibli je 100% svatá pravda?
O to vůbec nejde. Pointa je v tom, že Korán se nijak zvlášť neliší od jiných svatých knih jiných náboženství. A jestli se něčím liší, tak spíš v pozitivním slova smyslu, protože nic o vraždění kojenců jsem tam nenašel :)

4470
Studium a uplatnění / Re:Začít znovu v IT
« kdy: 11. 01. 2015, 19:09:34 »
Jsou tam i absolventi za 50, takže asi bys neměl mít problém.
Ok, tak až se tady někdo zas bude někdo ptát, kam jít, tak ho tam aspoň můžeme nasměrovat :) Dík za info.

Stran: 1 ... 296 297 [298] 299 300 ... 618