Ubuntu 27.04 bude Tenacious T-Rex.
Byla vydána nová verze 2026.4.0 "Never-slop" svobodného softwaru ScummVM (Wikipedie) umožňujícího bezproblémový běh mnoha klasických adventur na zařízeních, pro které nebyly nikdy určeny. Přehled novinek v poznámkách k vydání a na GitHubu. ScummVM oslavil 25 let. Verze 0.0.1 vyšla 8. října 2001.
Kanadský vývojář Anthony Sistilli vytvořil ironický DIY projekt parodující kamerové systémy Flock, s cílem názorně demonstrovat rizika masového sledování jaké provozují tyto komerční ALPR systémy. Z levné IP kamery a vlastního ML softwaru (napsaného s pomocí SI circa za 20 minut, kód se mi bohužel nepodařilo dohledat) běžícího v laptopu sestavil jednoduchý systém, který detekuje výhradně policejní vozidla, zaznamenává jejich SPZ a
… více »Část údajů uživatelů internetového supermarketu Rohlík byla odcizena. Kyberútočníci napadli nástroj zákaznické podpory Rohlíku, odcizili tak jména, e-mailové adresy, v některých případech také telefonní čísla nebo přepisy komunikace mezi klienty a zákaznickou podporou. Rohlík incident nahlásil příslušným orgánům a přijal příslušné opatření, aby zamezil podobným případům v budoucnosti, uvedla firma.
Aplikace eDoklady fungovala v obou volebních dnech stabilně a prakticky bez front. Digitální a informační agentura (DIA) odhaduje, že se digitálním dokladem prokázalo více než 100.000 voličů. Aplikaci si před volbami či během nich aktualizovalo 247.517 uživatelů. Nových registrací bylo 19.431 a do aplikace se přihlásilo 357.879 lidí. Největší nápor přišel bezprostředně po otevření volebních místností mezi 14. a 16. hodinou, kdy si
… více »Začal semestr, začal i podzim a kromě hub rostou jako po dešti i veřejné dílny v Praze. Nedávno strahováci referovali o hackerspacu Bordel, nyní se otevřela dílna Dejvice Lab jen kousek od ČVUT. Na blížící Virtuální Bastlírně tak uslyšíte nejen report z návštěvy dílny HWLab, ale i řadu novinek, událostí a úsměvných momentů, které se za poslední měsíc ve světě techniky, ale i vědy udály. Připojte se tedy již v úterý 13.10. od 20:00 a zapojte se do
… více »Byl vydán LineageOS 24 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu. LineageOS 24 je založený na Androidu 17.
Společnost Valve publikovala na svém GitLabu nákresy a schémata zapojení headsetu Steam Frame. Pro nekomerční účely.
Soutěž Pwn2Own Ireland 2026 skončila 9. října. Bezpečnostní výzkumníci získali celkem 1 262 000 dolarů na odměnách. Během soutěže bylo předvedeno zneužití 98 zero-day zranitelností. Testování zahrnovalo různé kategorie zařízení a software. Výzkumníci předváděli prakticky fungující útoky podle pravidel soutěže. Výsledky následně slouží výrobcům při přípravě oprav. Mezi pokořenými jsou: Samsung Galaxy S26, OpenAI Codex, Oracle Autonomous AI Database, Google Pixel 10, u iPhone 17 neuspěli.
Programovací jazyk Python byl vydán v nové verzi 3.15.0. Podrobný přehled novinek v aktualizované dokumentaci.
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: