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 - Pavel Stěhule

Stran: 1 ... 14 15 [16] 17 18 ... 31
226
Vývoj / Re:Problémy s JavaScript v praxi
« kdy: 29. 09. 2018, 14:52:52 »
Podle mne nejvetsi problemy JavaScriptu v praxi jsou:

1) V eshopu si chcete koupit vyrobek, ktery ma parametry A, B a C. Ve filtru kliknete na A, roztoci se kolecko, JS zacne drtit a po nekolika desitkach vterin, az vysype stranku s vyrobky s parametrem A, lze zaskrtnout B. Opet kolecko, JS drti desitky vterin, dalsi stranka a konecne lze zaskrtnout C. Nevim, co je tak tezkeho na tom udelat stranku, kde si zakaznik nejprve naklika A, B, C, pak to teprve odesle a dostane vysledek na prvni pokus, ne na treti.


Není na tom nic těžkého. A nemůže za to JS, ale debilní vývojáři a ještě debilnější UX "designéři".

To jiste, ale pak se nabizi otazka, vzhledem k rozsirenosti tohoto jevu, proc je mezi JS vyvojari a designery tak hrozive % debilu, potazmo odpovedi, ze bud je ten jazyk laka, nebo vyrabi. Nebo kombinace obojiho, ale tak jak tak z toho JS nevychazi dobre.

To fakt není jen záležitost JS :). Vemte libovolný mainstream jazyk. Teď jsem školil lidi, co dělají erlang, a po nějaké době jsem měl z toho školení velice dobrý pocit. Nicméně erlang je a byl jazyk z vyšší vstupní bariérou, a ten jazyk dělají srdcaři. JS umožňuje prasit, ale umožňuje také napsat špičkové portabilní aplikace.

227
Hardware / Re:Linux (ubuntu) na pracovnej stanici od Lenova Pxx
« kdy: 29. 09. 2018, 05:53:12 »
Mám relativně starou P520 a nemám jediný problém. Je fakt, že nedělám 3D grafiku a nehraji hry - ale s tím, co potřebuji pro práci mi to běží absolutně bez problémů.

228
Desktop / Re:Má linux na desktopu budoucnost?
« kdy: 28. 09. 2018, 20:36:35 »
@Inkvizitor: Naznačujete čtvrtou cestu (MS, OSX, Linux) - co je jí?

Podle mě dojde do 5 - 10 let k návrhu a implementaci nové generace OS na bázi (dejme tomu) Redox OS. Systém bude dobře navržený, zkompilovaný na míru potřebám moderního desktopu a jednotlivé aplikace poběží v sandboxu. Mac OS X je vize egomaniaka, MS Windows je plod korporátní kultury 80. let, Linux je systém snažící se být vším pro všechny - od malých krabiček až po superpočítače. OS nové generace bude dobře otevřený, transparentní, reprodukovatelný systém - dobře navržený a šitý na míru potřebě moderního desktopu.

Vývoj se určitě nezastaví, ale nejsem optimistou. Vývoj nového operačního systému je dost náročná záležitost - přičemž u desktopu (pokud by to nebylo hw omezeno jako u Apple), tak se něčím musí motivovat dodavatelé hw, aby dodali drivery i pro další OS. Pokud by nový lepší systém měl umožnit běh stávajícího sw, tak bude +/- interně stejně komplikovaný jako stávající. Navíc, pokud by pro něj Microsoft neportoval své Office, tak by opět na desktopu měl problém.

Takže jakkoliv bych si rád dovedl představit, že se stávající vrstvy zahodí, a vše se napíše znovu pro nový hw, a s dnešními znalostmi a možnostmi, nedovedu si představit, že by se to stalo. Dovedu si představit obecnou platformu, která by běžela čistě virtualizovaně ve stávajících OS -- ale i to je to běh na dlouhou trať.

229
Vývoj / Re:Úloha z SQL
« kdy: 17. 09. 2018, 10:37:19 »
SELECT id_clanek FROM clanky LIMIT 200 - vytahne 200 clanku, idecka

Tim druhym si ale nejsem jisty, to ani rozepisovat nejdu. Melo by to byt neco s GROUP BY a COUNT.
Pro kazde id_clanek vypsat vsechny komentare. Ocislovat je COUNTem, pokud maji stejne id_clanek. A potom pomoci where vybrat vsechny, ktere maji count<10. Tohle budou asi SELECTY v sobe.

A jako jeden dotaz by slo o 3 SELECTY.

Jinak, asi moderni db na to maji nejspis 1 prikaz, jen ten neznam.

S lateral joinem je to primitivní
SELECT * 
   FROM posts,
            LATERAL (SELECT *
                               FROM discuss
                              WHERE discuss.id_post=posts.id
                              ORDER BY discuss.title
                              LIMIT 10) x
  LIMIT 200

230
Vývoj / Re:úloha z SQL
« kdy: 16. 09. 2018, 07:09:33 »
Ukázka úlohy TOP n pro každou skupinu - je to dobrá úloha pro cvičení - čistě relačně ve starém SQL 86 by to možná šlo přes selfjoiny - a spíš by to připomínalo IQ test. Proto už se takové úlohy řeší nerelečním aparátem v SQL - např. window funkcemi, případně lateral joinem a limitem - viz např. článek https://www.root.cz/clanky/budte-moderni-v-sql/ .

Pokud databáze implementuje ANSI SQL 2003, 2008 nebo má obdobnou funkcionalitu - nejstarším možným způsobem je korelovaný poddotaz s LIMITem - dnes se to dá udělat čitelněji a čistým ANSI SQL.

231
Vývoj / Re:Mají tabulkové databáze v dnešní době smysl?
« kdy: 14. 09. 2018, 11:53:07 »
Zajímavá je otázka, co se děje, když nekdo přistoupí na vaše doporučení a naučí se myslet jak požadujete a programuje v nejakém OO jazyce za použití rel.databaze s SQL. Podle mých zkušeností je nejlepší dopoledne psát ten program a odpoledne k tomu dodělat ty selecty. A samozrejmě je třeba po pracovní době přepnout do toho procedurálního myšlení, aby člověk nazapomněl vystoupit na správné stanici z tramvaje.

Nedělejte z toho vědu - moderní OOP jazyky jsou zjednodušené na maximum, a SQL bylo navržené pro policajty. Nemám s tím jediný problém - datové modelování dělám v SQL, a prezentační vrstvu v OOP. Hledáte problém, tak kde není. Osobně neznám nikoho, kdo by s tím měl problém. Jde jen o přijmutí faktu, že s jedním přístupem nepochodíte. Jinak programuji v bashi, jinak v C, a úplně o něčem jiném jsou puppety nebo třeba Splunk. Takový je život.

232
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 18:45:06 »
To je to COBOLovské myšlení, které se nepodařilo vymýtit - jen převléklo kabát, a objevilo se pod jinou jmenovkou - ORM.

Nechci ORM obhajovat, ale musím :-) Principielně není problém, aby dobré ORM posílalo optimální SQLka. Problém není myšlení, ale to, že ta ORM jsou blbě napsaná. Bohužel všechna, a to dělá pak ten blbej dojem.

:)

233
Vývoj / Re:Mají tabulkové databáze v dnešní době smysl?
« kdy: 12. 09. 2018, 11:31:39 »
Toho, kdo pro práci s relační DB používá kurzory místo hromadných operací, protože je zvyklý tak programovat, bych věšel za k...e do průvanu  ;D

jak vypada ten update-statement, ktery soucasne pro kazdy zmeneny zaznam pise fprintf do nejakeho logfilu?

Je to legrace - v praxi bych to delal jinak - ale jde to, napr, pokud chcete zmeny pred, po.
with x as (select * from foo where a between 7 and 10), 
  y as (update foo set b = foo.a + 10 from x where foo.a = x.a returning foo.*)
  select 'before', x.* from x union all select 'after', y.* from y;

pokud by vam stacily jen zmeny po, tak je to jednoduche:
update ... returning *;

234
Vývoj / Re:Mají tabulkové databáze v dnešní době smysl?
« kdy: 12. 09. 2018, 11:18:20 »
Toho, kdo pro práci s relační DB používá kurzory místo hromadných operací, protože je zvyklý tak programovat, bych věšel za k...e do průvanu  ;D

jak vypada ten update-statement, ktery soucasne pro kazdy zmeneny zaznam pise fprintf do nejakeho logfilu?

Můžete zatrigrovat a plnit si tabulku, db log, případně nějaký jiný log. V některých db se o to může postarat audit. Tahat data na klienta, abyste udělal fprintf do logu může být dost drahé.

235
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 08:59:21 »
A proto to spousta vsemoznych patlalu nedela. Moh bych ukazat desitky funci v ruznych aplikacich ktery nastavujou nejaky parametr na zaznamech, a delaji to ... po jednom zaznamu. A kdyz to nekdo stopne, tak to pekne po jednom rollbackuji. Takze to trva a trva a trva. Typicky to pak vypada zhruba tak, ze zamestnanci chodi za administratorem na tema "uz zas potrebuju spustit tuhle pitomost" a admin ma napsany nejaky query, ktery udela totez, jen za desetitisicinu casu.

Jeden priklad za vsechny, karta zbozi ma jako jeden z parametru novou cenu s platnosti od. System ma funkci na prepsani tyhle ceny (pokud uz plati) do aktualni ceny produktu. Ta funce je schopna pri desitkach tisic produktu bezet i nekolik hodin. Nacte si totiz vzdy jeden zaznam, ten aktualizuje a tak porad dokola. Update na vse do databaze dobehne v radu nekolika sekund.

Pláčete hezky, ale na špatném hrobě :). To je to COBOLovské myšlení, které se nepodařilo vymýtit - jen převléklo kabát, a objevilo se pod jinou jmenovkou - ORM. Taková je realita - můžete mít sebelepší technologii, a lidi si to stejně budou dělat po svém. A když se zjistí, že je to špatně, tak už je pozdě něco měnit. Prostě lidi. Ty korporátní aplikace kolikrát ještě mají kořeny v COBOLu (nebo lidi, co je píší).

236
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 07:57:04 »
Mám zákazníka u kterého reporty trvají minuty, bo jsou napsány funkcionálně - což je to nejhorší, co může být.
Registr vozidel? ;D
Registr vozidel to není :)

237
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 05:50:00 »
Jasně, dnes jsou ty RDBMS to jediné, s čím je možné k zákazníkovi přijít. Přesto nechápu, jak mohli inženýři dovolit, aby se tak rozmohlo.

Protože, když se to používá správně, tak je to rychlé. Navíc je to variabilnější. Potřebuji cokoliv z db, pokud mám ODBC, ADO, BDE, připojím se z libovolného klienta - Excel, Access, libovolná aplikace a udělám, co potřebuji. Vzpomínám na doby, kdy když jsme chtěli udělat import dat do systému, tak nám dodavatel nabízel speciální moduly za 10K dolarů. S databází, ke které máte alespoň ODBC driver, máte data.

238
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 05:45:39 »

SQL vzniklo v IBM jako nahrada za konkurencni dotazovaci jazyk QUEL od Stonebrakera (autor postgresu). SQL = SeQUEL to QUEL. Ten nakonec ve svych databazich nahradil quel sqlkem ne proto, ze bylo lepsi, ale ze bylo pouzivanejsi. To jen diky tomu, ze za nim stala IBM.

Doporucuju shlidnout nejaky video kde to Stonebraker vysvetluje. Treba jeho turing award speech.

To jste asi úplně nepochopil. SQL a QUEL vznikalo paralelně. Nicméně QUEL vznikal na Berkeley univerzitě a vycházel z matematického zápisu, a SQL bylo cíleno na vojenskou sféru a bezpečnost, a vycházelo z angličtiny. Hned od začátku měl Quel lepší optimalizátor než DB2, Oracle a začátkem 80 let se Ingres masivně používala. Nicméně trh převálcoval Oracle - a už v druhé půli 80let se do Ingresu dopsal překladač z SQL do Quelu.

To, co rozhodlo, byl byznys Oracle - a Oracle vydělal na tom, že za poloviční cenu dodával, to co IBM. Nedokážu posoudit, ale myslím si, že určitou roli hrála i čitelnost pro běžného uživatele - přeci jen je rozdíl mezi zjednodušenou angličtinou a matematickým zápisem.

239
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 12. 09. 2018, 05:36:53 »

aha, tak teď si myslím, že začínám chápat to nedorozumnění.

Takže, nejde o tu rychlost, jde jen a pouze o tu modularitu. Z hlediska modularity je assembler a C rovnocené řešení, protože mohu s oběma stejně dobře rozdělit problém na menší části. Jestliže ale začnu míchat imperativní jazyky s deklarativním dotazováním  dat, nastane ten známý impedance missmatch a jeho výsledkem je, že mohu modularitu zapomenout.

Kdybych se pokusi dosáhnout modularitu za pomoci RDBMS prostředků (tedy s deklarativním SQL jazykem), tak pak bych do sebemnší funkce zapsal nějaký select-statement. Taková funkce by formálně splňovala ten information hiding princip, prakticky je to ale nepoužitelné. Taková funkce může bý samozřejmě použita jakkoliv - tedy v nějaké smyčce se 100 tisic voláni. A v tu chvíli je to pomalé, nepoužitelné a tím jsme u té rychlosti , která zdánlivě zapříčiní ten problém s tou modularitou - ve skutečnosti je to ta SQL.

Jasně, a to je přesně to, co byste neměl v SQL dělat - tam platí, co můžete udělat jednou hromadnou operací, tak byste měl udělat jednou hromadnou operací. Pokud byste chtěl zapouzdřit nějaké dotazy, tak od toho tu jsou pohledy. Modularita v SQL db pro přístup v databázi se nedá udělat na aplikační straně funkcemi.

Porušení tohoto pravidla vede k tomu, že uživatelé mají pocit, že relační db jsou pomalé - už od dob COBOLu - a v každé best practices k SQL db se to dočtete na prvním místě. Tak jak v COBOLu, v IMS budu muset psát jiným stylem (což mi ani nezbyde, protože tam mám jiné vyjadřovací možnosti), tak v SQL se zase píše jiným způsobem než v těchto databázích. To je opravdu diskuze, která se vede od dob COBOLu a pro to, abyste mohl efektivně s SQL pracovat, tak musíte pochopit, že existují hromadné operace, a pohledy. Pokud to pochopíte, tak ok, pokud ne, tak pak vlastně tu databázi používáte tím nejhorším možným způsobem.

A i když ji už používáte tím nejhorším možným způsobem - pokud se použijí prepared statements a máte indexy, tak i při tom ISAM přístupu se dostanete k časům pod 1ms, což si myslím, že na těch starých mašinách jste neměli. Jenomže, pokud čtu 1000 řádků po jednom, tak jsem možná na 100ms, možná na vteřině. Pokud to udělám hromadnou operací, tak jsem na 1-10ms. Samozřejmě záleží jestli ještě do toho mám síťový traffic nebo nemám. Mám zákazníka u kterého reporty trvají minuty, bo jsou napsány funkcionálně - což je to nejhorší, co může být. Když je napíšu čistě, tak trvají několik málo vteřin - protože optimalizátor dostane prostor k optimalizaci. Ale tohle je blbost těch programátorů, kteří ignorovali fakt, že už nedělají v ISAM db, ale v Oracle.

Každá technologie má něco, co musíte respektovat, a pokud to nechcete nebo neumíte, tak to nepoužívejte. Excel je super, ale když ho začnu ohýbat na databázi, tak je to zoufale pomalé. A opačně - multidimenzionální reporting se mi dobře udělá v Excelu a relační databázi je to oser.


240
Vývoj / Re:Maji tabulkove databaze v dnesni dobe smysl?
« kdy: 11. 09. 2018, 22:06:44 »
Naprosto bezne se denne setkavam s tim, ze v aplikacich jsou do databazi selecty s joiny pres nenaindexovane a nejlepe textove pole, idealne jeste rekurzivni a pak se vsichni strasne divi, ze to dobehne ... za hodiny. Tohle kdyby nekdo udelal pred 20 lety, tak skonci obratem na dlazbe.

Já bych to zase až tak neidealizoval - první projekty jsem začal dělat po 94 - a žádná sláva to nebyla. O co jsme měli víc nadšení, o to nám víc chyběly znalosti. Vyjma pár ajťáků ze škol se všichni učili za pochodu - a skoro všude se začínalo od nuly. Když si vzpomenu na rok 2005, kdy jsem většině programátorů vysvětloval rozdíl mezi outer joinem a inner joinem, tak bych řekl, že spíš se doba o něco zlepšila. Před 30 roky jste jednak programoval, a jednak hledal kombinaci kódu, kdy sw neklekl. U MS Accessu jsem to zažíval osobně, o MSSQL jsem to slyšel z první ruky. Testy, kontroly, .. tam kde se používala PC to byl divoký západ - byly to fajn časy, ale co se týče kvality sw nebo znalosti průměrného programátora, tak bych se k tomu nevracel.

Stran: 1 ... 14 15 [16] 17 18 ... 31