Byla vydána (𝕏) nová verze 2025.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
Dánské ministerstvo pro digitální záležitosti má v plánu přejít na Linux a LibreOffice [It's FOSS News].
V úterý Google vydal Android 16. Zdrojové kódy jsou k dispozici na AOSP (Android Open Source Project). Chybí (zatím?) ale zdrojové kódy specifické pro telefony Pixel od Googlu. Projekty jako CalyxOS a GrapheneOS řeší, jak tyto telefony nadále podporovat. Nejistá je podpora budoucích Pixelů. Souvisí to s hrozícím rozdělením Googlu (Google, Chrome, Android)?
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.101 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.101 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.6.
Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
Americká filmová studia Walt Disney a Universal Pictures podala žalobu na provozovatele populárního generátoru obrázků pomocí umělé inteligence (AI) Midjourney. Zdůvodňují to údajným porušováním autorských práv. V žalobě podané u federálního soudu v Los Angeles označují firmu za „bezednou jámu plagiátorství“, neboť podle nich bez povolení bezostyšně kopíruje a šíří postavy z filmů jako Star Wars, Ledové království nebo Já, padouch, aniž by do nich investovala jediný cent.
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.
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:
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.
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.
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í:
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)
Tiskni
Sdílej: