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 ... 162 163 [164] 165 166 ... 618
2446
Bazar / Re:Koupím PowerMac G5 (2x CPU)
« kdy: 03. 05. 2017, 11:21:15 »
Zalíbil se mi design skříně a podle mě by měl mít dost výkonu i na dnešní dobu (když nebudu mít otevřeno milion tabů s fejsbůkem a podobnýma JS věcma).
Problém je hlavně s tím, že na něm rozjedeš jenom hodně historický MacOS a tímpádem nebudeš mít ani aktuální aplikace. S nějakým Linuxem by ale normálně použitelný být mohl, akorát to je opravdu velký, těžký, hlučný a má velkou spořebu, což ti ale asi nevadí :)

To nadšení pro tu skříň chápu, je fakt pěkná.

2447
Vývoj / Re:Erlang
« kdy: 03. 05. 2017, 10:38:11 »
Ještě malá poznámka, jestli to z výš napsanýho nebylo jasný:

Díky těmhle vlastnostem může být i daleko jednodušší GC - nemůžou tam z principu vzniknout kruhové odkazy
...čímžpádem v Erlangu není ani žádný "stop the world", což taky soft-realtimovosti pomáhá.

2448
Vývoj / Re:Erlang
« kdy: 03. 05. 2017, 10:35:29 »
Myslel jsem: vlákna a IO... vždyť to má být soft real time... :D
Ajo :)

U Erlangu jsou to čtyři koncepty: 1. leightweight procesy (uvnitř VM, s vlastním user-space plánovačem) 2. žádný sdílený stav mezi nimi (kromě databáze) 3. striktně imutabilní struktury 4. komunikace mezi procesy je striktně asynchronní (pokud chci synchronní, zařídím si to protokolem nad tím)

Teprve tohle všechno dohromady dělá to, že je obsluha událostí v Erlangu taková pohoda. Nemusíš totiž řešit žádné zámky, nemusíš řešit, jaká data můžeš předat komu atd. Obvykle můžeš klidně pro vyřízení každého requestu spustit samostatný proces, v něm si všechno pořešíš v klidu synchronně, aniž by tě jiný vlákna jakkoli rušily, a výsledek pošleš kamkoli (klidně na víc míst) formou imutabilních dat. Díky těmhle vlastnostem může být i daleko jednodušší GC - nemůžou tam z principu vzniknout kruhové odkazy a spousta dat je jenom na stacku procesu, který se se skončením procesu prostě zahodí, GC se moc nemusí šťourat někde uvnitř a řešit nějaké složitosti.

Mapování interních procesů na vlákna OS se pak dělá stejně jako v jakémkoli jiném moderním runtimu - spustí se tolik vláken, kolik je (virtuálních) jader a procesy se na ně mapují podle toho, kdo má zrovna čas. Žádná velká věda ;) Z pohledu programátora tak vznikne plně konkurentní systém se slušnou latencí (sice probabilistickou, ale slušnou).

2449
Studium a uplatnění / Re:Kde studovat umělou inteligenci?
« kdy: 03. 05. 2017, 08:39:11 »
V brne se da inteligence taky studovat
V Brně studují inteligenci jenom přespolní. Brňáci se všichni rodí inteligentní.

2450
Vývoj / Re:Erlang
« kdy: 03. 05. 2017, 08:28:24 »
Dovolím si nesouhlasit - to, že je něco immutable, neznamená, že se to nemůže objevit někde jinde a není třeba ověřit identitu, jinak řečeno s nemutovatelností to nemá co dělat. Jediným problémem je, zda v Erlangu existují struktury s identitou (Erlang neznám).
Proto jsem nenapsal, že to "nejde" (ani teoreticky), ale že to "moc [resp. vůbec] nedává smysl". Erlang má (narozdíl od Scaly např.) data opravdu striktně imutabilní (nelze je změnit žádným způsobem, ani nějak výjimečně) a tímpádem tam žádné kopírování dat ani nikde neexistuje (není jak ho provést), čili není co ověřovat - "kopie dat někam jinam" se dělá tak, že se tam ta data prostě předají. Jestli je runtime fyzicky zkopíruje nebo jenom předá odkaz, programátor vůbec neví a neřeší, protože na sémantiku programu to nemá žádný vliv.

Jediná situace, kde bych si to se všema očima zavřenýma uměl představit, by byly mapy:
Kód: [Vybrat]
iex(1)> a = %{a: 1}
%{a: 1}
iex(2)> b = %{a: 1}
%{a: 1}
iex(3)> a = a |> Map.put(:b,2)
%{a: 1, b: 2}
iex(4)> b = b |> Map.put(:b,2)
%{a: 1, b: 2}
iex(5)> a =?= b
???
Takový operátor ale neexistuje, protože ho nikdo k ničemu nepotřebuje ;)

2451
Vývoj / Re:Erlang
« kdy: 02. 05. 2017, 22:50:40 »
Divím se, že tu ještě nikdo nezmínil Erlang... kdo ví, jak to ten starej lišák dělá...
Co? Porovnání? V tom Erlang není zajímavý - má taky dva operátory, taky jeden pro porovnání "nezávisle na typu" (1.0==1 -> true) a jeden "přesný" (1.0 =:= 1 -> false), ale oba jsou definované rozumně a předvídatelně, oba jsou použitelné a používané.

Navíc, Erlang má jednodušší situaci, protože má jenom immutable struktury, takže tam moc nedává smysl porovnávat identitu. Porovnávají se jenom hodnoty.

Možná by nás tady leda mohlo zajímat tohle:
Citace
When comparing an integer to a float, the term with the lesser precision is converted into the type of the other term, unless the operator is one of =:= or =/=. A float is more precise than an integer until all significant figures of the float are to the left of the decimal point. This happens when the float is larger/smaller than +/-9007199254740992.0. The conversion strategy is changed depending on the size of the float because otherwise comparison of large floats and integers would lose their transitivity.
http://erlang.org/doc/reference_manual/expressions.html

2452
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 15:17:20 »
tady se jasně píše, že se boolean objekt nemá používat.
...a jsme opět u toho...
A pokud chci ... tak musím ... . Ale je potřeba vědět, že ... a ... . Pochopitelně jenom v případě že ... . Což ví všichni, kdo nejsou ignoranti.

2453
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 15:14:51 »
Mno je to rekneme nestastne a ze to je podobne nestastne v Jave moc dobra omluva neni...
V javě to ale afaik takhle nešťastné není, tam == porovnává identity, .equal(x) hodnoty (a dá se překrýt) a u obojího jsou dodržena (nebo mají být dodržena) pravidla relace ekvivalence, takže žádný problém není, ne?

Srovnání s == pro String v javě je dost mimo mísu imho.

2454
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:44:40 »
ještě jednou. pro kterou hodnotu x tohle platí?
Nepsal jsem, že x je hodnota. x je výraz.

2455
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:42:33 »
negace objektu je false. Nic to neunboxuje.
Tak pořád ještě můžeme být rádi, že to není třeba 3, že :)

Je potřeba mít k životu optimistický přístup! :))

2456
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:37:21 »
Podle me jsi to nepochopil ty, == porovnává reference
A === porovnává identity.

Čili, jak každý ne-blb ví, platí to, co jsem napsal, pro oba :)

2457
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:34:50 »
Zdejsi garda nechce pochopit ze == se proste chova jinak nad objekty a jinak nad primitives.
Ty jsi takový blb, že ani nevíš, že se tak chová i ===?

Proč se vyjadřuješ o něčem, o čem nic nevíš?

2458
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:26:07 »
pro kterou hodnotu tohle platí?
Pokud to nevíš, neznáš JavaScript a tímpádem jsi blb!

2459
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:20:01 »
Nejlepsi je, ze tyhle prasarny (a ano, vim, proc to tak asi je - unboxing boolu operatorem "not"), ale je to jasna prasarna) se budou ted decka ucit na skolach. Takze uz jim to bude pripadat normalni.
Přesně. Jednu generaci programátorů zdegenerovalo C++, tak je na čase druhou zdegenerovat JavaScriptem.

2460
Vývoj / Re:Node.js a multiplexed IO obecně
« kdy: 02. 05. 2017, 14:10:07 »
Nedávají (opět) smysl kvůli vaší neznalosti. ;)
Jasný.

Fakt nechápu, že se někdo veřejně chlubí tím, že je blb. Protože pokud kritizuje něco, o čem očividně nemá ani páru, tak jinak nazvat nejde.
Jistě. Kdo nechápe, že
Citace
(x == x) !=  (!x == !x)
je nade vší pochybnost blb.

Stran: 1 ... 162 163 [164] 165 166 ... 618