IT pro otrlé

O lidech, o vztazích, o politice, o názorech, o opicích a o ufonech.

Moderátor: Faskal

Odpovědět
Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 14182
Registrován: 18. 6. 2003, 20:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion » 12. 2. 2019, 22:59

Dobrá, abych to specifikoval:

Potřebuju něco lepšího než Excel a jeho tabulky (Tables a Pivot Tables).
Chci mít dimensovou tabulku s plus minus 2000 prvky a k tomu faktovou tabulku, do které půjde měsíčně nějakých 50 000 nových vstupů, a z toho potřebuju činit závěry (týdenní, měsíční součty; týdenní, měsíční delty,...). V podstatě to v tom Excelu už vytvořené mám a nebylo to ani nikterak složité, ale s takovým množstvím dat už to prostě nevychytává a má tendenci dost padat.

Správná cesta je nedělat nic a nechat korporátní mlýn dojít k nevyhnutelnému názoru, že na tohle potřebuju SAP a nějaké systémové integrace. Ale rozhodnutí bude trvat dalších 3-6 měsíců a implementace další dva roky.
Já to potřebuju včera.
\\[T]// PRAISE THE SUN! \\[T]//

Uživatelský avatar
Sosacek
Příspěvky: 21531
Registrován: 14. 7. 2004, 18:30

Re: IT pro otrlé

Příspěvek od Sosacek » 13. 2. 2019, 07:20

Si udelej kurz sql a stahni si nejakou db. Nebo si od it nech zalozit sandbox nekde.

Ty pocty radku jsou pro realnou db smesny. A SAP nechces. SAP je operacni, ne analytickej, to co delas ty je analytika.
...

Uživatelský avatar
Alef0
Příspěvky: 5832
Registrován: 7. 6. 2004, 10:22
Bydliště: Košice, SR.

Re: IT pro otrlé

Příspěvek od Alef0 » 13. 2. 2019, 10:46

SAP nechces, to je strasny overkill.
Lokalna databaza to isti: MySQL (pre deti a mladez), PostgreSQL (pre pravych muzov a zeny) alebo lokalna MSSQL. Vsetky su zadarmo. Ide o to, ze sa zrejme chvilu budes ucit SQL a po ceste uvidis, co ti treba.
Preklady [preklad/korektury/layout]:
Wilderness of Mirrors: 100%/99%/0
In a Wicked Age, CZ: 100%/100%/0
FATE SK: 100/100/0

Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 14182
Registrován: 18. 6. 2003, 20:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion » 13. 2. 2019, 21:11

Ono to ve výsledku je celé operační, moje analytika je potřeba jen proto, že momentální sestava systémů a jejich integrací (když už tam tedy nějaké jsou) je totálně na piču. Čímž nemíním, že se mi to nelíbí, ale že to fakt hluboce nefunguje, nikdo nic reálně neví (jen já, protože jsem uprostřed a dostanu se ke všem těm zdrojům), jsou z toho celkem jasné materiální škody. SAP je řešení, protože se pro to v pohodě používá, jen ne na mém úseku (navíc by přes něj jela spousta jiných věcí, které momentálně nefungují, ale toto je priorita), ale já hledám nějaké dočasné řešení na koleni, které mi umožní dělat tu analytiku a vyhnout se největším průserům.
\\[T]// PRAISE THE SUN! \\[T]//

Uživatelský avatar
Sosacek
Příspěvky: 21531
Registrován: 14. 7. 2004, 18:30

Re: IT pro otrlé

Příspěvek od Sosacek » 13. 2. 2019, 21:38

Klasika.

Pokud jsi na limitu excelu, tak se budes muset naucit s necim jinym. SQL je myslim nejlepsi cesta.
...

Uživatelský avatar
Sosacek
Příspěvky: 21531
Registrován: 14. 7. 2004, 18:30

Re: IT pro otrlé

Příspěvek od Sosacek » 17. 3. 2019, 12:41

V patek jsem kodil vec, na kterou jsem si potreboval vzpomenout jak se dela tranzitivni uzaver grafu.

Hec.
...

Uživatelský avatar
York
Příspěvky: 11709
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York » 14. 5. 2019, 12:49

Nemáte náhodou někdo zkušenost s upgradem postgresql na ubuntu?

Mám celkem dva problémy. První, nejspíš důležitější, je tohle:

Kód: Vybrat vše

● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: active (exited) since Tue 2019-05-14 12:31:43 CEST; 1h 12min ago
  Process: 23984 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 23984 (code=exited, status=0/SUCCESS)

May 14 12:31:43 proarc-test systemd[1]: Starting PostgreSQL RDBMS...
May 14 12:31:43 proarc-test systemd[1]: Started PostgreSQL RDBMS.
Status active (exited) asi není dobře. Nejspíš to souvisí s upgradem distribuce. Možná by mohlo pomoct tohle, ale ještě jsem to nezkoušel.

S tím souvisí, že ubuntu si drží i starší verze postresql, každá má svůj vlastní cluster. Nejsem si úplně jistej, pod kterým mám data, ani jak to zjistit. Asi by bylo fajn, zmigrovat to všechno do clusteru s nejvyšší verzí, ale návody na migraci zahrnujou mazání celých clusterů (nejdřív ten s verzí 10), takže se mi do toho moc nechce, dokud nebudu vědět, co vlastně dělám.

Kód: Vybrat vše

Ver Cluster Port Status Owner    Data directory               Log file
9.1 main    5432 online postgres /var/lib/postgresql/9.1/main /var/log/postgresql/postgresql-9.1-main.log
9.3 main    5433 online postgres /var/lib/postgresql/9.3/main /var/log/postgresql/postgresql-9.3-main.log
9.5 main    5434 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log
10  main    5435 online postgres /var/lib/postgresql/10/main  /var/log/postgresql/postgresql-10-main.log

Uživatelský avatar
York
Příspěvky: 11709
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York » 14. 5. 2019, 13:22

Hmm, tak to vypadá, že postgresql.service je ve sktuečnosti jen skript, kterej má pouštět konkrétní verze postgresql serviců. A ty zjevně běžej (říkal jsem si, že je divný, že všechno funguje).

Takže to nejspíš znamená jen to, že je musím restartovat po jedný místo najednou. Hmm.

Uživatelský avatar
kostrivec
Příspěvky: 278
Registrován: 9. 8. 2017, 17:09
Kontaktovat uživatele:

Re: IT pro otrlé

Příspěvek od kostrivec » 22. 5. 2019, 14:08

Na starém blogu jsem měl "URL" článku ve fragmentu, nějak takhle

Kód: Vybrat vše

#!clanky/2019-04-24-predstavy_minulosti_rozhodnuti.md
a na novém už jako běžnou pretty URL, nějak takhle

Kód: Vybrat vše

/blog/2019/04/24/predstavy_minulosti_rozhodnuti/
Protože jsem na starou doménu plácnul nový blok, vznikl problém, jak stará URL s fragmentem přesměrovávat na nová s pretty URL, aby staré odkazy pořád fungovaly.

Javascriptem, jasně. Takže pěkně parsovat regexpem z

Kód: Vybrat vše

post = window.location.hash
s named capturing groups

Kód: Vybrat vše

post.match(/^(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})-(?<name>.+)[.]md$/)
Zboucháno, otestováno, nasazeno! ... o pár dní později "Proč to kua nefunguje?"

Protože named capturing groups umí jenom několik posledních verzí Chrome, kdežto třeba Firefox pořád ještě ne :-?

Takže jsem skončil na ošklivém číselném indexu

Kód: Vybrat vše

post.match(/^(\d{4})-(\d{2})-(\d{2})-(.+)[.]md$/)
To mám za to, že to testuju jenom v prohlížeči, který mám zrovna otevřený :oops:
Z lásky k ošklivému káčátku drdplus.info
Blog o podhoubí pro DrD+II, 1. 10. 2019

Uživatelský avatar
OnGe
malý zelený křečopažout
Příspěvky: 10410
Registrován: 5. 2. 2010, 09:27
Bydliště: Prdelná lhota (čti Praha)
Kontaktovat uživatele:

Re: IT pro otrlé

Příspěvek od OnGe » 22. 5. 2019, 17:16

Proč to děláš javascriptem a ne rewritem?
Nežít je jediná životní prohra

výběr z vlastní zahrádky:



:idea: RPG kuchyně: 2010 - 2013 - 2017
:?: Horní progressbar - to se budete divit... možná
:?: Dolní progressbar - dávám tomu rok... maximálně dva

Uživatelský avatar
Alef0
Příspěvky: 5832
Registrován: 7. 6. 2004, 10:22
Bydliště: Košice, SR.

Re: IT pro otrlé

Příspěvek od Alef0 » 22. 5. 2019, 22:49

Presne, ved Apache mod_rewrite je na toto stvoreny uz od roku 1995.
Preklady [preklad/korektury/layout]:
Wilderness of Mirrors: 100%/99%/0
In a Wicked Age, CZ: 100%/100%/0
FATE SK: 100/100/0

Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 14182
Registrován: 18. 6. 2003, 20:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion » 24. 5. 2019, 14:28

K čemu jsou (ve zkratce) přesně dobré anonymní funkce?
\\[T]// PRAISE THE SUN! \\[T]//

Uživatelský avatar
York
Příspěvky: 11709
Registrován: 24. 2. 2012, 17:31

Re: IT pro otrlé

Příspěvek od York » 24. 5. 2019, 14:36

Eleshar_Vermillion píše:
24. 5. 2019, 14:28
K čemu jsou (ve zkratce) přesně dobré anonymní funkce?
Třeba když je to callback funkce, kterou něčemu předáváš jako parametr a rovnou tam napíšeš její tělo. Nebo třeba když přiřazuješ event handler. Pak typicky píšeš něco jako:

Kód: Vybrat vše

component.onClose = () => { this.doSomething(); }
Tu funkci rovnou přiřazuješ do proměnný 'onClose', takže není potřeba ji extra pojmenovávat. Navíc je to arrow function, takže přes closure automaticky capturne this. Tzn this.doSomething() skutečně poběží na tom this, které bys tam čekal ;-)

edit: V tomhle příkladu vlastně používáš anonymní arrow funkci jen na to, abys capturnul this a zavolal na něm metodu doSomething(), která pojmenovaná je.

Uživatelský avatar
Resurrection
Příspěvky: 4705
Registrován: 26. 9. 2006, 10:34

Re: IT pro otrlé

Příspěvek od Resurrection » 24. 5. 2019, 14:43

Eleshar_Vermillion píše:
24. 5. 2019, 14:28
K čemu jsou (ve zkratce) přesně dobré anonymní funkce?
Využití je samozřejmě různé a v konečném důsledku jde spíš o zjednodušení psaní kódu než o cokoliv jiného. Pár příkladů:

- Máš kolekci věcí a chceš pro každou z nich zavolat nějakou funkci. Ta funkce je ale specifická jen pro tvoje dané místo, nikde jinde ji nevyužiješ a k ničemu jinému ji nepotřebuješ. Můžeš samozřejmě udělat samostatně stojící funkci někde nebo udělát novou member funkci na objektu. Ale to akorát bude "clutter" v kódu. Lepší je udělat anonymní funkci, kterou do toho prostě pošlu.

V C++:

Kód: Vybrat vše

std::vetor<int> collection{1,2,3,4,5}; //seznam 5 čísel
auto lambda = [](int i){ std::cout << i;  }; //Toto je anonymní funkce, která vypíše proměnnou i
std::for_each(collection.begin(), collection.end(), lambda); //pro každé to číslo zavolej tu lambda (anonymní) funkci
- Máš kolekci věcí a chceš je seřadit. Ale nechceš nebo nemůžeš použít standardní operátor "<". Na to se taky hodí anonymní funkce.

Kód: Vybrat vše

auto lambda = [](int left, int right){ return left > right; }; //lambda co dělá úplnou pitomost, obrací pořadí oproti logickému
std::sort(collection.begin(), collection.end(), lambda);
- Máš API, které bere callback. Prostě funkci, kterou v nějaké situaci zavolá. Pokud je tvůj callback v dané situaci tak specifický, že absolutně nedává smysl z něj dělat samostatnou funkci někde jinde, uděláš prostě na daném místě anonymní funkci a tu dáš jako ten callback.

Kód: Vybrat vše

void apiCall(auto callback); //Funkce, co bere callback
auto lambda = []{ std::cout << "Callback called!"; }; //Když tuto anonymní funkci někdo zavolá, vypíše se, že se zavolala
apiCall(lambda); //Zavolání funkce, která bere ten callback
Opět, anonymní funkce ti neumožňují dělat nic, co se nedá udělat i jinak. Ale umožňují ti dělat věci daleko elegantněji a čistěji a nebordelit si kód nějakými extrémně specifickými věcmi s často jen jednorázovým použitím na daném konkrétním místě.

EDIT: Ve všech případech lze tu anonymní funkci napsat přímo na místo, kam jí posílám, ale pro názornost jsem jí vždy nejdřív uložil do proměnné.
Secrets are power.

Uživatelský avatar
Eleshar_Vermillion
černá eminence
Příspěvky: 14182
Registrován: 18. 6. 2003, 20:31
Bydliště: Praha

Re: IT pro otrlé

Příspěvek od Eleshar_Vermillion » 24. 5. 2019, 19:30

Takže je za tím furt snaha mít věci, které patří k sobě, zřetelně u sebe v jedněch závorkách (tj. v rámci jedné funkce, která to... enkapsuluje? a dědí věci z té nadřazené funkce?), ale s tím, že dotyčná procedura už se nejspíš jinde neopakuje, takže ji nepotřebuju pojmenovávat?
\\[T]// PRAISE THE SUN! \\[T]//

Odpovědět

Zpět na „Realita a pseudorealita“

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host