abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 02:55 | Bezpečnostní upozornění

    Výzkumníci ze společnosti ESET objevili 11 zapomenutých UEFI shim zavaděčů, které byly podepsány společností Microsoft, a které umožňují útočníkům obejít ochranu UEFI Secure Boot na většině zařízení. Microsoft je zneplatnil (přidal jejich hash do databáze dbx) v rámci aktualizace Patch Tuesday dne 9. června 2026. Uživatelé Linuxu mohou databází aktualizovat pomocí LVFS. Ověřit zneplatnění zavaděčů lze pomocí skriptu uefi-dbx-audit. Jedná se o CVE-2026-8863 a CVE-2026-10797.

    Ladislav Hagara | Komentářů: 3
    včera 16:55 | Zajímavý software

    pico-usb-wifi je open source firmware pro Raspberry Pi Pico W, který jej promění v USB Wi-Fi adaptér. Po připojení k počítači se objeví jako zařízení USB CDC-NCM.

    Ladislav Hagara | Komentářů: 0
    včera 16:00 | IT novinky

    Americká společnost Google ze skupiny Alphabet bude muset podle nových požadavků Evropské unie umožnit společnosti OpenAI i dalším konkurentům v oblasti umělé inteligence (AI) a internetových vyhledávačů přístup ke svým službám. Ve svém rozhodnutí o tom včera informovala Evropská komise (EK). Opatření má zajistit dodržování pravidel, jejichž cílem je omezit v EU tržní sílu velkých technologických firem. Google s tím nesouhlasí.

    … více »
    Ladislav Hagara | Komentářů: 0
    včera 04:55 | Komunita

    Nové verze webových prohlížečů Chrome a Firefox jsou vydávány každé 4 týdny. Aktuální verze Chrome je 150. Aktuální verze Firefoxu je 152. V březnu bylo oznámeno, že od září přejde Chrome na dvoutýdenní cyklus vydávání verzí. To by znamenalo, že Chrome v číslování verzí Firefox brzy přeskočí. Vývojáři Firefoxu proto také od září přecházejí na dvoutýdenní cyklus vydávání verzí. :-)

    Ladislav Hagara | Komentářů: 5
    včera 00:22 | Zajímavý software

    Microsoft Comic Chat (Wikipedie), tj. grafický IRC klient z devadesátek, který převáděl konverzace na IRC do podoby komiksových panelů, a který zpopularizoval font Comic Sans, je dnešním dnem open source. Zdrojové kódy jsou k dispozici na GitHubu pod licencí MIT.

    Ladislav Hagara | Komentářů: 1
    16.7. 19:55 | Nová verze

    Byla vydána (𝕏) nová verze 26.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 26.7 je Xenial Xenops. Přehled novinek v příspěvku na fóru.

    Ladislav Hagara | Komentářů: 0
    16.7. 14:44 | IT novinky

    Na Seznam nepovolených internetových her (Wikipedie) se k 13. 7. 2026 dostala predikční platforma Polymarket.

    Ladislav Hagara | Komentářů: 6
    16.7. 14:22 | Zajímavý článek

    Nová čísla časopisů od nakladatelství Raspberry Pi zdarma ke čtení: Raspberry Pi Official Magazine 167 (pdf) a Hello World 30 (pdf).

    Ladislav Hagara | Komentářů: 0
    16.7. 00:44 | Nová verze

    Byla vydána nová verze 3.22.0 grafického vývojového prostředí a platformy Gambas (Wikipedie) založené na interpretru programovacího jazyka Basic s rozšířením o objektově orientované programování. Přehled novinek v poznámkách k vydání. Zdrojové kódy jsou k dispozici na GitLabu.

    Ladislav Hagara | Komentářů: 0
    15.7. 20:22 | Komunita

    FreeBSD odstranilo poslední GPL kód ze základního systému. Konkrétně dpv, libdpv, libfigpar a dialog. Instalátor před čtyřmi lety přešel z dialogu na bsddialog.

    Ladislav Hagara | Komentářů: 2
    Které desktopové prostředí na Linuxu používáte?
     (11%)
     (7%)
     (2%)
     (17%)
     (31%)
     (4%)
     (6%)
     (2%)
     (15%)
     (25%)
    Celkem 2158 hlasů
     Komentářů: 30, poslední 3.4. 20:20
    Rozcestník

    Aplikace pro přípravu a tisk štítků

    24.4.2014 21:57 | Přečteno: 2562× | Výběrový blog

    Před nedávnem jsem zprovoznil můj hobby projekt www.123stitky.cz pro on-line přípravu a tisk samolepících štítků. V tomto zápisku se pokusím popsat technologické zázemí této webové aplikace. Doufám, že někoho inspiruje, případně někomu pomůže při výběru technologií pro jeho projekt.

    www.123stitky.cz

    Tato služba slouží pro přípravu a tisk samolepicích dopisních štítků. Zajímavé je, že tuto problematiku řeší mnoho programů (např. PC Štítky, ale nenašel jsem žádné internetové řešení. Proto jsem vytvořil jednoduchou aplikaci, od které jsem chtěl:

    Generování štítků

    Z mého pohledu byla jasná volba programovacího jazyka na server - Python 2.7. Pro generování štítků jsem pak použil modul reportlab, který dokáže přímo generovat PDF. Kolem toho vznik jednoduchý modul pro převedení vstupního Python dictionary na PDF se štítky.

    Pro generování podacícho archu jsem si napsal vlastní řešení. Protože podací arch je nabízen Českou poštou volně ke stažení jako DOC, chtěl jsem jej použít jako vstup. Pro převod ideálně posloužily LibreOffice a to hned dvakrát:

    Vyplnění podacího archu je možné několika způsoby, buď klasické replace() nad řetězci, případně nad naparsovaným XML stromem. Nicméně já jsem využil šablonovací engine z web2py. Výhodou je automatické escapování symbolů jako & < a >, které se může objevit v datech od uživatele.

    Tento šablonovací engine je samostatně použitelný i mimo web2py framework následujícím způsobem:

    from gluon.template import render
    
    data = {'jmeno': 'Karel', 'prijmeni': 'Novak'}
    tmpl = 'Ahoj, jmenuji se {{=jmeno}} {{=prijmeni}}'
    print render(content=tmpl, context=data)
    Ahoj, jmenuji se Karel Novak
    

    V tomto okamžiku máme modul, který pomocí Reportlabu vygeneruje štítky (případně včetně QR kódu nebo EAN čárového kódu) a vyplní šablonu FODT, kterou převede unoconvem do PDF. Poslední krůček je pospojování více PDF do jednoho vícestránkového pomocí pdftk.

    Webová aplikace

    Pro vývoj samotné webové aplikace jsem použil výše zmíněný modul pro generování štítků. Zbývalo "jen" napsat webové GUI. Protože jsem znovu nechtěl vymýšlet kolo, zapojil jsem Bootstrap, který za mě udělá všechno to CSS a i nějaký ten JavaScript.

    Server běží na frameworku web2py, který mi přijde jako ideální rozšíření Pythonu, přestože některé věci by se daly z pohledu čistoty jazyka asi udělat lépe (například používání globálního namespace pro proměnné request, response, session apod.). Výborná je separace Model-View-Controller, což (mimo jiné) ztěžuje vytváření spaghetti-kódu.

    Přestože web2py disponuje vlastním webovým serverem, je tento vhodný pouze pro vývoj. Pro ostré nasazení na webu jsem použil web2py propojení s Apachem pomocí mod_wsgi (dokumentace).

    Pro renderování tabulky pro zadávání adres, popřípadě jiných údajů, používám Handsontable. Výhodou je možnost použití Control+C, Control+V například z MS Excel nebo z LibreOffice Calc.

    Pro ukládání stavu aplikace na straně klienta je použito Web Storage podporované napříč prohlížeči. Do aplikace je tak možné dopisovat průběžně další hodnoty, tak jak přibývají a před tím, než se jde na poštu je vytisknout na štítky a na podací arch. Aplikaci je tak možné používat bez registrace, bez přihlašování a na straně serveru dokonce bez udržování session.

    Databáze

    Pro ukládání vygenerovaných PDF je jistě možné použít lokální filesystém serveru, ale z mého pohledu mi přišlo řádově lepší použít databázový stroj. Po kladných zkušenostech s dokumentovou databází MongoDB a jeho Pythonovským driverem pymongo jsem se rozhodl použít i modul gridfs.

    Samotné GridFS je specifikace v rámci MongoDB, jak ukládat data větší než maximální velikost jednoho BSON dokumentu (16MB). Přestože generovaná PDF se do tohoto limitu vejdou, nabízí Python modul gridfs elegantní file-like rozhraní pro ukládání takových souborů do databáze.

    Postup při generování dat je pak následující:

    1. Vygenerování PDF štítků a podacího archu
    2. Vygenerování UUID version 4 pro identifikaci PDF (ObjectId jsem zavrhl, protože při vhodném časování tvoří číselnou řadu a bez udržování session by bylo možné získat štítky druhých lidí)
    3. Uložení PDF do GridFS pod UUID (pymongo transparentně řeší serializaci Python UUID objektu do databáze)
    4. Předání UUID pomocí AJAXu klientské aplikaci
    5. Stažení/zobrazení PDF v klientské aplikaci

    Protože GridFS soubor je v Pythonu file-like objekt, je možné jej jednoduše odstreamovat přímo z web2py. V modelu si udělám připojení k databázi a instanci GridFS:

    db = MongoClient(settings.db_uri).stitky123
    fs = gridfs.GridFS(db, 'files')
    
    V controlleru pak:
    def download():
        id = request.args[0]
    
        id = uuid.UUID(id)
        db_fr = fs.get(id)
    
        response.headers['Content-Type'] = db_fr.content_type
    
        return response.stream(db_fr, 1024)
    

    Vše dohromady

    Celé zprogramováno a nainstalováno na Amazon EC2 micro instanci s Debianem. Včetně klikání na AWS, Active24, StartSSL, konfigurace micro instance, Apache, HTTPS, web2py, psaní dokumentace a testování jsou www.123stitky.cz cca 20 hodin práce. Doufám, že někomu alespoň část této reportáže bude užitečná a použije kombinaci Python+web2py+MongoDB+GridFS v některém svém projektu.        

    Hodnocení: 90 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    24.4.2014 22:34 franta
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Otázka zní, zda vůbec používat webové aplikace, tz. posílat data někam...
    25.4.2014 20:30 Jan Švec | skóre: 2 | blog: honzas | Plzeň
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Ono s online službami je to obdobné jako se služebnictvem - buď jim člověk dá důvěru a něco si ulehčí, nebo nedá a vše si dělá sám. Ta volba je možná vždy.
    24.4.2014 23:29 Jiří
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Na štítky a vizitky používám vizitkový guru. Na netu jde dohledat i starší verze, co běží jenom v Javascripu.
    25.4.2014 06:37 Normotron | skóre: 4 | blog: truhlarina
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Popravdě jsem si nejdříve pohrával s myšlenkou, že bych něco takového do budoucna potřeboval pro pripravto.cz do budoucna (hlavně do výrobní části). Jenže pak jsem zjistil, že pro mně je důležitá upravitelnost šablony výsledného výstupu.

    Pěkné a zrovna to Handsometable se i docela líbí, má to integraci s HTML5 kontrolou pro input? tzn s pattern="" a type="" ? Nebo to je potřeba dodělat ručně?
    Navrhování a příprava výroby nábytku - připravto.cz
    25.4.2014 20:24 Jan Švec | skóre: 2 | blog: honzas | Plzeň
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Handsontable je čistý JavaScript, takže integrace s HTML5 není. Nicméně validace se dá naprogramovat v JS, příklad.
    25.4.2014 07:09 Filip Jirsák
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Máte ověřené, jak je to s ochranou osobních údajů, když ta vygenerovaná PDF ukládáte na serveru? Potažmo i když tam ty adresy jen zpracováváte. Já chápu, že vy jen poskytujete službu a žádné osobní údaje zpracovávat nechcete, ale ÚOOÚ by se na to mohl dívat jinak (možná, nevím, z mého pohledu se ÚOOÚ bohužel chová nepředvídatelně).
    25.4.2014 21:14 Jan Švec | skóre: 2 | blog: honzas | Plzeň
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Můj laický úsudek říká, že z pohled zákona jsou www.123stitky.cz na úrovni zpracovatele OÚ a registrace na ÚOOÚ není nutná. PDF jsou ukládána kvůli zpracování a jejich ID jsou (pseudo)náhodná (viz UUID 4), což spolu s HTTPS zamezuje jejich odposlechnutí/uhodnotí třetí stranou. Navíc jsou po 30 minutách odstraněny z databáze.
    26.4.2014 08:37 Filip Jirsák
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Pokud byste byl "jen" zpracovatel, musel byste mít se správcem údajů uzavřenou písemnou smlouvu. To, že jsou ta PDF po půl hodině odstraněna z databáze by ÚOOÚ asi nezajímalo. Mně by jenom přišlo hloupé, kdybyste kvůli něčemu, co dáte zadarmo k dispozici ostatním, měl ještě problémy s ÚOOÚ.
    Petr Tomášek avatar 25.4.2014 12:00 Petr Tomášek | skóre: 39 | blog: Vejšplechty
    Rozbalit Rozbalit vše Re: Aplikace pro přípravu a tisk štítků
    Kua, jaká aplikace? Nějaká blbá webová stránka :-(
    multicult.fm | monokultura je zlo | welcome refugees!

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.