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

Stran: 1 ... 83 84 [85] 86 87 ... 133
1261
Vývoj / Re:Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 19:55:30 »
tak bych řekl, že současný stav je mi milejší :D konzistentnost je fajn, ale ergonomie je pro mě víc - a konzistentnost na ni může mít jak pozitivní tak i negativní vliv

V čem vidíš tu ergonomii?

1262
Vývoj / Re:Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 16:04:47 »
na více než jednom argumentu
Kód: [Vybrat]
f (x:xs) (y:ys) = ...
f _ _ = ...
vs.
Kód: [Vybrat]
f = \a b -> case (a, b) of ...
Rozumím. Takže když by to bylo takto?
Kód: [Vybrat]
f = (x:xs) (y:ys) -> ...

1263
Vývoj / Re:Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 15:25:43 »
ale fakt bych nechtěl muset psát tím druhým způsobem
Proč?
pohodlí - bylo by to delší, ošklivější a pattern matching na více argumentech by byl takový divný

Kód: [Vybrat]
foo x = x + 1
versus
Kód: [Vybrat]
foo = x -> x + 1
Ano, přísně vzato je to o kousek delší.

Kód: [Vybrat]
foo (x:xs) = [(x + 1) : (foo xs)]
versus
Kód: [Vybrat]
foo = (x:xs) -> [(x + 1) : (foo xs)]
pattern matching IMHO pohoda, divnost nevidím - možná ukaž příklad

Co je ošklivější je obávám se otázka zvyku. Mě přijde "ošklivá" ta nekonzistence, že přiřazení hodnoty se děje jinak, než přiřazení funkce.

1264
Vývoj / Re:Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 14:58:40 »
ale fakt bych nechtěl muset psát tím druhým způsobem
Proč?

1265
Vývoj / Re:Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 14:57:43 »
Haskellovsky program je reseni soustavy rovnic. Prava a leva strana rovnice, to je podle me klic k vysvetleni.
Díky.

1266
Vývoj / Syntaxe Haskell funkce
« kdy: 11. 07. 2018, 01:46:40 »
Ahoj.

Mějme funkci (třeba v Haskellu):

Kód: [Vybrat]
foo a = a + 1

Existuje nějaký zajímavý důvod, proč je ten argument před rovnítkem?

Mám totiž takovouto úvahu:
Pokud symbolu přiřazuju hodnotu:
Kód: [Vybrat]
a = 1
b = "text"
c = True
tak v případě funkce přiřazuju lambdu:
Kód: [Vybrat]
foo = \a -> a + 1

Díky za odpovědi.

1267
Vývoj / Re:Kdy je refaktorizace uz hodne?
« kdy: 04. 07. 2018, 20:52:46 »
Nazdar kluci a holky,
Chci slyset vas nazor, kdy je refaktorizace uz hodne? Proc se ptam? Pracuji ve firme uz nekolik let, kde nedavno ku nam nastoupil kolega a strasne ma potrebu neco refaktorovat. I celkem dost starej kod. My si to jako uvedomujem, ze nejaka ta refaktorizace by se hodila, jenomze nekdy nemame na to prostor. Podle me nedelame zly kod, taky si delame codereviews. A ten novy udelal asi pred mesicem takovy refaktor, tak to byla zmena cca. 60 fajlu. A nase nova funkcionalita mela cca 10 souboru, takze kdyz jsme s kolegama delali review, tak misto pulhodky, jsme zabili hodku a pul.

Myslím, že na to nemáš tak úplně správný pohled.

Množství refactoringu je spíše otázka ekonomická. Pokud si ji nemůžete dovolit, tak máte dost velký problém.

Pokud se domníváš, že neděláte zlý kód, tak je otázka, proč kolega chce refaktorovat? Protože se mu nelíbí váš styl? Protože refactoruje pro zábavu? Nebo je ve skutečnosti ten váš kód tak hroznej, že ten refactoring opravdu potřebuje?

A do třetice - vzhedeme k tomu, že vývojáři se účí, tak málokdy bude starý kód dostačující. Takže mě vůbec nepřekvapuje, pokud padesát procent času strávíte refaktoringem.

1268
Vývoj / Re:Komunikace mezi microservices v XML
« kdy: 03. 07. 2018, 02:19:57 »
... kde SOAP je stále štandardom.
Co jiného?

1269
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 02. 07. 2018, 21:33:41 »
Tazatel měl špatně napsaný zápis do souboru, to jsem mu poradil, jak opravit – ten původní kód by fungoval jedině tehdy, kdyby se jedním voláním fwrite() podařilo zapsat všechna data bez chyby. Ve všech ostatních případech by ten kód dělal nesmysly.
Na což se neptal, nesouviselo to s tím na co se ptal, a ani to nijak nepomohlo s jeho problémem. Rada na nic.

Dále jsem tazateli poradil, že až si kód opraví tak, aby opravdu detekoval selhání fwrite(), ať vyzkouší, zda přesnou chybu nezjistí z funkcí posix_get_last_error() nebo error_get_last(). Že to doteď tazatel nevyzkoušel nebo nenapsal výsledek toho pokusu, za to nemůžu.
Což udělal, a podle jeho reakcí soudě vyzkoušel. Že tvrdíš, že to nevyzkoušel, že tvrdíš, že to nenapsal, přestože to má uvedené hned v prvním příspěvku - to už je tvůj problém. A tvá drzost.

A povinnost zkoušet to za tazatele fakt nemám, už tak dostal mnohem lepší rady, než by si svým chováním zasloužil.
Jaký chování? Že není spokojený s radou, která prostě nefunguje? Když by se všichni chovali jako on, tak by bylo krásně na foru.

Víš, problém jsi tu ty, ne ostatní.

1270
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 22:14:12 »
0 jako korektní hodnota je nesmysl, protože vždycky se musí něco zapsat.
Je možné, že nadstavba PHP chování mění, ale standardní POSIXový write může vrátit i nulu jako normální hodnotu – zapsat se nic nemusí. Při nedostatku místa OS vrátí -1 a v errno bude ENOSPC.

Při zápisu do souboru se bude OS snažit zapsat vše, ale nemusí se mu to podařit. O to je to horší, že to bude skoro vždy fungovat, ale pak se někdy „nepochopitelně“ zapíše jen část.

POSIXový write() může vrátit 0 v případě, že velikost zapisovaných dat byla 0. Pokud OS nemůže nic zapsat v případě neprázdných argumentů, má vrátit chybu EAGAIN, aby program mohl počkat přes select() (nebo podobnou funkci) na to, až zápis bude možný. Kdyby vracel 0, tak by to skončilo bez kontroly v busy loop.

To, že PHP si překládá chybu na 0, je jiná věc (nejspíš, aby se dalo snadno testovat v podmínce), ale v zásadě to na věci nic nemění - zapisovat prázdné data je stejně nesmysl.
Jen doplním - Pokud zapíšu alespoň jeden bajt, tak je to v pořádku a můžu zkusit znova. Ale pokud se nepovede zápis ani jednoho, není důvod k optimismu si myslet že v příštím kole to bude lepší. Takže dávám tak dva tři pokusy maximálně.

1271
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 21:39:25 »
Pokud je plnej disk, tak to fwrite() neeviduje jako chybu.
Takže pokračuje v zápisu za konec disku? Nebo co přesně fwrite() vrátí, když je plnýdisk?
[facepalm]


A jako vůbec, von se tu dotyčný táže, jak zjistit že je nějaká chyba, a vy mu radíte, že má blbě algoritmus, kterej nakonec opravíte do ještě horšího stavu. To myslíte vážně?
Ne, ten algoritmus byl špatně a tvrdil, že došlo k chybě, i když to není pravda. Když se bude volat fwrite() v cyklu a testovat, zda se něco zapsalo nebo došlo k chybě, bude to fungovat správně.

Vy už byste se k tomu měl přestat vyjadřovat, když je pro vás nepochopitelný i obyčejný cyklus, nemáte k tomu co říci.
Fakt žeru tyhle lidi s bujnou fantazií.

1272
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 21:34:35 »
Děti ve školce znají věc jako zacyklení. Ty ne?
K zacyklení dojde jedině tehdy, pokud v cyklu není nikdy splněna podmínka, která by cyklus ukončila.

Teda „programátor“, který se bojí používat cykly, protože neumí napsat ukončovací podmínku, to je fakt něco.
To jsi jako sebral kde?


Takže doporučuješ kód, který v případě, že dojde místo na disku, tak se zacyklí?
Z mých komentářů nic takového neplyne. Pokud funkce fwrite() v PHP je implementovaná tak, jak je popsaná v dokumentaci, vrátí v případě zaplnění disku FALSE. I kdyby fungovala jinak a v případě chyby mohla vracet i nulu, pořád se akorát ten test na úspěch funkce upraví tak, zda vrátila hodnotu větší než nula.
No konečně to chápeš. Že se vůbec pouštíš do něčeho, čemu nerozumíš.


Furt lepší, než co navrhuješ ty.
Ne, kód, který občas náhodně nefunguje, není lepší.
Beru na vědomí. Zacyklení je lepší.

1273
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 21:30:45 »
...dojde k chybě, tak cyklus přerušit.
Pokud je plnej disk, tak to fwrite() neeviduje jako chybu.

A jako vůbec, von se tu dotyčný táže, jak zjistit že je nějaká chyba, a vy mu radíte, že má blbě algoritmus, kterej nakonec opravíte do ještě horšího stavu. To myslíte vážně?

1274
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 21:19:57 »
Nemůžeš tu podmínku hodit do cyklu. Musíš testovat, zda návratová hodnota je větší jak 0 - jak píše @kvr kvr, pak teprve můžeš zkusit zapsat znova
Pokus o zápis nemusí zapsat všechna data, takže bežné a správné řešení je v cyklu zapisovat to, co zbývá zapsat, dokud není zapsáno všechno a pokud při zápisu aktuálního "kousku" dojde k chybě, tak cyklus přerušit. Co je na tom k nepochopení?
Nekonečný cyklus.

1275
Vývoj / Re:Zjištění chyby při neúspěchu fwrite()
« kdy: 30. 06. 2018, 21:12:27 »
Nemůžeš tu podmínku hodit do cyklu.
Nízkoúrovňové čtení nebo zápis z/do streamnů (soubory, sokety apod.) vždy může zpracovat menší množství dat, než bylo požadováno, proto se musí opakovat v cyklu. To snad vědí programátoři už ve školce.

Děti ve školce znají věc jako zacyklení. Ty ne?

Musíš testovat, zda návratová hodnota je větší jak 0 - jak píše @kvr kvr, pak teprve můžeš zkusit zapsat znova.
U toho nízkoúrovňového zápisu představuje chybu jen záporná hodnota. Je možné, že PHP to má zařízené tak, aby se vždy zapsal alespoň jeden bajt, a nula také znamená chybu, ale pak je vážná chyba v dokumentaci, že to tam není napsané.
Takže doporučuješ kód, který v případě, že dojde místo na disku, tak se zacyklí?

@andreaw.fean zvolil opačnou strategii, a při neúspěchu prostě končí - což je v pořádku.
V pořádku ovšem není, že končí chybou i v případě úspěšného (částečného) zápisu.
Furt lepší, než co navrhuješ ty.

Ty posixový funkce nefungují.
Jasně, vy jste expert na všechno a chyba je v Linuxu nebo jakou implementaci POSIXu myslíte. To sedí od někoho, kdo ani neví, jak zkopírovat data z jednoho souboru do druhého.

Sečteno a podtrženo problém je v tom, že tvá rada byla úplně špatná.
Že vám programování moc nejde jsem pochopil už v sousední diskusi. Že nezvládnete ani takovéhle základy a nechápete, v čem je problém, to mne překvapilo. Vaše hodnocení mých rad je mi tím pádem úplně jedno.
Když to říkáš.

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