MifosX - připojení mobilního klienta #168

Closed
opened 2017-12-17 19:50:17 +01:00 by Podhorecky · 24 comments
Podhorecky commented 2017-12-17 19:50:17 +01:00 (Migrated from git.spotter.cz)

Prosím o prozkoušení připojení mobilního klienta.
MifosX: issue #155

Prosím o prozkoušení připojení mobilního klienta. MifosX: issue #155
Disassembler commented 2018-02-16 22:04:14 +01:00 (Migrated from git.spotter.cz)

No a Mifos X Android klient pro změnu ani nepípne a ochotně se připojí s jakýmkoliv certifikátem, což je zase druhý extrém :) Doplním na portálovou stránku informace, které je nutno v mobilní aplikaci zadat.

Screenshot_20180216-220122

No a Mifos X Android klient pro změnu ani nepípne a ochotně se připojí s jakýmkoliv certifikátem, což je zase druhý extrém :) Doplním na portálovou stránku informace, které je nutno v mobilní aplikaci zadat. ![Screenshot_20180216-220122](/uploads/46ad4ea3a7cfba0d8ec3c6e6f4938598/Screenshot_20180216-220122.png)
Disassembler commented 2018-02-16 22:08:05 +01:00 (Migrated from git.spotter.cz)

closed via commit 0fb5b51dc7

closed via commit 0fb5b51dc765bff13caf16be7c6da7a7742a9a69
Podhorecky commented 2018-03-14 22:40:31 +01:00 (Migrated from git.spotter.cz)

changed milestone to %2

changed milestone to %2
Podhorecky commented 2018-03-14 22:48:30 +01:00 (Migrated from git.spotter.cz)

removed milestone

removed milestone
Podhorecky commented 2018-04-01 00:24:02 +02:00 (Migrated from git.spotter.cz)

changed milestone to %1

changed milestone to %1
Podhorecky commented 2018-11-13 18:23:00 +01:00 (Migrated from git.spotter.cz)

mobilní klient na androidu po vyplnění login + heslo a adresy mifosx.spotter.dasm.cz a portu 8443 a tenant ID default automaticky doplní do URL cestu /fineract-provider/api/v1/ čímž se patrně nikam nedobouchá.

mobilní klient na androidu po vyplnění login + heslo a adresy `mifosx.spotter.dasm.cz` a portu `8443` a tenant ID `default `automaticky doplní do URL cestu `/fineract-provider/api/v1/` čímž se patrně nikam nedobouchá.
Podhorecky commented 2018-11-13 18:23:00 +01:00 (Migrated from git.spotter.cz)

reopened

reopened
Disassembler commented 2018-11-13 18:34:10 +01:00 (Migrated from git.spotter.cz)

Hmmm. To bude nějaké "vylepšení" toho klienta. Přílepek za URL je v pořádku. Dokonce vidím, že požadavek na přihlášení dorazí až na aplikační server a je úspěšně odkýván, ale klient na to nezareaguje. Kredence jsou také v pořádku, protože když zadám špatné heslo, vypadá to v logu jinak. Zkusím zjistit, co se mu nelíbí.

Hmmm. To bude nějaké "vylepšení" toho klienta. Přílepek za URL je v pořádku. Dokonce vidím, že požadavek na přihlášení dorazí až na aplikační server a je úspěšně odkýván, ale klient na to nezareaguje. Kredence jsou také v pořádku, protože když zadám špatné heslo, vypadá to v logu jinak. Zkusím zjistit, co se mu nelíbí.
Podhorecky commented 2018-12-08 13:41:17 +01:00 (Migrated from git.spotter.cz)

zatim furt stejný

zatim furt stejný
Disassembler commented 2018-12-08 13:45:50 +01:00 (Migrated from git.spotter.cz)

Jo, to je další ticket na který jsem při přeskakování mezi aplikacemi úspěšně zapomněl :/

Jestli Vás můžu poprosit, nahažte mi tady do To Do tickety na kterých mám pracovat přednostně a v tom pořadí, v jakém se jim mám věnovat. Nemusít tam samozřejmě rovnat všech 103 otevřených, ale třeba nějakých top 10.

Teď se na to jdu (opět) podívat.

Jo, to je další ticket na který jsem při přeskakování mezi aplikacemi úspěšně zapomněl :/ Jestli Vás můžu poprosit, nahažte mi [tady](https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/boards) do *To Do* tickety na kterých mám pracovat přednostně a v tom pořadí, v jakém se jim mám věnovat. Nemusít tam samozřejmě rovnat všech 103 otevřených, ale třeba nějakých top 10. Teď se na to jdu (opět) podívat.
Disassembler commented 2018-12-08 23:17:30 +01:00 (Migrated from git.spotter.cz)

Ovšem toto je velmi kvalitní heisenbug. Takový se jen tak nevidí.

Sedím tu nad tím už asi 5 hodin, obrátil jsem všechny komponenty vzhůru nohama, porovnal stavy na virtuálkách 3 generace dozadu, povracel všechny změny v kódu za posledních 10 měsíců, které mají něco společného z Mifosem, protrasoval spojení mezi všemi komponentami, až jsem se teď dostal k forenzním nástrojům jako mitmproxy. Bez mitmproxy mi přihlášení selhává, ale když ji zapnu, abych se podíval, co vlastně leze přímo z telefonu a co se na něj vrací, tak mi najednou přihlášení funguje. Mám podezření, že jsme náhodou narazili na nějaký low-level bug po cestě (webový server špatně vysypává buffer nebo tak něco). Detektivka je to napínavá, už se těším na vrahovo odhalení.

Ovšem toto je velmi kvalitní heisenbug. Takový se jen tak nevidí. Sedím tu nad tím už asi 5 hodin, obrátil jsem všechny komponenty vzhůru nohama, porovnal stavy na virtuálkách 3 generace dozadu, povracel všechny změny v kódu za posledních 10 měsíců, které mají něco společného z Mifosem, protrasoval spojení mezi všemi komponentami, až jsem se teď dostal k forenzním nástrojům jako [mitmproxy](https://mitmproxy.org/). Bez mitmproxy mi přihlášení selhává, ale když ji zapnu, abych se podíval, co vlastně leze přímo z telefonu a co se na něj vrací, tak mi najednou přihlášení funguje. Mám podezření, že jsme náhodou narazili na nějaký low-level bug po cestě (webový server špatně vysypává buffer nebo tak něco). Detektivka je to napínavá, už se těším na vrahovo odhalení.
Podhorecky commented 2018-12-08 23:58:19 +01:00 (Migrated from git.spotter.cz)

držím palce...

držím palce...
Disassembler commented 2018-12-09 11:27:33 +01:00 (Migrated from git.spotter.cz)

Na stará kolena se budu živit jako věštec. Tohle bude možná trochu těžší na vysvětlení, ale věc se má takto:

Když nám Mifos X klient fungoval, používali jsme Alpine 3.7, na kterém byl nginx ve verzi 1.12.2.
Nyní používáme Alpine 3.8.1 na kterém je nginx ve verzi 1.14.1.

Obě verze umí protokol HTTP/2, ale jelikož se stále jedná o poměrně nový protokol (standardizován v květnu 2015), tu a tam se najde nějaký kousek, který by se dal vylepšit. No a jedním takovým kouskem bylo signalizovaní dynamické velikosti tabulky HTTP hlaviček známé jako HPACK (RFC 7541). Ve verzi nginxu 1.13.6 v commitu 63f5d46 toto signalizování opravili, takže jej nginx posílá za všech okolností. Bohužel je ale MifosXdroid postaven na nějaké verzi frameworku, která má podporu HTTP/2 implementovanou taky po staru a polovičatě a informaci o HPACK nechápe, takže pokud mu ji webový server pošle, někde hluboko v kódu sletí na nějaké výjimce a pro uživatele to vypadá, jako by žádná odpověď ze serveru nepřišla.

Jednou z možností jak tohle řešit, je vynutit použití HTTP/1.1 s MifosXdroid klientem. Pokusím se zjistit, zda je to vůbec možné, protože HTTP/2 přes TLS se vyjednává pomocí ALPN (Application-layer negotiation protocol) ještě předtím než se pošle požadavek, tzn. ještě předtím, než máme možnost zjistit, s jakým klientem se bavíme nebo na jakou URL jde. Pokud tohle nepůjde, tak budeme muset podřadit protokol plošně pro celý Mifos X.

Na stará kolena se budu živit jako věštec. Tohle bude možná trochu těžší na vysvětlení, ale věc se má takto: Když nám Mifos X klient fungoval, používali jsme Alpine 3.7, na kterém byl nginx ve verzi **1.12.2**. Nyní používáme Alpine 3.8.1 na kterém je nginx ve verzi **1.14.1**. Obě verze umí protokol HTTP/2, ale jelikož se stále jedná o poměrně nový protokol (standardizován v květnu 2015), tu a tam se najde nějaký kousek, který by se dal vylepšit. No a jedním takovým kouskem bylo signalizovaní dynamické velikosti tabulky HTTP hlaviček známé jako HPACK ([RFC 7541](https://tools.ietf.org/html/rfc7541)). Ve verzi nginxu **1.13.6** v commitu [63f5d46](https://github.com/nginx/nginx/commit/63f5d46f58e537745987e9d68bc65b03830238a7) toto signalizování opravili, takže jej nginx posílá za všech okolností. Bohužel je ale MifosXdroid postaven na nějaké verzi frameworku, která má podporu HTTP/2 implementovanou taky po staru a polovičatě a informaci o HPACK nechápe, takže pokud mu ji webový server pošle, někde hluboko v kódu sletí na nějaké výjimce a pro uživatele to vypadá, jako by žádná odpověď ze serveru nepřišla. Jednou z možností jak tohle řešit, je vynutit použití HTTP/1.1 s MifosXdroid klientem. Pokusím se zjistit, zda je to vůbec možné, protože HTTP/2 přes TLS se vyjednává pomocí ALPN (*Application-layer negotiation protocol*) ještě předtím než se pošle požadavek, tzn. ještě předtím, než máme možnost zjistit, s jakým klientem se bavíme nebo na jakou URL jde. Pokud tohle nepůjde, tak budeme muset podřadit protokol plošně pro celý Mifos X.
Podhorecky commented 2018-12-09 11:52:28 +01:00 (Migrated from git.spotter.cz)

wow.. super. já neumím posoudit jaká možnost je pro nás objektivně vhodnější.. ale dám do diskuse ještě jinou variantu. Pokusit se tlumočit problém na githubu nebo na jiné Jira, ať si s tím nějaký Ind poradí... časově mě to netlačí. Vy děláte maximum, občas pro mne až za hranicemi možného :))

wow.. super. já neumím posoudit jaká možnost je pro nás objektivně vhodnější.. ale dám do diskuse ještě jinou variantu. Pokusit se tlumočit problém na githubu nebo na jiné Jira, ať si s tím nějaký Ind poradí... časově mě to netlačí. Vy děláte maximum, občas pro mne až za hranicemi možného :))
Disassembler commented 2018-12-09 12:26:49 +01:00 (Migrated from git.spotter.cz)

Tuhle variantu jsem preemptivně zavrhl, protože na mě všechny ty mobilní aplikace působí, jako že jejich primární účel je nalákat potenciální investory a to, že náhodou něco i umí, je až druhotné. Nicméně jasně, abychom mohli říct, že jsme udělali maximum, otevřu jim issue na githubu. I kdyby byl vývoj aktivní, nečekal bych, že nová verze bude venku kdovíjak rychle, takže proto jsem hledal jak to ohnout na naší straně. Ale třeba mě kluci ušatí překvapí, uvidíme.

Tuhle variantu jsem preemptivně zavrhl, protože na mě všechny ty mobilní aplikace působí, jako že jejich primární účel je nalákat potenciální investory a to, že náhodou něco i umí, je až druhotné. Nicméně jasně, abychom mohli říct, že jsme udělali maximum, otevřu jim issue na githubu. I kdyby byl vývoj aktivní, nečekal bych, že nová verze bude venku kdovíjak rychle, takže proto jsem hledal jak to ohnout na naší straně. Ale třeba mě kluci ušatí překvapí, uvidíme.
Disassembler commented 2018-12-09 13:11:59 +01:00 (Migrated from git.spotter.cz)

Issue #1005 otevřeno v upstreamu.

Issue [#1005](https://github.com/openMF/android-client/issues/1005) otevřeno v upstreamu.
Podhorecky commented 2018-12-09 17:40:13 +01:00 (Migrated from git.spotter.cz)

ok, jasný. Už jsem taky střízliv, co se týče očekávání od těchto mobilních klientů. Takže teď je nahlášeno, uvidíme. Kdyby se dlouho nic nedělo, i to je pro mne informace na co si dát pozor. Pak se případně pustíte do ohnutí. Nechvátám na to.
Když si trochu zaspekuluji, tak tyhle divné sw do pár let čeká zvýšená pozornost, ale nebo převálcování nějakými drahými SaaSy. V přirovnání bych rád, abychom byli při vyšetřování vraždy asi tak napřed, jako insp. Trachta, který už jde zatýkat, zatímco Klečka teprve snímá otisky bot.
... a ano, vím jak to ve filmu končí... to bohužel tak bývá.

ok, jasný. Už jsem taky střízliv, co se týče očekávání od těchto mobilních klientů. Takže teď je nahlášeno, uvidíme. Kdyby se dlouho nic nedělo, i to je pro mne informace na co si dát pozor. Pak se případně pustíte do ohnutí. Nechvátám na to. Když si trochu zaspekuluji, tak tyhle divné sw do pár let čeká zvýšená pozornost, ale nebo převálcování nějakými drahými SaaSy. V přirovnání bych rád, abychom byli při vyšetřování vraždy asi tak napřed, jako insp. Trachta, který už jde zatýkat, zatímco Klečka teprve snímá otisky bot. ... a ano, vím jak to ve filmu končí... to bohužel tak bývá.
Podhorecky commented 2018-12-09 18:39:17 +01:00 (Migrated from git.spotter.cz)

Jestli Vás můžu poprosit, nahažte mi tady do To Do tickety na kterých mám pracovat přednostně a v tom pořadí, v jakém se jim mám věnovat. Nemusít tam samozřejmě rovnat všech 103 otevřených, ale třeba nějakých top 10.

Něco jsem hodil... Pak doplním. Vesměs jde o doplnění dokumentace do nějaké kompaktnější formy... pište vše co uznáte za vhodné, i včetně "prázdných kapitol" pro které není co napsat, ale bylo by dobré je později mít.

Pak jste psal o svých návrzích a pokusech s konzultacemi o mapách. To bych rád, intenzitu nechám zcela na vás. Ještě mám v záloze R.N. viz níže.

Pak tam je nakonec ta synchro u Sahany, ... zkuste prozkoumat proč to havaruje, napište ticket F+D a z toho se uvidí co dál. Mě tohle zajímá.

Teď popíšu hrubou představu plánu... Budeme naše issues směřovat k finalizaci první fáze VM... Tj. finalizujem nějakou "alfa" nebo jak to nazvat, appky běží, VM běží, na první pohled to nehavaruje do nějaké trapné smrti ... spousta věcí bude ještě nedořešeno. Já se pak s dotazem obrátím na R. Néteka (už jsem ho zmiňoval) a obratem dostanu pdp nebo takněco.
Od něj bych potřeboval hlavně takový ten "odborný přístup co se týče GIS sw řešení" ... Tj. od něj čekám, že by mi pomohl s návrhem a optimalizacemi některých mapových služeb, aby to dávalo smysl. A nebo mi řekne jiný fakt, který akceptuji. Postup, kdo to nainstaluje a odbuguje a komu zaplatím za facepalmy už vyplyne...

Po té první VM se odvážím opatrně získat první uživatelskou zpětnou vazbu. Pravděpodobně to nebude od cílových uživatelů, ale od frontendisty, který by se mohl vyjádřit k možnostem frontendu. Taky z toho vyplyne, koho ukecám na frotnendový rozvoj VMmgr. a customizaci rozhraní Sahany.

Pro vás bych určitě měl další úkoly, jak se nám tu už vršily.. tj. realizace distribučního serveru, hostingu, a pak další nápady. Tohle nemá konkrétní termíny, opatrně bych se rád vešel do 2019.

Finančně bych to viděl opět tak, že zaplatím co si řeknete. Teď ke konci roku to sice nevypadá fantasticky, ale nato, že jsem bez stálého zaměstnání, tak nějaké desítky tisíc na část faktury bych měl. Příští rok je pro mne loterie s vysokými sázkami. Jestli nedojde do pár let k ekonomickým problémům, tak dojde k nějakým jiným, protože není novinkou, že svět se v prdel obrací. A jsou určité komodity, které v těchto časech nabývají na hodnotě. Rád bych, abyste měl ode mne dobrý dojem, že nebudu nic dlužný.
...Zatím to v mých životních prohrách je naopak :D a kdybych měl vše, co mi kdo dluží, tak vám píšu z nějaké exotické destinace a neřeším věci, které byste mi stejně neuvěřil..

Prosím tedy... mrkněte na tu dokumentaci abyste s tím byl sám spokojený. Ostatní až potom.

> Jestli Vás můžu poprosit, nahažte mi [tady](https://git.spotter.cz/Spotter-Cluster/Spotter-Cluster/boards) do _To Do_ tickety na kterých mám pracovat přednostně a v tom pořadí, v jakém se jim mám věnovat. Nemusít tam samozřejmě rovnat všech 103 otevřených, ale třeba nějakých top 10. Něco jsem hodil... Pak doplním. Vesměs jde o doplnění dokumentace do nějaké kompaktnější formy... pište vše co uznáte za vhodné, i včetně "prázdných kapitol" pro které není co napsat, ale bylo by dobré je později mít. Pak jste psal o svých návrzích a pokusech s konzultacemi o mapách. To bych rád, intenzitu nechám zcela na vás. Ještě mám v záloze R.N. viz níže. Pak tam je nakonec ta synchro u Sahany, ... zkuste prozkoumat proč to havaruje, napište ticket F+D a z toho se uvidí co dál. Mě tohle zajímá. Teď popíšu hrubou představu plánu... Budeme naše issues směřovat k finalizaci první fáze VM... Tj. finalizujem nějakou "alfa" nebo jak to nazvat, appky běží, VM běží, na první pohled to nehavaruje do nějaké trapné smrti ... spousta věcí bude ještě nedořešeno. Já se pak s dotazem obrátím na R. Néteka (už jsem ho zmiňoval) a obratem dostanu pdp nebo takněco. Od něj bych potřeboval hlavně takový ten "odborný přístup co se týče GIS sw řešení" ... Tj. od něj čekám, že by mi pomohl s návrhem a optimalizacemi některých mapových služeb, aby to dávalo smysl. A nebo mi řekne jiný fakt, který akceptuji. Postup, kdo to nainstaluje a odbuguje a komu zaplatím za facepalmy už vyplyne... Po té první VM se odvážím opatrně získat první uživatelskou zpětnou vazbu. Pravděpodobně to nebude od cílových uživatelů, ale od frontendisty, který by se mohl vyjádřit k možnostem frontendu. Taky z toho vyplyne, koho ukecám na frotnendový rozvoj VMmgr. a customizaci rozhraní Sahany. Pro vás bych určitě měl další úkoly, jak se nám tu už vršily.. tj. realizace distribučního serveru, hostingu, a pak další nápady. Tohle nemá konkrétní termíny, opatrně bych se rád vešel do 2019. Finančně bych to viděl opět tak, že zaplatím co si řeknete. Teď ke konci roku to sice nevypadá fantasticky, ale nato, že jsem bez stálého zaměstnání, tak nějaké desítky tisíc na část faktury bych měl. Příští rok je pro mne loterie s vysokými sázkami. Jestli nedojde do pár let k ekonomickým problémům, tak dojde k nějakým jiným, protože není novinkou, že svět se v prdel obrací. A jsou určité komodity, které v těchto časech nabývají na hodnotě. Rád bych, abyste měl ode mne dobrý dojem, že nebudu nic dlužný. ...Zatím to v mých životních prohrách je naopak :D a kdybych měl vše, co mi kdo dluží, tak vám píšu z nějaké exotické destinace a neřeším věci, které byste mi stejně neuvěřil.. Prosím tedy... mrkněte na tu dokumentaci abyste s tím byl sám spokojený. Ostatní až potom.
Disassembler commented 2018-12-09 21:19:40 +01:00 (Migrated from git.spotter.cz)

Tak jsem koukal, jestli a jakým způsobem se dá ošetřit ta chyba u MifosXdroidu. Špatná zpráva je ta, že se to na straně serveru nedá udělat jinak než úplným plošným vypnutím HTTP/2 u všech aplikací. Právě proto, že HTTP/2 je vyjednáváno před odesláním požadavku, zapíná a vypíná se v rámci celého TCP portu. To se mi moc dělat nechce, protože to bude mít dopad na výkon.

Dobrá zpráva je, že jsem si na 99% jistý, že jsem identifikoval zastaralou závislost v MifosXdroidu, která za to všechno může. MifosXdroid ke zprostředkování spojení používá OkHttp ve verzi 3.3.1. Dynamická velikost HPACK tabulky je špatně podporovaná od verze 3.4.0 a správně pak od verze 3.5.0. Používaná verze 3.3.1 vyšla 24. května 2016, takže s aktualizacemi se evidentně nepřetrhnou. Mám šílený nápad zkusit si nainstalovat Android studio, komponentu v závislostech aktualizovat a zkompilovat si vlastní APK balík pro Android. V životě jsem to nedělal. Bude sranda.

Tak jsem koukal, jestli a jakým způsobem se dá ošetřit ta chyba u MifosXdroidu. Špatná zpráva je ta, že se to na straně serveru nedá udělat jinak než **úplným** plošným vypnutím HTTP/2 u všech aplikací. Právě proto, že HTTP/2 je vyjednáváno před odesláním požadavku, zapíná a vypíná se v rámci celého TCP portu. To se mi moc dělat nechce, protože to bude mít dopad na výkon. Dobrá zpráva je, že jsem si na 99% jistý, že jsem identifikoval zastaralou závislost v MifosXdroidu, která za to všechno může. MifosXdroid ke zprostředkování spojení používá [OkHttp](http://square.github.io/okhttp/) ve verzi 3.3.1. Dynamická velikost HPACK tabulky je špatně podporovaná od verze 3.4.0 a správně pak od verze 3.5.0. Používaná verze 3.3.1 vyšla [24. května 2016](https://github.com/square/okhttp/blob/master/CHANGELOG.md#version-331), takže s aktualizacemi se evidentně nepřetrhnou. Mám šílený nápad zkusit si nainstalovat Android studio, komponentu v závislostech aktualizovat a zkompilovat si vlastní APK balík pro Android. V životě jsem to nedělal. Bude sranda.
Disassembler commented 2018-12-09 22:22:30 +01:00 (Migrated from git.spotter.cz)

Tak to mě poser. Po instalaci asi 10 GB runtimů, frameworků, závislostí, kompilátorů, linkerů, packagerů a jiné černé magie jsem prostě přepsal verzi závislosti na 3.5.0 a nechal vytvořit APK. Chvíli v tom hrkalo a kouřilo se z toho a vypadlo tohle

mifosng-android-release.apk

Tak jsem to nainstaloval... a vono to funguje! (Ale pozor, je to o 140 commitů a rok a půl vývoje novější než ta verze 1.0.1, kterou mají v releasech)

Pošlu jim PR. Pak ať si s tím dělají, co chtějí.

Tak to mě poser. Po instalaci asi 10 GB runtimů, frameworků, závislostí, kompilátorů, linkerů, packagerů a jiné černé magie jsem prostě přepsal verzi závislosti na 3.5.0 a nechal vytvořit APK. Chvíli v tom hrkalo a kouřilo se z toho a vypadlo tohle [mifosng-android-release.apk](/uploads/dcbaa82e7c45f3beab85c76928a4990b/mifosng-android-release.apk) Tak jsem to nainstaloval... a vono to funguje! (Ale pozor, je to o 140 commitů a rok a půl vývoje novější než ta verze 1.0.1, kterou mají v releasech) Pošlu jim PR. Pak ať si s tím dělají, co chtějí.
Disassembler commented 2018-12-09 23:04:37 +01:00 (Migrated from git.spotter.cz)

Submitnuto PR #1006 do upstreamu.

Jestli se rok a půl neměli k tomu vytvořit nový release, pochybuju, že naše PR to změní. Takže to moje zkompilované APK pak nejspíš nahrajeme někam k Vám, až budeme řešit distribuční server a WordPressy, a budeme na něj odkazovat tam.

Submitnuto PR [#1006](https://github.com/openMF/android-client/pull/1006) do upstreamu. Jestli se rok a půl neměli k tomu vytvořit nový release, pochybuju, že naše PR to změní. Takže to moje zkompilované APK pak nejspíš nahrajeme někam k Vám, až budeme řešit distribuční server a WordPressy, a budeme na něj odkazovat tam.
Disassembler commented 2018-12-11 18:43:30 +01:00 (Migrated from git.spotter.cz)

mentioned in issue #134

mentioned in issue #134
Podhorecky commented 2018-12-29 17:39:45 +01:00 (Migrated from git.spotter.cz)

zdá se že se probudili.

BTW.. myslíte že se vám podaří v příštím týdnu refreshnout VM? #311

zdá se že se probudili. BTW.. myslíte že se vám podaří v příštím týdnu refreshnout VM? #311
Podhorecky commented 2019-03-26 13:47:18 +01:00 (Migrated from git.spotter.cz)

closed

closed
Sign in to join this conversation.
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Disassembler/Spotter-VM#168
No description provided.