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 - Filip Jirsák

Stran: 1 ... 237 238 [239] 240 241 ... 375
3571
Vývoj / Re:Synchronizace vlaken v C#
« kdy: 28. 01. 2018, 20:42:53 »
Předpokládám,že nechce synchronizovat vlákna, ale něco jiného, takže to odemkne z jiného vlákna. Ale co doopravdy chce, to musí napsat anonymní tazatel, já jenom hádám.

3572
Vývoj / Re:Synchronizace vlaken v C#
« kdy: 28. 01. 2018, 19:19:50 »
V Javě i v jakémkoli jiném alespoň trochu příčetném frameworku je vlastníkem zámku pro synchronizaci vláken vždy vlákno, takže když se pokusí získat zámek, který už vlastní, dostane ho. Žádné jiné řešení totiž nedává smysl – kdyby se to chovalo tak, jak byste chtěl, na tom třetím řádku dojde k deadlocku a to vlákno už se nikdy neprobudí, protože by čekalo na uvolnění zámku, k jehož uvolnění by ale bylo potřeba, aby to vlákno běželo.

Takže evidentně potřebujete něco jiného. Zkuste raději popsat problém, který řešíte.

3573
Server / Re:Platobná brána - nepravidelné automatické platby
« kdy: 28. 01. 2018, 19:13:29 »
JetBrains používá pro předplatné Adyen. Termíny stržení platby a částky jsou sice teoreticky známé dopředu (pokud se nezmění ceník), ale nevybavuju si, že bych je někde potvrzoval.

Každopádně počítejte s tím, že i kdybyste to řešil přímo ukládáním údajů z platební karty (jako to dělá třeba Amazon nebo Google), i nějakou výše uvedenou metodou, bude si vás provozovatel takové služby chtít pořádně prověřit a nejspíš to neumožní každému – protože tím dostáváte do ruky dost nebezpečný nástroj. Ani to nemusíte záměrně zneužít, stačí hloupá chyba, když nějakou platbu strhnete omylem dvakrát.

V případě těch uložených údajů o platební kartě to funguje v jiném režimu, než běžné on-line platby, takže přes 3D secure se ověřuje nanejvýš první  ověřovací platba (když se zablokuje třeba 1 USD, aby se ověřilo, že karta existuje a funguje). Další platby už jsou bez ověření. Právě proto takovou možnost platební brány neposkytnou každému, kdo jde zrovna kolem.

3574
Jak píšou ostatní, není důvod, aby tohle řešil virtuální stroj, protože přesně tohle dělá swap operačního systému.

Pokud to, co zpracováváte, je dlouhý seznam menších objektů, dá se to řešit tak, že do DOMu načtete vždy ten menší objekt, a když ho zpracujete, rovnou ho uvolníte z paměti. Např. Javovská knihovna dom4j pro to má podporu – v FAQ si najděte „How does dom4j handle very large XML documents?“.

3575
Vývoj / Re:Seriozní porovnání .NETu a Javy
« kdy: 27. 01. 2018, 21:09:23 »
2. JAR je na rozdíl od DLL poměrně obecný soubor, vnitřně ne nepodobný ZIPu.
JAR je ZIP.

4. Maven je vlastně uživatelským zjednodušením Antu, který má podobnou filozofii jako Make. Otevřený formát opět přispívá k jednoduchosti.
Ant je skript popisující způsob buildu, je to stejný princip, jako Make. Maven přišel s úplně jiným principem – popíše se struktura projektu, a Maven už bude vědět, jak takovou strukturu sestavit. Nápad to byl perfektní, pak by se stejným popisem projektu mohlo pracovat třeba IDE. Bohužel se toho sám Maven pak nedržel, takže místo popisu, jak projekt vypadá, se pak stejně popisovalo, jak se má sestavovat – poměrně nepohodlně konfigurací pluginů v XML. Dneska se prosazuje Gradle, který se vrátil znovu k tomu, že build je popsaný skriptem – ale spoustu běžných věcí tam stačí jen nakonfigurovat.

3576
Zastavte se, přestaňte chrlit svá vlastní řešení, a popište, jaký problém řešíte, tj. co je cílem vašeho snažení. A když už budete v tom popisování problému, napište také, v jakém prostředí to řešíte (operační systém, program).

3577
Server / Re:Ukladat soubory na do databaze nebo primo na disk?
« kdy: 21. 01. 2018, 18:26:53 »
To je věčný spor, na který neexistuje jednoznačná odpověď. Souborový systém je databáze vyladěná pro ukládání souborů, z hlediska efektivity je nejjednodušší soubory ukládat tam. Na druhou stranu, když soubory ukládáte do databáze, máte jistotu, že data jsou konzistentní, i v zálohách – nestane se vám, že máte na disku soubor, ke kterému chybí záznam v databázi, nebo naopak záznam v databázi, ke kterému chybí soubor. Soubory na disku se snáze zálohují, můžete dělat rozdílové zálohy. Databázi můžete mít replikovanou, ale když budete chtít udělat zálohu pomocí dumpu, celý ten objem uložených souborů se vám nahrne do toho dumpu, se kterým musíte pracovat jako s celkem. Když budete ukládat soubory na disk, můžete snadno škálovat na objem dat tím, že budete ukládat na více zařízení. NoQSL databáze zase často umí škálovat na více zařízení samy.

Já osobně bych pro službu typu „webové úložiště“ volil ukládání do souborového systému, protože pak můžete soubory z webového serveru odesílat s minimální režií, a můžete jinak škálovat a jinak zálohovat metadata a jinak samotné soubory. Ale jak jsem psal, je to věčný spor a otázka spíš osobního vkusu a zkušeností s různými technologiemi.

3578
Software / Re:Ochrana URL odkazu
« kdy: 21. 01. 2018, 16:52:42 »
To čtení pravděpodobně dělá nějaká antivirová ochrana. Nejjednodušší je přístup k tomu URL ochránit jménem a heslem, to snadno nakonfigurujete přímo na webovém serveru.

3579
Software / Re:Rsync s --append-verify
« kdy: 19. 01. 2018, 18:39:41 »
Jenom to pro jistotu upřesním, napsal jsem to poprvé omylem dvojznačně – --append má dělat přesně to, co popisujete, že dělá, ne to co jste si myslel, že dělat má. U těch souborů, které se zvětšily, vám to „fungovalo“ jenom díky tomu -verify – rsync za původní soubor doplnil zbytek z toho nového souboru (takže vám na cílovém serveru vznikl guláš – soubor, jehož první část byla stará a druhá část nová), pak spočítal kontrolní součet, zjistil, že nesedí, a začal soubor synchronizovat celý znova od začátku. Pro větší soubory vám to tedy fungovalo víceméně jen náhodou a bylo to neefektivní.

3580
Server / Re:Postfix neodesílá poštu na GMail
« kdy: 19. 01. 2018, 15:38:44 »
PTR zaznam nemam, lebo mam dynamicku IP, tym padom mi UPC odmieta nastavait spatny zaznam.
Tím je to vyřešené – z dynamicky přidělovaných IP adres dnes e-maily rozesílat nejde, někam byste je možná doručil, ale spousta serverů e-maily z takových adres rovnou odmítne.

Relay je server, který pro někoho jiného zprostředkovává rozesílání e-mailů.

Otázka je, čeho chcete docílit. Jestli chcete provozovat poštovní server, pak určitě potřebujete pevnou veřejnou IP adresu. Pokud jenom potřebujete odesílat e-maily z jedné adresy, založte si schránku na GMailu nebo Seznamu a používejte tu.

3581
Software / Re:Rsync s --append-verify
« kdy: 19. 01. 2018, 15:34:01 »
Ten parametr nemá nic společného s navázáním po přerušení spojení a má dělat přesně to, co popisujete. K navazování přerušených spojení je možné použít --partial, který ponechá soubor na místě (nemaže jej), i když se spojení přeruší. Parametr --append slouží k tomu, když víte, že se soubor nikdy nemění, jenom se přidává na konec – takže tím rsyncu řeknete, ať se nestará o to, co už v souboru je, ale jenom přidá to, co přibylo na druhé straně. Dalo by se to použít třeba pro přenos logů.

3582
Server / Re:Notifikace pŕi neobdržení očekávaného emailu
« kdy: 18. 01. 2018, 18:36:05 »
V Google Apps Script můžete naplánovat spuštění skriptu na určený čas. Do GMailu tam přístup máte, můžete vyhledat zprávu, označit ji jako přečtenou, a pokud ji nenajdete, odeslat e-mail.

3583
A ona ta editace někdy nastane? Nevím, o co přesně jde a jaký je zdroj těch záznamů, ale tipuji že to bude poměrně výjimečná situace. A v té se dá projet ten dotaz znovu s omezením na daného klienta.
Pokud nenastane, mělo by na té tabulce být omezení, které editaci neumožní. Pokud nastat může, měl by na tabulce být trigger, který přepočítání zajistí automaticky. Spoléhat na to, že si někdo vzpomene, že by se měla přepočítat data, je nejlepší způsob, jak získat nekonzistentní databázi.

3584
Ano, je to pěkně hloupá myšlenka ukazující na špatný návrh.

me nic jineho nenapadlo, potrebuji pri zobrazovani pohybu a stavu portfolia spocitat aktualni podil na celkove investici
takze je lepsi si ten soucet predpocitat, nez poustet celkem zbytecne slozity SUM pri kazdem zobrazeni

ale rad si necham poradit neco lepsiho
Takže nepotřebujete znát historický součet po každém vkladu, ale stačí vám znát aktuální součet (po posledním vkladu). Takže si vytvořte druhou tabulku, kde bude klient_id a vklad_celkem, a tuto tabulku aktualizujte triggerem při změně v tabulce vkladů.

3585
UPDATE tbl u1, (SELECT (SELECT SUM(vklad) FROM tbl t2 WHERE t1.date >= t2.date AND t1.klient = t2.klient) as vklad_celkem FROM tbl t1) u2 SET u1.vklad_celkem = u2.vklad_celkem;
ale bude fungovat jen pokud bude jeden vklad za den, pokud by jich bylo více, musíte tabulky synchronizovat třeba podle nějakého čísla transakce, nebo data i s přesným časem.
Tohle řešení je správně (teda pokud je možné v MySQL udělat takovýhle JOIN v UPDATE), ty přidané ORDER BY jsou tam k ničemu, respektive rozumná databáze vám to s nimi ani nedovolí spustit. Vzhledem k tomu, že je řeč o MySQL a je takováhle struktura databáze, o miliony záznamů asi nepůjde.

Já bych použil korelovaný subdotaz, připadá mi to čitelnější a nevyžaduje to ten divný UPDATE JOIN, který je myslím specifický pro MySQL:
Kód: [Vybrat]
UPDATE tabulka t1
  SET vklad_celkem = (
    SELECT SUM(vklad)
      FROM tabulka t2
      WHERE t1.klient_id = t2.klient_id
        AND t2.datum <= t1.datum
  )

Stran: 1 ... 237 238 [239] 240 241 ... 375