Apple představil nový MacBook Pro s čipy M4, M4 Pro a M4 Max.
Na GOG.com běží Halloween Sale 2024. Při té příležitosti lze získat zdarma počítačovou hru Return of the Phantom.
Společnost OpenAI spustila internetový vyhledávač ChatGPT search.
Konference OpenAlt 2024 proběhne již tento víkend 2. a 3. listopadu v prostorách FIT VUT v Brně. Začíná ale už v pátek na warm-up party ve Studentském klubu u Kachničky v 17:00. Pokud jste ještě areál FITu nenavštívili, k dispozici jsou pokyny k orientaci. Na programu je 54 přednášek a workshopů. Témata jsou od silně technických témat jako je třeba GCC nebo PostgreSQL po méně technické témata jako eGovernment, nebo třeba detailní analýzu … více »
Byla vydána nová verze 6.9 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 14.0.1. Tor client na verzi 0.4.8.13. Thunderbird na verzi 115.16.0.
Vývojáři free a open source synchronizačního nástroje (a p2p náhrady Dropboxu) Syncthing oznámili, že z důvodu odporu ze strany Google Play ukončují podporu OS Android. Bohužel v rámci toho zmizí i vydání Syncthing na F-Droid, který má slabší uživatelskou základnu. Syncthing je na Androidu implementován formou wrapper aplikace, která spustí Syncthing démon, vyžádá potřebná oprávnění a zpřístupní webové rozhraní démona. Ve srovnání se
… více »V červnu 2022 bylo oznámeno, že z K-9 Mailu se stane Thunderbird pro Android. Trvalo to poněkud déle, než vývojáři předpokládali, ale včera byl první stabilní Thunderbird pro Android 8.0 vydán.
Projekt microDMG Racer na Kickstarteru nevyšel, tak se autor rozhodl uvolnit na ESP32 postavené autíčko i ovladač jako open source.
Byl vydán TrueNAS SCALE 24.10 „Electric Eel“. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Byla vydána nová verze 24.10.29 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nově s podporou AI (whisper.cpp) pro generování titulků. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Ano, uznávám, pomalu, ale jistě to na mém blogu vyhnívá... hlavně kvůli nedostatku času a nápadů, co si budeme povídat :-/ No a jelikož se většina mých zápisků v poslední době čím dál tím více odchylovala od zaměření ABC Linuxu, rozhodl jsem se založit tématicky volný blog Letters from Earth, na který jsem zároveň přesunul zápisky odsud za poslední půlrok.
FuxBlog budiž tedy nadále ryze technickým blogem se zaměřením na IT. Snad na něj budu mít čas...
Před dvěma týdny se objevila zpráva, že v rámci Datových schránek jsou zveřejňovány seznamy jejich uživatelů (viz Novinky.cz), což rozproudilo bouřlivou diskusi a vzbudilo mojí pozornost. Obratem jsem tedy seznam uživatelů stáhnul, abych se podíval, jak moc toho v něm člověk najde.
Ony ty seznamy jsou vlastně čtyři - samostatně existuje seznam právnických osob, seznam podnikajících fyzických osob, fyzických osob a orgánů veřejné moci. Seznamy jsou zabaleny v poměrně přehledném XML, které ale v přímém prohlížení komplikuje spousta balastu ve formě tagů, kterými jsou obaleny jednotlivé položky. Aktuálně se sice některé nepoužívají, ale jsou pro další implementaci dostupné, jak ostatně vyplývá z jejich definice, která je spolu se seznamy umístěna na webu Datových schránek.
convert_ds_data.m
pro GNU/OctaveAby se daly seznamy lépe prohlížet, rozhodl jsem se napsat si drobný skript pro konverzi datových souborů z XML do čistého textu, který by bylo možné buď pohodlně přímo prohlížet, nebo importovat dál do nějakého tabulkového procesoru (Calc, Excel...). Jelikož nejsem příliš zručný programátor, nabastlil jsem jej v GNU/Octave a výsledek si můžete prohlédnout a stáhnout pro případné použití níže.
function ds_list = convert_ds_data(ds_file, ulozit) % funkce pro konverzi dat z XML exportu datovych schranek do cisteho textu % pouziti out = convert_ds_data('input.xml', save) % parametr save muze byt 1 nebo 0 podle toho, zda maji byt data ulozena do textu % (c) 2023 Pushkin % This program is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by % the Free Software Foundation, either version 3 of the License, or % (at your option) any later version. % % This program is distributed in the hope that it will be useful, % but WITHOUT ANY WARRANTY; without even the implied warranty of % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the % GNU General Public License for more details. % % You should have received a copy of the GNU General Public License % along with this program. If not, see <http://www.gnu.org/licenses/>. version = '1.0 RC3'; NA_text = '--- '; no_info = 500; %%% Definice dostupnych poli %%% % XML flagy datovych souboru ds_atribut={{'box', 'N/A'}, {'id', 'ID Datové schránky'}, {'type', 'Typ datové schránky'}, {'subtype', 'Podtyp DS'}, % {'name', 'Jméno'}, % {'person', 'Osoba'}, {'firstName', 'Křestní jméno'}, {'lastName', 'Příjmení'}, {'middleName', 'Střední jméno'}, {'lastNameAtBirth', 'Rodné příjmení'}, {'tradeName', 'Obchodní jméno'}, {'ico', 'IČO'}, % {'address', 'Adresa'}, {'code', 'RUIAN kód obce'}, {'city', 'Obec'}, {'district', 'Část obce'}, {'street', 'Ulice'}, {'cp', 'Číslo popisné'}, {'co', 'Číslo orientační'}, {'ce', 'Číslo evidenční'}, {'zip', 'PSČ'}, {'addressPoint', 'RUIAN kód adresního místa'}, {'state', 'Stát'}, {'fullAddress', 'Plná adresa'}, {'pdz', 'Povolen příjem zpráv'}, {'ovm', 'Orgán veřejné moci'}, % {'hierarchyType', 'N/A'}, % {'hierarchy', 'N/A'}, {'isMaster', 'Hlavní DS'}, {'masterId', 'ID hlavní datové schránky'}, {'idOVM', 'Identifikátor orgánu veřejné moci'} }; atribut_pocet = length(ds_atribut); %%% vlastni skript %%% % nacteni vstupnich dat printf('Načítám vstupní soubor %s.\n\n', ds_file) if ~exist(ds_file, 'file') error(sprintf('Vstupní soubor %s nebyl nalezen.', ds_file)); end vstup=fopen(ds_file, 'r', 'n'); ds_data = fread(vstup, Inf, '*char')'; fclose(ds_file); printf('Vstupní soubor úspěšně načten.\n\n', ds_file) % info o tvorbe vystupniho souboru if ulozit == true ds_outfile = [ds_file(1:length(ds_file)-3) 'txt']; printf('Bylo zvoleno ukládání do souboru, jeho název bude %s.\n\n', ds_outfile) else printf('Výstup nebude uložen do souboru, data zůstanou pouze v paměti.\n\n') end % analyza dat ds_boxy = strfind(ds_data, ['<' ds_atribut{1}{1} '>']); printf('Bylo načteno %i položek.\n\n', length(ds_boxy)) ds_boxy = [ds_boxy length(ds_data)]; % vlastni zpracovani dat printf('Probíhá zpracování dat...\n\n') ds_cislo = 1; while ds_cislo < length(ds_boxy) if round(ds_cislo/no_info)*no_info == ds_cislo printf('Bylo zpracováno %i položek (%3.2f %%).\n\n', ds_cislo, (ds_cislo/(length(ds_boxy)-1))*100) end ds_list{ds_cislo} = ''; ds_box_xml = ds_data(ds_boxy(ds_cislo):ds_boxy(ds_cislo+1)); pom = 1; while pom < atribut_pocet pom = pom+1; string = getstr(ds_box_xml, ds_atribut{pom}{1}); if strcmp(string, 'true') string = 'ano'; else if strcmp(string, 'false') string = 'ne'; end end if strcmp(string, '') string = NA_text; else string = [string ' ']; end ds_list{ds_cislo} = [ds_list{ds_cislo} string]; clear string; end ds_cislo = ds_cislo + 1; end % data prebrana printf('Hotovo.\n\n') clear ds_box_xml % ulozeni vystupnich dat if ulozit == true printf('Probíhá zápis do výstupního souboru.\n\n') vystup = fopen(ds_outfile, 'w', 'n'); hlavicka = 'Číslo záznamu'; for pom = 2:atribut_pocet hlavicka = [hlavicka ' ' ds_atribut{pom}{2}]; end fprintf(vystup, '%s\n', hlavicka); for pom = 1:ds_cislo-1 if round(pom/no_info)*no_info == pom printf('Bylo zapsáno %i položek (%3.2f %%).\n\n', pom, (pom/(ds_cislo-1))*100) end fprintf(vystup, '%i %s\n', pom, ds_list{pom}); end fprintf(vystup, '\nKonvertováno skriptem convert_ds_data verze %s.\n(c)2023 Pushkin', version); fclose(vystup); printf('Zápis dokončen.\nKončím.\n\n') else printf('Výstupní soubor nebyl na vyžádání vytvořen.\nKončím.\n\n') end end % konec hlavni casti programu % procedura pro vycteni dat z XML function string = getstr(data, template) template = ['<' template '>']; index = strfind(data, template) + length(template); string = strtok(data(index:length(data)), '</'); if strfind(string, '>')~=0 string = ''; end end % konec procedury getstr
Implementace v GNU/Octave i kód samotný samozřejmě trpí několika zásadními nedostatky... Tím prvním je samozřejmě použití GNU/Octave, která umí použít pouze jedno jádro, takže vše závisí nejvíce na single-thread výkonu procesoru. Tím druhým je vlastní implementace, kdy každá položka je celá prohledávána tolikrát, kolik atributů se prohledává. Tady by v zásadě stačilo prohledat danou položku jen jednou, ale v případě, že by se v XML změnilo pořadí atributů, mohlo by dojít k vynechání přeskočených atributů. Co se týče samotných atributů, jistě si povšimnete, že některé jsou zakomentované - ty buď nebyly ve stažených souborech přítomny, a nebo slouží pouze k seskupení jiných.
Pro fragment XML:
<box> <id>cx2aize</id> <type>OVM</type> <subtype>10</subtype> <name> <person> <firstName></firstName> <lastName></lastName> </person> <tradeName>Bezpečnostní informační služba</tradeName> </name> <ico>47608676</ico> <address> <city>Praha 5</city> <district>Stodůlky</district> <street>Nárožní</street> <cp>1111</cp> <co>2</co> <ce></ce> <zip>15800</zip> <addressPoint>22738304</addressPoint> <state>CZ</state> <fullAddress></fullAddress> </address> <pdz>false</pdz> <ovm>true</ovm> <hierarchy> <isMaster>true</isMaster> </hierarchy> <idOVM>47608676</idOVM> </box> <box> <id>pgfs7nn</id> <type>OVM</type> <subtype>13</subtype> <name> <person> <firstName></firstName> <lastName></lastName> </person> <tradeName>Bezpečnostní informační služba - policejní orgán BIS, odbor inspekce (Bezpečnostní informační služba)</tradeName> </name> <ico>47608676</ico> <address> <city>Praha 5</city> <district>Stodůlky</district> <street>Nárožní</street> <cp>1111</cp> <co>2</co> <ce></ce> <zip>15800</zip> <addressPoint>22738304</addressPoint> <state>CZ</state> <fullAddress></fullAddress> </address> <pdz>false</pdz> <ovm>true</ovm> <hierarchy> <isMaster>false</isMaster> <masterId>cx2aize</masterId> </hierarchy> <idOVM></idOVM> </box>pak dostáváme výstupní textový soubor ve formátu:
Číslo záznamu ID Datové schránky Typ datové schránky Podtyp DS Křestní jméno Příjmení Střední jméno Rodné příjmení Obchodní jméno IČO RUIAN kód obce Obec Část obce Ulice Číslo popisné Číslo orientační Číslo evidenční PSČ RUIAN kód adresního místa Stát Plná adresa Povolen příjem zpráv Orgán veřejné moci Hlavní DS ID hlavní datové schránky Identifikátor orgánu veřejné moci 1 cx2aize OVM 10 --- --- --- --- Bezpečnostní informační služba 47608676 --- Praha 5 Stodůlky Nárožní 1111 2 --- 15800 22738304 CZ --- ne ano ano --- 47608676 2 pgfs7nn OVM 13 --- --- --- --- Bezpečnostní informační služba - policejní orgán BIS, odbor inspekce (Bezpečnostní informační služba) 47608676 --- Praha 5 Stodůlky Nárožní 1111 2 --- 15800 22738304 CZ --- ne ano ne cx2aize --- Konvertováno skriptem convert_ds_data verze 1.0 RC3. (c)2023 Pushkins tím, že oddělovače, které mám nastavené na tabulátor, lze ve zdrojovém m-filu změnit.
Seznamy datových schránek jsem zatím stáhl pouze 2x - v den publikace původního článku na Novinkách a 31. 3. Oba stažené seznamy jsem nechal zkonvertovat a sledoval jsem, kolik bylo nalezeno položek, jak dlouho konverze trvala a jaká byla velikost výsledného souboru. Pokud byste se pokoušeli o něco podobného, tak referenční sestava pro odhad potřebného času je tato. Číselné výsledky si můžete prohlédnout v tabulkách níže.
Název souboru | Velikost XML [B] | Velikost TXT [B] | Počet položek | Doba konverze [s] |
---|---|---|---|---|
datafile-seznam_ds_fo-20230320184037 | 531 904 147 | 89 224 292 | 627 458 | 2 710.66 |
datafile-seznam_ds_ovm-20230320184319 | 17 028 229 | 3 527 824 | 19 030 | 85.83 |
datafile-seznam_ds_pfo-20230320184312 | 1 558 655 096 | 289 415 686 | 1 785 409 | 7 833.53 |
datafile-seznam_ds_po-20230320184224 | 660 630 988 | 125 643 896 | 758 759 | 3 152.18 |
Název souboru | Velikost XML [B] | Velikost TXT [B] | Počet položek | Doba konverze [s] |
---|---|---|---|---|
datafile-seznam_ds_fo-20230331064017 | 516 354 182 | 86 619 171 | 609 122 | 2 550.08 |
datafile-seznam_ds_ovm-20230331064208 | 17 030 845 | 3 528 263 | 19 033 | 85.52 |
datafile-seznam_ds_pfo-20230331064121 | 1 700 384 196 | 315 824 578 | 1 947 719 | 8 064.13 |
datafile-seznam_ds_po-20230331064203 | 663 838 100 | 126 446 784 | 762 383 | 3 529.16 |
Jak je vidět z výsledků, výkon skriptu je skutečně tristní - přebere pouze cca 242 položek za sekundu na mojí sestavě. Na druhou stranu výsledný soubor má velikost cca 20 % původního, což je už poměrně znatelný rozdíl.
Z hlediska datových schránek je pak zajímavý pokles počtu zobrazovaných fyzických osob - je zřejmé, že zpráva z Novinek nějakých 18 336 lidí docela nasr... popudila, takže využili buď možnosti se skrýt a nebo změnili právní formu. Jinak nám za oněch 11 dní přibyly tři orgány veřejné moci, 3 624 právnických osob a 162 310 podnikajících fyzických osob. Suma sumárum ke konci března obsahovaly seznamy datových schránek jména a adresy 3 338 257 subjektů.
Co se týče skriptu - šiřte jej, upravujte, přepisujte do jiných jazyků dle libosti. Práce je na něm dost - mohl by dekódovat různé flagy z XML, mohl by být napsán efektivněji nebo v jiném jazyce, to vše už ponechávám na vás.
Co se týče datovek, mě osobně kompletní zveřejnění uživatelů datových schránek přijde docela jako prasárna z hlediska GDPR, a pokud bych jej měl zhodnotit, tak je možná seznam DS cennější, než leak z Facebooku z roku 2021. Soubory sice neobsahují telefonní čísla, ale na rozdíl od dat z Facebooku obsahují konkrétní adresu, což již může vést k přímému osobnímu ohrožení. Gratuluji!
P.S. Pro ty, kdo se rádi hrabou v cizích datech, zaberte a stahujte! Vláda si uvědomila, že zákon o datových schránkách bude třeba změnit
Tiskni Sdílej:
time xml2 < datafile-seznam_ds_fo.xml | 2csv box box/id box/type box/address/city
real 0m3.482s
user 0m4.167s
sys 0m0.803s
Smokers World HW Breeze Pro is a convenient and user-friendly vaping device designed for simplicity and portability. These disposable vapes come pre-filled with e-liquid and are equipped with an integrated battery, eliminating the need for charging or refilling. The HW Breeze Pro is known for its compact and lightweight design, making it an ideal choice for on-the-go vaping.
Featuring a draw-activated mechanism, users can enjoy a hassle-free vaping experience without the need for buttons or complicated settings. The device is often disposable, making it suitable for both beginners and experienced vapers who prefer a straightforward and no-maintenance solution. With a variety of available flavors, the Smokers World HW Breeze Pro aims to provide a convenient and enjoyable vaping experience for users seeking simplicity and convenience.
Relevant Vapes introduces "Funky Republic" a captivating and sophisticated vaping experience. This unique e-liquid blend seamlessly marries the rich essence of lost crops with Mary Jane's botanical finesse. The result is a harmonious fusion that tantalizes the senses with its aromatic bouquet and balanced flavor profile. Funky Republic by Relevant Vapes is a testament to the brand's commitment to delivering exceptional vaping pleasure, offering enthusiasts a distinctive and memorable journey through every inhale. Immerse yourself in the world of Funky Republic and elevate your vaping experience with this exceptional creation from Relevant Vapes.
Pro ty, kdo se rádi hrabou v cizích datech, zaberte a stahujte!Hmmm, cizí dopisy nečtu, do oken lidem nečumim. Tak asi nic no...
Jediné, co si normální člověk přeje, je, aby ho nikdo zbytečně neotravoval včetně státu.A k tomu právě datovka slouží. Abych nemusel někam chodit s nějakejma papírama, nebo ještě hůř, na přijímací straně pravidelně kontrolovat nějakou kastli na pevné fyzické adrese, kam možná packetlossující pošťák něco hodí když jsem pryč. (nebo si platit službu přebírání a skenování papírových zásilek a pak tam stejně muset jet když dostanu něco do vlastních rukou) Opravdu v praxi uplatnitelná možnost „mám DS, něco jste mi poslali fyzicky, ke mně se to nedostalo a já si to tak nepřečetl → je to jen a jen váš problém“ na kterou orgány pravidelně dojíždí je pak super a bůh žehnej tomu kdo to vymyslel. Naopak by se IMHO hodilo, kdyby i nějak vybrané komerční firmy musely posílat elektronicky. Protože se mi furt teoreticky může stát, že u nějaké firmy (ISP, banka, dodavatel energií, DPP se svými vymyšlenými pokutami…) vznikne nějaká nesrovnalost, oni mi o tom pošlou dopis, a já se tím o tom dozvím až v okamžiku, kdy z toho bude pohledávka, někdo ji koupí a dá to k soudu (a tím mi přijde oznámení do DS), což je poněkud pozdě. Samozřejmě ISP/bnaky/PRE jsou rozumné a z vlastního zájmu komunikují elektronicky, ale není to jejich povinnost.
celkom by pomohlo naviazat na datovku fikciu dorucenia. ta by sa mohla uplatnit iba v pripade, ze by sprava bola dorucena do datovky.Vždyť to tak je nejvíc jak může být, ne? V situaci, kdy mám datovku, pošlou mi papírový dopis, já si ho nepřevezmu, doručí se fikcí a z toho nastanou nějaké negativní důsledky, tak soud ty důsledky typicky rollbackne, ne?
dobre by bolo, ak by spravy do/zo statnych institucii boli nezmazatelne, iba presunutelne do nejakeho priecinka v nej.Ano, tohle je jedna z věcí, která je na ISDS nesmyslně řešená (konspirace: chtějí aby sis zaplatil Datový trezor / meme úložiště). Dneska má každý freemail gigabajty, netuším kolik normální lidi posílají a dostávají datových zpráv, já jsem za rok nasbíral pár mega. Navíc pokud je argument že se jim nechce archivovat data - no, teď archivují hashe zpráv které prošly, takže stejně něco archivují, byť méně.
lol ty rakušákovy vopice mršej všecko na co sáhnou :D :D hlavněže maj na mvčr prachy/čas na vyvěšování putinů v pylích nebo krmit bejvalý stbáky z hybridních hrozeb a podobný hovadinky :/ :D :/ :D