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

Stran: 1 ... 12 13 [14] 15 16 ... 26
196
Hardware / Re:Doporučte UPS se síťovým rozhraním
« kdy: 05. 04. 2020, 17:02:23 »
Před pár lety jsem také potřeboval UPSku na servery do racku. Z UK přišla jetá Dell K802N 2700W od repasovací firmy, která na ni dala měsíční záruku (tj. aspoň ji otestovala). Samozřejmě doprava bez baterek, ty je lepší nové lokálně, za 500Kč kus poměrně kvalitní. Celkem 4k UPSka + 8 * 500 = 4k baterky, od té doby šlape bez přestávky, občas proud vypnou, takže se testuje. Samozřejmě NUT, ostatní servery v racku po síti jako slave, nezapomenout zálohovat i síťový switch racku :-)

197
Vývoj / Re:Dalsi, UZ POSLEDNI KIKS V PYTHONU
« kdy: 01. 04. 2020, 11:14:33 »
Pokud to nebyl pluralis majestatis, pište sám za sebe. Spousta věcí, co píšete, nemá nic společného s tím, co je programátory v Javě obecně přijímané.

Tak nějak

198
Hardware / Re:HDD rack box/enclosure
« kdy: 27. 03. 2020, 13:12:01 »
K serveru do SW raidu přes USB3?

199
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 25. 03. 2020, 09:01:36 »
Z mého pohledu si ten kód pro distinct v JS a hack se sum řešící flatMap v pythonu nemají co vyčítat, obojí je maximálně nepřehledné.

Mimochodem stačí se podívat, jaký je výkon toho hacku se sum https://stackoverflow.com/a/45323085

Funkce, která u jednoúrovňového číselného seznamu vrátí jedno číslo (jejich součet), u jednoúrovňového nečíselného seznamu hodí chybu, u víceúrovňového s libovolnými hodnotami sníží level o jeden, to opravdu nepovažuji za bezpečného kandidáta pro flatMap. Obzvláště když pythonní proměnná akceptuje cokoliv.

200
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 24. 03. 2020, 22:51:06 »
K čemu je tam ta sčítací lambda či ta sum?

201
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 24. 03. 2020, 17:27:13 »
Tenhle hnus je nějaká forma unique nebo distinct?

.filter((num, index, nums) => nums.indexOf(num) == index)

202
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 19. 03. 2020, 13:01:16 »
Ono vytvářet každý půl rok nový jazyk bez zátěže minulosti je sice hezké, ale v praxi se tyto jazyky jaksi neuchytí.

A komu to vadí? Nový projekt nadšenci vytvoří v aktuálně největším hype jazyce/frameworku, který zrovna "frčí". Přece se nebudou prasit s takovou vykopávkou, jako je typová kontrola a kompilátor. Co na tom, že za pár let bude muset investor takového "moderního řešení" draze zaplatit přepis do něčeho dlouhodobě udržitelného a spravovatelného. Peníze shrábli, tak nazdar a jdou "radit" zase někomu dalšímu, méně znalému, kdo jim v dobré víře v jejich zkušenosti a profesionalitu zase dá volnou ruku.

203
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 19. 03. 2020, 08:42:46 »
Přesně tak. Např. var, aktuální preview featury pro JDK14  instanceof s proměnnou a recordy (typované tuples).

204
Desktop / Re:Raspberry Pi 4 a dvě desktopová sezení naráz
« kdy: 12. 03. 2020, 10:37:51 »
VNC může mít vlastní headless xserver, takže běží úplně odděleně od xserveru lokálního uživatele. Nevím, zda to nedělá nějaké blbosti v dbusu atd.

205
Bazar / Re:Prodám 17" monitor HP L1950, VGA, DVI, USB hub
« kdy: 11. 03. 2020, 21:22:37 »
17" nebo L1950?

206
Hardware / Re:USB-C PD nabíječka >65W
« kdy: 11. 03. 2020, 20:07:24 »
Já to nekritizuji, jenom mě zaujalo, jak i zdánlivě jednoduchá věc je ve skutečnosti složitá a co vše vyžaduje za opatření, aby to celé fungovalo.

207
Hardware / Re:USB-C PD nabíječka >65W
« kdy: 11. 03. 2020, 11:57:05 »
Pro vyšší přenášené výkony je potřeba mít tagované kabely, které o sobě aktivně prohlašují, že jsou dostatečně dimenzované pro takový výkon.

Zajímavé, jak i tak triviální věc, jako kus drátu, musí obsahovat složitou elektroniku, aby fungoval spolehlivě i pro každou babičku v consumer segmentu. Nic není jednoduché, jak by se na první pohled zdálo :-)

208
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 20:45:45 »
tak ukaz, jak bys tu zanorenou strukturu z te tve funkce append definoval v Jave. Ja jen nastinil, jak by to slo idiomaticky. Sebeodkazujici typova definice narozdil od Javy v pythonu je mozna.

Už to tu zaznělo, samostatnými generifikovanými metodami nějakého generického předka komponenty pro kolekci komponent, mapu <klíč, komponenta> a jiné komponenty. Ty složené metody by normálně kolekci i mapu proiterovaly a zavolaly tu jednoduchou append. Iterování je v defaultní idee o napsání iter + tabulátor, rovnou se vygeneruje celá smyčka se správnými typy a ručně se napíše jen její tělo. Idea si bude stěžovat, že jsem nepoužil foreach (pokud není ten hint vypnutý), ale to vypnu jednoduchou anotací (šipka vpravo a šipka nahoru), protože pouhý foreach přes streamy (tedy funkcionálně) má špatný výkon oproti normálnímu for component in components.

Ano, kód bude delší, ale na první pohled je úplně jasný, co dělá. Nevidím důvod, proč by měl do jednoho parametru rvát kolekci, mapu nebo komponentu, když parametr každé z metod má mít jiný název (components, componentsByKey, component).

Citace
kwargs a args je standardni nazev, jiny by byl proti konvencim.

Jasně, myslel jsem nesprávný název proměnné/metody/parametru, ne tohle. Jasně že musíš použít tyhle dva názvy, aby bylo všem jasné, že metoda umí spoustu věcí a mají si dát sakra bacha, jestli podporuje zrovna ten datový typ, který by oni rádi předali.

209
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 20:05:07 »
Java (C#, C++): vubec to nejde zkompilovat, coz indickeho kolegu donuti, aby S_Vindaloo splnovalo potrebne interface, pak vsecko funguje.

to muze velice snadno vynucovat CI.

Proč by měl čekat až na CI, když v IDE zmáčkne jednu klávesovou zkratku (v Idee Ctrl+I - Implement methods), ze seznamu nabídnutých metod si vybere ty, které bude konkrétní level dědičnosti implementovat, a do vygenerovaným předpisů dopíše těla. Pokud jde o koncovou (již neabstraktní) třídu, dá implementovat všechny. A z hlediska datových typů má 100% jistotu, že je vše v pořádku.

Když bude chtít přetížit již implementovanou metodu, dá Ctrl+O (Override) a opět dostane kompletní předpis se správnými konkrétními parametry pro daná generika, se správnou anotací a ještě mu to předvyplní volání předka, které se v přetížených metodách obvykle vyskytuje. Nikoho nepálí, že jsou v parametrech dlouhé typy nebo že je to ukecané, když on z těch "nevýkonných" textů takřka nic nepíše. Ale bez nich by kompilátor a hlavně IDE nemělo možnost držet projekt pod kontrolou. Jako je tomu v pycharmu, když dám přejmenovat metodu a ono mi to přejmenuje i volání metod u jiných tříd, které jsem vůbec neměnil, protože nemá víc než tupý fulltext (+ zde zatracované typehinty, které samozřejmě v pythonu používám, aby mi z toho úplně nehráblo).

210
Vývoj / Re:Doporučte programovací jazyk pro Windows
« kdy: 10. 03. 2020, 19:40:45 »
Java (C#, C++): vubec to nejde zkompilovat, coz indickeho kolegu donuti, aby S_Vindaloo splnovalo potrebne interface, pak vsecko funguje.

Indický kolega samozřejmě nepíše javu ve vimu, takže na dvě kliknutí řekne IDE, aby mu vygenerovalo předpisy metod, které má z generického řešení implementovat, již s jejich konkrétními datovými typy. Pak jen dopíše těch pár řádků, kterými se jeho konkrétní implementace odlišuje v rámci generického designu. A je úplně jedno, že se mu při tom na úvod automaticky přidalo deset importů a že výsledná třída má 50 řádek, když on napsal řádky čtyři. Není blázen, aby scrolloval zdrojákem, když od toho má navigaci mezi voláními, skoky na definice/deklarace. Je celkem jedno, jak dlouhé jsou typy parametrů metod či proměnných, když nic z toho nikdy nenapíše, protože to IDE vytvoří rovnou za něj a vždy správně , má to jen jednu variantu (příp. si zvolí, kterého vhodného předka/úroveň zobecnění chce použít).  Kolega jen píše příkaz a pak zadá název proměnné, pokud se mu žádný z nabízených názvů nelíbí (obvykle hned ten první je logický a správný).

Inkrementálně označí funkční blok klávesovou zkratkou a na jednu kombinaci nechá IDE vygenerovat metodu se všemi parametry - má garantované, že taková operace bude vždy fungovat správně. Jen si třeba triviálně změní pořadí parametrů, aby to sedělo zavedené štábní kultuře projektu. Nemusí se obávat, že by se změna neprovedla v jakékoliv volání metody, i kdyby to bylo ve sto různých třídách, je to úplně jedno. A bude se pokud možno vyhýbat více parametrům stejného typu vedle sebe, právě aby se vyhnul chybě přehození parametrů stejného typu, až tu metodu bude volat na jiném místě ručně. Až bude java umět hodnotové typy (projekt valhalla), bude šance podstatně menší, protože i základní typy bude mít označený jejich významem a nebude je možné míchat.

A nebo bude používat args a kwargs a šedivět, co se zase kde rozsypalo. Ba ne, nebude, to to raději nechá načuněné ve špagetě (protože první verze kódu není nikdy optimální) nebo s nesmyslným názvem (protože se během psaní metody význam té proměnné trochu změnil, opět zcela normální). A kdo  říká, že takové změny ve svém kódu (obzvláště prvních verzích) provádět nepotřebuje, buď nic většího neprogramuje, nebo produkuje čuňárny. To mi nikdo nevymluví, viděl jsem to mnohokrát.

Můj názor na python ve velkých firmách je takový, že začali ve startupu v malém, logicky v pythonu a pak už neměli prostor to přepsat do něčeho, co jim v projektu dokáže udržet pořádek. Proto třeba mypy pochází z dropboxu https://blogs.dropbox.com/tech/tag/mypy/

===
At our scale—millions of lines of Python—the dynamic typing in Python made code needlessly hard to understand and started to seriously impact productivity. To mitigate this, we have been gradually migrating our code to static type checking using mypy,
===

Stran: 1 ... 12 13 [14] 15 16 ... 26