Důležité upozornění!

Policie České republiky se zajímá o IP-adresy osob, které komentují tento blog. Ve vlastním zájmu zde proto nic nepopírejte, nezpochybňujte, neschvalujte, neospravedlňujte, nikoho a nic nehanobte, nepodporujte a nepropagujte, a pokud se přesto rozhodnete komentář přidat, pak se, prosím, ničemu nedivte.

Pamětníci si možná vybaví obrázek Turingova stroje z lega, jímž jsme ilustrovali text o Národní databasi DNA, u níž je pouhé zjištění počtu záznamů operací tak složitou, že nad tím programátor musí strávit celý pracovní týden.

Nemýlili jsme se. Spor mezitím dospěl k soudu a ministerstvo vnitra nám to ve svém vyjádření vysvětlilo:

Informační systém FODAGEN má velmi složitou strukturu dat, která je dána účelem, k němuž je tento informační systém zřízen, a službami, jež by měl v budoucnu po svém dokončení Polici[i] České republiky poskytovat při odhalování trestné činnosti, zjišťování jejích pachatelů a plnění úkolů podle trestního řádu. Vhledem k této složitosti systému nelze získat údaje požadované v otázkách č. 1 a č. 2 předmětné žádosti jednoduchým SQL dotazem, jak si žalobce představuje. V době moderních informačních technologií Policie České republiky pracuje při plnění svých úkolů s nesmírně rozsáhlými objemy různě navzájem souvisejících dat, a proto získání zdánlivě jednoduchých statistických údajů z informačního systému je ve skutečnosti komplikovaný proces. Podle sdělení Kriminalistického ústavu Praha, který informační systém FODAGEN spravuje, bylo nutno k získání údajů požadovaných v otázkách č. 1 a č. 2 žádosti vytvořit program, který má celkem 771 řádků. Práce na vytvoření tohoto programu zabrala jednomu programátorovi celých pět pracovních dnů, tj. 37,5 hodiny.

V replice na to reagujeme: Pokud by žalobce měl žalovanému věřit, že zjištění objemu dat evidovaných v Národní databasi DNA vyžaduje 37,5 pracovních hodin, vyvstává otázka, zda a jak lze takový systém vůbec rozumně a efektivně využít k tomu, k čemu je určen, tedy primárně k boji proti zločinnosti.

Nevíme, arci dokážeme si představit, kolik času by programátorům z ministerského teamu zabralo řešení problému skutečně složitého, např. zjištění, zda systém neobsahuje duplicity. To by, tušíme, byl úkol pro několik generací.

Náš spor řeší senát Městského soudu v Praze 8 A Slavomíra Nováka, s nimž máme smíšenou zkušenost: na jedné straně vydal vynikající rozsudek ve věci policejního zákazu nahrávat zasedání zastupitelstva obce, na straně druhé s tímto senátem bylo dost mrzení, a to i před Ústavním soudem.

Komentáře   

0 # Anonymní 2016-07-29 14:13
Vážený pane Pecina, dovolím si předpokládat, že vaše argumentace je kvůli soudnímu sporu účelově vystavěná tak jak je.

V případě kdyby tomu tak nebylo, dovolil bych si poznámku, k sporu o bod 1 vaší žádosti

1. U kolika osob je v soucasné dobe v informacním systému FODAGEN evidován záznam o odebrání biologického materiálu ve smyslu ustanovení cI. 22 odst. 9 písmo d) závazného pokynu policejního presidenta C. 250/2013, o identifikacních úkonech (dále jen "Pokyn")?

Obtížnost zjištění takovéhoto dotazu nemá nutně nic společného s architekturou samotné databáze, ale se samotnými daty.

Triviální příklad může být:

ID;NAME;RODNE_CISLO
1;Tomas Pecina;7168971200
2;Pecina Tomas;7168971200

už zde je vidět, že COUNT(*) nepomůže. Situace je nicméně triválně řešitelná pres count(distinct RODNE_CISLO). V řadě případů neni jednoduchy unikatni identifikator osoby k dispozici - cizinci, osoby kde neni dostatek informaci atd. Problem zjisteni faktickeho poctu realnych entity ktere jsou v databazi (zakazniku, pacientu, pachatelu, atd.) je proto casto prekvapive netrivialnim ukolem. Pro mnohe je to prekvapenim, ale lecktera banka/pojistovna ma problemy presne spocitat kolik ma vlastne zakazniku (pojistovna typicky zna pocet smluv, banka pocet uctu).

S pozdravem

-EN-
0 # Tomáš Pecina 2016-07-29 14:26
Pokud by měli databasi vedenou podobným způsobem, nevím, zda by prošli u ÚOOÚ. Stanoví-li interní pokyn např. povinnost data po určité době zlikvidovat (smazat), musí to SW umožnit. Vsadil bych si proto na COUNT(*).
0 # Sekal 2016-07-29 15:02
Několik let jsem pracoval s databází klientů velké finanční instituce, včetně tabulek s 10 miliony+ řádků a vytvářel nad nimi komplikované SQL...

Sepsat SQL, které požaduje v. p. Pecina je otázkou max. půl hodiny pro zkušeného správce; pokud by ovšem nikoho takového neměli, potom to může být i několik dnů, po které bude trvat, než dotyčný zjistí strukturu databáze a obsah tabulek. Potom za půl hodiny napíše ten dotaz (včetně odladění).
0 # abba Hilarion 2016-07-29 17:38
select
count (distinct t.rodne_cislo) as počet
from
dwh.fizl_databaze.subjekty t

Napočítal jsem čtyři řádky v Oracle SQL. Trvalo mi to napsat asi půl minuty.

Já si myslím, že se zeptali ajťáka, jak to bude dlouho trvat. Řekl "dám vám to na konci tejdne" (protože se mu to nechtělo dělat) a oni si tam pak napsali tejden (37,5h).
0 # Anonymní 2016-07-29 14:33
"Zafixoval" jste si vytvoreny zdrojak napr. pozadanim o jeho SHA2 hash ?

Predpokladam, ze strukturu databaze neznate, odmitli ji poskytnout pres AutZ/PolZ... ?
0 # Tomáš Pecina 2016-07-29 14:40
To bych nechal na znalcích. Já se tím budu pouze dobře bavit.
0 # gogo 2016-07-29 14:48
Já bych se nedivil, kdyby naši slovutní orgáni implementovali nejnovější hit: Write-only databázi. Vyznačuje se neomezenou kapacitou a absolutní bezpečností dat. Také řada operací, např. funkce COUNT nebo SUM mohou být optimalizovány tak, že vrací konstantu.
Je smutné, že tito odborníci musí čelit nepochopení laické veřejnosti.
0 # Anonymní 2016-08-01 15:19
Výborný nápad, Gogo!

Dovolil bych si pro Vaši WO databázi navrhnout výpočetní stroj: Byla by to UTP Cat6 zásuvka, vestavěná do elegantní skříňky z černě eloxovaného hliníku. Stroj by byl velmi ekologický, bez nutnosti připojení k rozvodu elektrické energie.

Q.
0 # gogo 2016-08-01 15:49
Já bych přece jen raději volil standardní variantu s připojením. Každé takové zařízení musí obsahovat minimálně jeden mechanický vypínač, nejlépe v designu falešného chromu a zejména nezbytné svítivé diody. V základní verzi by samozřejmě stačilo plastové tlačítko a zelená provozní LEDka, v Hitec verzi (státní správu) potom zméněný chromovaný čudlík a trojice LEDek, z nichž jedna musí bezpodmínečně blikat. Pro zelená ministerstva by byl přístroj vybaven solárním článkem místo připojení k elektrické síti. Ale zákazník by musel samozřejmě zajistit celodenní osvětlení serveru, na což bychom vypracovali a zrealizovali projekt .. tedy osadili speciální k tomu určené žárovky, které vydrží nepřetržitě svítit, samozřejmě patřičně zálohované.
Teprve v tomto provedení by přístroj byl zařazen to třídy nejekologičtějších zařízení.
0 # Anonymní 2016-08-02 17:19
Gogo-tak tady mate dalsi zajimavost:

relax.lidovky.cz/.../...

Neocon
0 # gogo 2016-08-03 08:27
To už jsem viděl.
Je na tom zajímavé si představit způsob myšlení těch zakazovačů. Předpokládám, že mu taky zakázali se dívat na televizi po deváté hodině večerní a používat při stolování nůž.
0 # Anonymní 2016-08-03 14:29
To nevim, kazdopadne na seznam/database sex offender se dostane kazdy, kdo si koupi prostitutku, a vzhledem k tomu, ze oficialni cislo agentek/provokaterek, je mezi holkama na ulici 30-40%, zalezi na statu, tak velke procento lidi, co v NY nemuzou hrat pokemony, budou chudaci, co zastavili u damy na silnici...
Neocon
0 # Starej Kačaba 2016-08-04 01:55
takových zpráv ze "země svobody" najdete plno, jestli se chcete zasmát , vyděsit nebo obojí. Kdyby byly USA okupované ještěry z jiné planety co zavedli takové zákony, litoval bych Američany, ale takhle mají přesně to co chtějí a co si zvolili.
0 # Anonymní 2016-07-29 14:59
No tak tam je hlavně podezřelé, jak přesně byli schopni definovat, kolik řádků by ten program konkrétně měl. To vám žádnej programátor neřekne (jenom ve filmech), dokud ho nemá hotovej a hlavně to není vůbec žádný ukazatel složitosti kódu, jinými slovy komplexnost aplikace se už asi 30 let neměří na řádky kódu. 700 řádků kódu je jedna třída, kterou sesmolí za 3 hodiny, když se fláká.

Za další, jejich vyjádření je výmysl už jenom proto, že pokud by skutečně systém byl tak komplexní, jak uvádějí, tak by se vůbec v takových termínech nebavili a k programátorovi samotnému a počtu řádků by se ani nikdo nedostal. K programátorovi se zákazník nikdy (NIKDY) nesmí dostat, to by žádný manažer opravdu velkého projektu nikdy a za žádných okolností nedovolil. Dostalo by se to k analytikovi, který by nějakému high-level managerovi dal odhad, jaké konkrétní prostředky jsou k takovému úkonu potřeba. Vzhledem k požadavku pana Peciny by to probíhalo nějak takto:

1) Analytik v podstatě ihned odpoví, že to je oprace, kterou systém pro zákazníka nepodporuje, provést query nad živými daty samozřejmě nesmí.

2) Manažer komunikuje tuto informaci v lidské řeči zákazníkovi a zeptá se ho, jak důležitá pro něj ta informace je a jak často ji bude požadovat.

Reálně by v této situaci vyšli vstříc, zjistili výsledek a ten vám poslali, ale vy jste občan, organismus nižší než hovno a tak prostě fuck off, nelze.
0 # Tomáš Marný 2016-07-29 15:33
Chtějte doložiz ten kód na důkaz nevěrohodného tvrzení žalované strany.
0 # Tomáš Pecina 2016-07-29 15:45
Vy se domníváte, že nelze jednu databasovou query rozepsat na 771 řádků? Někteří advokáti umějí napsat to, co já vyjadřují jednou větou, i na pět stran, proč by to mělo být jiné v IT?

Moje původní hypothesa byla, že DB connector mají v jazyce Brainfuck, ale ta byla mezitím vyvrácena.
0 # Anonymní 2016-07-29 16:17
Jenze pak to zkomprimujete do toho jednoho selectu, predlozite soudu, nechate znalce posoudit shodnost a ucelnost jejich snazeni bude tatam a nemohou nic pozadovat. Nebo ne?

V civilu by soud podle me s prehledem vzal i vyjadreni obycejneho programatora ne-znalce "oboji dela to same" a "770 radku ze 771 je zbytecnych" :)

MH
0 # Tomáš Marný 2016-07-30 14:06
Ale jistě že to jde rozepsat na 771 řádek. Klidně i na víc. Ale když se odhalí, že to je kravina, tak jejich argumentace proti žalobě padne.
BTW, nešel by ten úžasný kód získat samostatnou žádostí o informace?
0 # Tomáš Pecina 2016-07-30 14:36
Nešel. Něco tak geniálního bude jistě podléhat autorskoprávní ochraně.
0 # Radek Mikula 2016-07-31 19:12
Tento komentář byl odstraněn autorem.
0 # Mormegil 2016-08-08 14:40
Zeptám se hloupě, možná jste o tom už i někde psal: Chápu dobře, že ten programátor tu práci vykonal, oni výsledky mají, ale chtějí se teď na vás finančně zahojit, takže vám ty výsledky nedají, dokud nezaplatíte tu (již vykonanou) práci programátora? A to se smí? Můj dojem byl, že to placení dle InfZ má být „aby se to udělalo“, zatímco za již existující informace (jakkoli obtížné bylo jejich původní získání) nelze platbu požadovat. Pletu se, nebo je to nějak složitější?
0 # Tomáš Pecina 2016-08-08 14:59
Jistěže se nepletete, ale judikováno to takto zatím není.

Komentovat články mohou pouze registrovaní uživatelé; prosím, zaregistrujte se (v pravém sloupci dole)