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 - Ink

Stran: 1 ... 19 20 [21] 22 23
301
Distribuce / Re:CentOS nebo Ubuntu
« kdy: 18. 05. 2019, 13:12:04 »
Jako je potreba umet oboji, nebot jsou aplikace, ktery jsou odladeny/certifikovany pro jedno, tak i pro druhy. Volba OS na kazdy konkretni nasazeni se vybira podle toho, co na tom nakonec pojede. Jinak bych do hromadky co se naucit jeste pridal Alpine Linux, kvuli kontejnerum

No hlavně je potřeba se ne něco slepě naučit, ale ideálně pochopit principy. Na těch konkrétních distribucích vědět, co je jinak a zhruba proč a co je stejně a proč to funguje, jak to funguje.

302
Distribuce / Re:CentOS nebo Ubuntu
« kdy: 18. 05. 2019, 07:43:09 »
Poradit lze tedy to, aby jste pracoval
Taky lze mozna poradit, abyste ze sebe nedelal neco, cim nejste, a radsi v klidu mluvil tak, jak vam zobak narost', nez se krecovite snazil pouzivat jazykovou vrstvu, ktera vam neni vlastni :)

S "obecnú češtinú" je potíž, lebo néni zas tak obecná. Od teho je tá spisovná, aby všeci rozuměli.

303
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 17:18:29 »
Předpokládám, že budete argumentovat i tím, že žádný soudný Python programátor by nenapsal třídu Integer bez toho přetíženého operátoru. Jenže stejně tak by žádný soudný programátor v Javě neporovnával objekty pomocí ==, když chce porovnávat hodnoty.

Žádný soudný programátor v Pythonu tohle implementovat nemusí, protože Python umí libovolně velký integer vytvořit a příčetně porovnávat s jiným integerem. A samozřejmě pokud by to dělal a neimplementoval základní operace, bylo by to ... divné. Zbytek jsou debaty o ... zlatém šálku ... a to, s prominutím, nemám zapotřebí.

304
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 16:45:59 »
Presne :) A v dalsim zduvodneni vyslovene pisou ze zamer je aby sly boxovane hodnoty co nejvic porovnavat operatorem ==. Akorat se jim to zdalo moc narocne, tak dle normy staci jen cast oboru hodnot takhle porovnat.. .. mi to prijde jako docela komedie teda...

Řád zlatého šálku v akci. Když jsem psal ten úvodní vstup, chtěl jsem si text zcenzurovat jako příliš tvrdý.

305
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 15:38:43 »
Že neprogramátorům vadí chování operátoru == je mi celkem jedno, moc nechápu, proč to řeší. Že to kritizují jenom u Javy, i když úplně stejně to má C, C++, JavaScript, Python a mnoho dalších jazyků (přičemž jen některé umožňují operátor přetížit), to jenom ilustruje úroveň znalostí.

Teď jsem to celé pochopil, naše nedorozumění spočívalo v tom, že já jsem pojem programátor chápal v nějakém smyslu a Ty v jiném (programátor = spokojený javista). Tudíž nemá smysl se o to dál hádat, neb coby člověk, kterého živí hlavně Python (a předtím C++ a C), nemůžu účinně argumentovat.

Akorát bazíruju na tom, že s tím Pythonem jsi nadále mimo. Rozvádět spor do dalších jazyků nemá smysl, akorát dodám, že JavaScriptem bych se fakt neoháněl, protože to je bastl z definice (už jenom ta jejich vnitřní reprezentace čísel - tfuj!).

306
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 13:23:34 »
No ale to je rozdíl. Na identitu má "is", což sémanticky přesně sedí a porovnávání operátorem == (pokud to jenom trošku jde) skutečně dělá co má. Zrovna tak tomu je i u < apod. Žádné compareTo() a podobná zvěrstva se nekonají.

defaultne == dela to stejne co is.

A v čem se mnou nesouhlasíš?

307
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 12:28:21 »
Python 3 je zrovna příklad toho, jak problematické je to rozbití zpětné kompatibility – teprve teď se reálně daří zbavovat Pythonu 2. Perl na tohle rozbití zpětné kompatibility dokonce prakticky umřel, resp. odešel do zapomnění – dříve byla dvojice Perl a Python, která spolu soupeřila, Python spíš Perl doháněl. Dneska o Perlu neslyšíte.

Tohle je zajímavé téma, ale IMO spíš pro psychology a sociology. Zatímco v Pythonu core vývojáři jasně deklarovali, že Python 2 umře a ví se kdy, v Perlu došlo k tomu, že se z jednoho jazyka, už tak lehce obskurního, staly dva, které si vzájemně konkurují. Což přesně odpovídá filosofii Perlu - čím víc možností, tím líp. Python šel cestou největšího možného zjednodušení.

Navíc by mě zajímalo, v čem podle Tebe dělá Python == jako Java. Dělá to stejně jenom u "hloupých" objektů, chytrý objekt si umí říct, jestli jeho vnitřek odpovídá druhému objektu.

Tak si znovu přečtěte, co jsem napsal. Python ve výchozím stavu porovnává identitu objektů, ale je možné operátor přetížit.

No ale to je rozdíl. Na identitu má "is", což sémanticky přesně sedí a porovnávání operátorem == (pokud to jenom trošku jde) skutečně dělá co má. Zrovna tak tomu je i u < apod. Žádné compareTo() a podobná zvěrstva se nekonají.

308
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 10:06:37 »
Každé jedno špatné rozhodnutí, na kterém se trvá, vede k sérii marných snah o nápravu a pak je jako "řešení" nabídnuto vysvětlení, proč to je vlastně v pořádku.

Jistě, ale vzhledem k tomu, kdy Java vznikla, je její návrh ještě poměrně snesitelný.

Tohle je subjektivní, určitě to mohlo být horší a určitě i výrazně lepší (například dodnes kroutím hlavou nad hloupým původním návrhem kolekcí před zavedením generik). Spíš mi vadí ale ta zabedněnost, s jakou se u ní na některých zjevných chybách lpí.

309
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 10:01:06 »
Pokud jste to nepochopil, argumenty vám ještě zopakuju. Problém vašeho teoretického řešení je v tom, že neexistuje jednoznačná hranice mezi tím, co je a není číslo, stejně jako často neexistuje jednoznačná definice toho, co znamená porovnání hodnot.

Obecně sdílená představa o tom, co je číslo, je prokazatelně větší, než to, co Java milostivě umožňuje sčítat pomocí operátoru +. A nemusíme zacházet ani do nějakých specialit, stačí BigInteger, to je číslo z definice.

Přípustné a legitimní jsou samozřejmě oba dva způsoby. Jak ten, který používá třeba C++ – zavedeme do jazyka novou kategorii „číslo“, přesněji „cokoli, co se dá sčítat“ (aniž by ta kategorie nutně musela být ve specifikaci), a umožníme každému programátorovi, aby si do této kategorie zařadil své typy. Výhodou je, že se pak opravdu dá zajistit, že všechna „čísla“ se sčítají pomocí +. Nevýhoda je ta, že se lidé neshodnou na tom, co vše patří pod čísla, takže se pak programátor musí učit další věc, která navíc platí jenom v daném projektu – co jsou a co nejsou čísla. To, že si v C++ vlastně můžu vytvořit svůj vlastní jazyk, který velice stručně popisuje mou třídu problému, je velice silná vlastnost C++ – proto je také tak oblíbené. Zároveň ta vlastně nepřeberná šíře možností, která způsobuje, že už snad nikdo nemůže znát celý jazyk, je silným negativem, pro které se spousta lidí C++ vyhýbá.

Problém Tvého argumentu je, že ty způsoby nejsou dva, ale minimálně tři. Lisp, Haskell a další jazyky už desítky let ukazují, že "operátor" není nic jiného, než (typicky infixová) funkce (jejíž název není alfanumerický/slovní, nýbrž složený ze symbolů) se dvěma argumenty (no, ještě jsou unární a ternární, ale to už je detail). Že je vhodné nechat "operátoru" + význam sčítání, na tom se všichni asi shodnou. V tomto kontextu je zajímavé, že operuješ zrovna C++ a ne alespoň C#, což je jazyk bližší Javě a "přetěžování operátorů" má taky.

Mimochodem, je pozoruhodné, že se to chování, že + sčítá jen primitivní typy a == porovnává primitivní typy podle hodnot a objekty podle referencí, se tu vytýká zrovna Javě, která má tuhle základní sadu pravidel nejmenší z podobných často používaných jazyků. Přitom stejná pravidla platí v C, C++, JavaScriptu nebo Pythonu. V C++ nebo Pythonu ty operátory můžete (ale nemusíte) přetížit. Ale klidně si dál myslete, že C, C++, Javu, JavaScript i Python navrhovali hlupáci, kteří chování operátorů navrhli špatně, a měli se s vámi nejdřív poradit.

Tohle je straw man fallacy. Nikde jsem netvrdil, že nějaký jazyk navrhovali hlupáci. Ale třeba na C++ i Pythonu je vidět, že některá rozhodnutí tvůrci časem přehodnotili, Python se ve verzi 3 vydal dokonce cestou rozbití kompatibility (unicode vs string, zahození "klasických tříd", je toho hodně). Jak jsem psal v předchozím příspěvku - trvat na správnosti nějakého rozhodnutí poté, co se ukáže, že to byla chyba, je prostě kontraproduktivní. Mezitím na javovské platformě vznikly minimálně 4 další jazyky, které se snaží být lepší Javou a to přesto, že se (neochotně a pomalu) Java také vyvíjela.

Navíc by mě zajímalo, v čem podle Tebe dělá Python == jako Java. Dělá to stejně jenom u "hloupých" objektů, chytrý objekt si umí říct, jestli jeho vnitřek odpovídá druhému objektu.

310
Vývoj / Re:Ideálny programovací jazyk
« kdy: 16. 05. 2019, 06:10:11 »
Každé jedno špatné rozhodnutí, na kterém se trvá, vede k sérii marných snah o nápravu a pak je jako "řešení" nabídnuto vysvětlení, proč to je vlastně v pořádku.

Každý programátor, pokud mu někdo v rané fázi vývoje nevymyje hlavičku, očekává a chce, aby se čísla sčítala pomocí + a odčítala pomocí -. Jelikož se někdo, kdo rozhodoval o tom, co v Javě smí být a co nesmí, bál "přetěžování operátorů", má Java čísla, která se sčítají normálně přes + a pak čísla, která používají "add()", protože to "jinak nejde".

Úplně stejné to je s tím == a .equals(). Samozřejmě, že "každý" chce porovnávat dvě hodnoty a ne "identitu", když sáhne po ==. Jenže Řád zlatého šálku si na to vymyslí equals() a když děcko řekne, že císař je nahý, v poklidu děcko obviní z hlouposti nebo neznalosti a odkáže ho k četbě posvátných svitků, kde je jasně uvedeno, že císař je oděn vznešeností, což, jak jistě uznáte, není totéž co nahota.

311
Vývoj / Re:Ideálny programovací jazyk
« kdy: 08. 05. 2019, 09:50:02 »
Každý jazyk má omezenou "ideální oblast", kde bude excelovat, čím dále od ní bude, tím to více dře. Na jedné straně je vysokoúrovňový (v zásadě deklarativní, lidsky srozumitelný) popis problému a na druhé optimalizovaný výpočet blízko konkrétnímu železu. Různé chytré kompilátory a "bezplatné abstrakce" se snaží tu vzdálenost překlenout, ale zatím se nezdá, že by to šlo dokonale.

Ideální programovací prostředí je podle mě takové, které umožní ponechat ten deklarativní popis problému co nejširší a chytře vkládat konkrétní kousky, které řeší tu nízkoúrovňovou optimalizaci, aniž by ohrozily bezpečnost a správnost výpočtu. Z konkrétních jazyků bych řekl, že má správným směrem nakročeno třeba Rust, ale uvidíme, kam se to bude vyvíjet.

312
Odkladiště / Re:Je swapu třeba?
« kdy: 13. 04. 2019, 14:50:33 »
Swap se hodí, jelikož nikdy nevíš, který program se "zblázní" a začne žrát paměť jak zjednaný - typicky to dělají browsery, sice záleží na tom, jak je používáš, ale stejně... Já jsem si kdysi myslel, že když není swap a paměť dochází, přijde OOM killer a sejme Chrome, ale ne, systém chroupá dlouhé minuty a pak člověk raději dá restart. 16 GB RAM je rozumné minimum, žádný velký luxus.

313
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 18:45:01 »
OK, tohle mi smysl dává, dík.

314
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 17:15:13 »
Jo, a jak poznám, kdy mi to odswapuje a kolik to skutečně sežere paměti? Co jsi mi chtěl vlastně sdělit konkrétního?

to nepotrebujete vedet. Ani pri tom "sekvencnim" cteni neznate velikost bufferu.

OK, řešení Kamila P. funguje, 16 GB  soubor to prohrabalo, sežralo cca 4,5 GB RAM a nespadlo to.

315
Software / Re:Nahradenie hex stringu
« kdy: 10. 03. 2019, 16:50:19 »
3. Dovedu si samozřejmě představit, že je OS "chytrý" a dokáže podle potřeby uvolňovat kusy paměti, ale přijde mi to celé proti filosofii a smyslu toho mechanismu. Jednak on nemůže vědět, kam si budu chtít sáhnout hned v další operaci (tudíž se to celé může dost prodražit) a vůbec asi pro rychlou práci nechci takto nedeterministické chování systému.
Smysl mmapu je právě v tom, že k datům přistupujete jako k souvislému bloku paměti, a OS se na pozadí stará o nahrávání příslušných bloků z disku do paměti a opačně o zápis na disk. Je to vlastně podobný mechanismus, jako swap, akorát se na disk zapisují jen změněná data a zapisují se do toho původního souboru.

Jo, a jak poznám, kdy mi to odswapuje a kolik to skutečně sežere paměti? Co jsi mi chtěl vlastně sdělit konkrétního?

Stran: 1 ... 19 20 [21] 22 23