• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    TENCOKACISTROMYProgramovani v C#, F# a dalsich jazycich pro .NET, Mono a ostatni CLI implementace
    CERMI_FOX
    CERMI_FOX --- ---
    EMBI: koukal, podle toho jsem dottrace nastavil.
    Co mi přinese ruční IAsyncStateMachine? Já vím, o který await (v mém kódu) jde, to jsem si našel stopwatchem, nicméně za tím awaitem je skrývá spousta 3rd party kódu, kde se pracuje se sítí, a vzniká tam spousta tasků; zajímá mě právě pohled dovnitř.
    ANTS jsem zkoušel, ale padá mi na různé velmi deskriptivní chyby jako E_FAIL nebo obecnější "failed".
    EMBI
    EMBI --- ---
    CERMI_FOX: Koukal jsi na https://www.jetbrains.com/help/profiler/Analyzing_Async_Calls.html ? Co prepsat async/await na IAsyncStateMachine (tj. bez klicovych slov) a pak zkusit profiler?

    Redgate profiler ma 14 denni free trial https://www.red-gate.com/products/dotnet-development/ants-performance-profiler/
    CERMI_FOX
    CERMI_FOX --- ---
    potřebuju nějaký profilovací nástroj pro async/awaity (.NET Framework klasický). Řeším problém, že rutina by měla trvat řádově desítky ms (pokud ji vyextrahuju mimo aplikaci do benchmarku, tak i tak trvá, takže problém bude nejspíš v kombinaci technologií v aplikaci, je to celkem velká aplikace), nicméně přes StopWatch hodně často trvá i desítky sekund, bez nějakého většího zatížení systému. CPU nevytěžuje. Potřebuju zjistit, na čem ta rutina tráví čas, velmi pravděpodobně awaití nějaký task z TCS. Potřeboval bych zjistit který a odkud se bere. Ta rutina rutina volá hlavně kód třetí strany (celkem velká knihovna), který je opensource, ale moc se v něm nevyznám, takže se nechci pouštět do velkých úprav.
    Existuje nějaký nástroj, který by mi řekl, "tvoje metoda XY z 78% awaití task, který vznikl v NějakáClass.Metoda, 10% awaití jiný task, zbytek pak je CPU práce" ?
    Zkoušel jsem dotTrace, ten mi řekne, že 99+% se tráví na awaitu a to je vše, neřekne mi, co to je za Task.
    Zkoušel jsem Performance profiler z Visual Studia, ten bohužel vždy selže na chybě "Merging of ETL files has failed (0x8007007b)."
    Nějaké nápady, co použít? Klidně placený soft, je to důležité a zároveň začínám být zoufalý
    MORMEGIL
    MORMEGIL --- ---
    URZA: SAML2 je úplně v pohodě, sice není úplně módní, ale aspoň je k tomu určenej (na rozdíl od různých přibastlených protokolů nad Oauth2). Horší je, že to maj poněkud zprasený (to entity ID!!).
    PECA
    PECA --- ---
    MORIARTY: Standard je přeci ohlásit, že změna nastala a vývojáři klientských SW posertese... Musím tedy uznat, že někdy se tyhlety změny ohlásí i 14 dní dopředu, než to přepnou. Sice se pak taky třeba stane, že ohlášená změna (API) je pak ve skutečnosti jiná, takže to stejně musí předělat, ale že se to podělá bylo ohlášeno dopředně :)
    // no, zas taková sranda to není, když pak suplujeme support MZe
    MORIARTY
    MORIARTY --- ---
    URZA: No, já teď navíc začínám programovat připojení k novýmu přihlašovacímu systému MŽP. Dělají to od začátku v SAML2, ten protokol si trochu ohýbají, takže kdoví, jestli ho to vůbec bude připomínat.
    No a chtějí to spustit k 1.1.2022, takže aplikace třetích stran mají na úpravu přihlašování půl roku a většina z jejich vývojářů ještě ani neví, že se něco chystá :)
    LARS_GUNNER
    LARS_GUNNER --- ---
    SHIGORBIRDMAN: Znamej ted servisuje stand-alone stanici napsanou v Turbo Pascalu a MS-DOS. Kdyz ma firma napsano neco stareho a stale to udrzuje, tak to povazuju spis za pozitivum. Takovych tech rapid update firem uz tu bylo...
    Se senioritou a senilitou to asi nebude mit spolecneho tolik, jako s jejich naprostym kokotismem. Pardon my french.
    URZA
    URZA --- ---
    SHIGORBIRDMAN: Tak podle URL to vypadá že integruje nějaký ministerstvo. Bohužel jsem se s tímto taky dostal trochu do styku. 20 let starý delphi a nefunkční SOAPy to je úplny standard. Jestli by jako někdo čekal že státní správa bude fungovat na RESTu nebo nějak normálně.. ha ha ha :)))
    Největší prasárnu co jsem viděl u jednoho úřadu je SOAP over SMTP :D a taková ta slavná eidentita, taková ta horká novinka co umožňuje přihlašování bankou na úřady? Tak ta používá interně 15 let starý protokol saml2 který ani není v .net implementovaný..
    SHIGORBIRDMAN
    SHIGORBIRDMAN --- ---
    SAJAGI: ono uz to Delphi neco naznacuje ohledne seniority / senility :D

    to fakt jeste nekdo, krome zoufale udrzovanych legacy systemu starych 20 let, pouziva?
    SAJAGI
    SAJAGI --- ---
    MORIARTY: Pokud se ohánějí tím, že jsou senior programátoři, tak asi není co dodat. Možná jen
    Kdo je tu nejstarší, kdo je tu nejstarší!?" křičel jedenasedmdesátiletý Strauss a tloukl o stůl svým občanským průkazem...
    MORIARTY
    MORIARTY --- ---
    Jo, díky :-)
    Oni se ohánějí tím, že jsou to senior programátoři, ale očividně nejsou dost senior. Mimochodem server je napsanej v PHP a z .Net je to strašná pruda se k tomu připojit.
    Souvisí to s tímhle postem ve vedlejším klubu: [MORIARTY @ db -1/0 @ slyším Alenky v říší <div>ů následovat stream do backdooru]
    FONTAN
    FONTAN --- ---
    CERMI_FOX: no jasne - je to naprosta kokotina :)
    CERMI_FOX
    CERMI_FOX --- ---
    FONTAN: dokonce bych tvrdil, ze je to nezadouci - produkcni a test prostredi by melo byt co nejstejnejsi, rozhodne by melo mit stejne schema. Jiny namespace znamena, ze nema stejne schema.
    FONTAN
    FONTAN --- ---
    MORIARTY: jiny NS urcite byt muze, ale teda smysl to moc nedava a je to, cituji, kikotina
    SAJAGI
    SAJAGI --- ---
    MORIARTY: Měl jsem rozepsanou rozsáhlou odpověď, ale asi to stačí shrnout takhle: jsou to kikoti.
    MORIARTY
    MORIARTY --- ---
    Ahoj, měl bych jeden asi trapnej dotaz ohledně příbuzné technologie.
    Konzumuju jednu webovou službu a mám s vývojářema serveru spor ohledně implementace. Jde mi to to, že ta služba má WSDL, které je jiné pro devel a test prostředí. Liší se atributem TargetNamespace:
    https://autovraky.mzp.cz/autovrak/service/wsdl/v6 (xmlns:tns="https://autovraky.mzp.cz/autovrak/service/v6/")
    https://autovraky-test.mzp.cz/autovrak/service/wsdl/v6 (xmlns:tns="https://autovraky-test.mzp.cz/autovrak/service/v6/")

    Podle mě by se WSDL nemělo měnit v závislosti na prostředí, je to datový standard. Podle nich je hloupost, že by TargetNamespace byl stejný na dvou serverech.

    No, výsledek je, že mi .Net neumí deserializovat XML z testu na devel WSDL a naopak a musím před deserializací injektovat do XML správný namespace. Oni tvrdí, že je to normální a že v Delphi a PHP jim to funguje bez problémů (není divu, když oba jazyky neumí používat namespace).

    Mám pravdu já, že WDSL je neměnné, a nebo oni, že může být na každém serveru jiný TargetNamespace?
    PECA
    PECA --- ---
    Děkuji za tip. Na to se ještě podívám. Teď mi to chodí přes Console.ReadKey, ale nejspíše jenom proto, že to běhá v popředí.
    SLUPKA
    SLUPKA --- ---
    PECA: Rychlý google mi našel toto: https://blog.honosoft.com/2019/03/12/linux-dotnet-read-from-a-device-file/ a odtamtud odkaz na toto: https://www.zer7.com/software/hidsharp

    To vypadá docela nadějně.
    PECA
    PECA --- ---
    SLUPKA: Jo, je tam RaspberryPi OS. Nejsem linuxák, ale tolik vím, že by to nějak takto asi taky šlo. Ovšem raději bych to měl jako "managed" kód, relativně nezávislý na OS.

    Včera jsem něco našel, tak to zkouším přepsat, jestli to bude fungovat přes Console.KeyAvailable a Console.ReadKey. Ale ono to bude asi fungovat jenom když bude aplikace v "popředí". No, ale v nouzi to tak holt bude. Vzhledem k tomu, že to je zadeklovaný bez jiných vstupů a výstupů...
    SLUPKA
    SLUPKA --- ---
    PECA: A co používáš za operační systém? Raspbian? Tam by tu události měly být dostupné na něčem jako /dev/input/event0, ne? Nevím, jestli na to .NET Core má nějakou metodu, ale v nejhorším případě můžeš volat libc napřímo.
    PECA
    PECA --- ---
    C#, dotnet core 3.1
    Mám službu (daemona). Běží to, čte to data z 1Wire sběrnice (Id čipy). Teď potřebuji, aby to četlo i klávesnici a pokud to bude mít správný pattern, tak zpracovat. Technicky jde o vyhození původní 1Wire čtečky a nahrazení za USB čtečku, která simuluje klávesnici.
    Běhá to na Raspberry Pi, není možné řešit hákem přes user32.dll - na což narážím na každém rohu. Můžete mě někdo popostrčit ke správnému řešení prosím?
    Kliknutím sem můžete změnit nastavení reklam