Jiří Eischmann se v příspěvku na svém blogu rozepsal o open source AdGuard Home jako domácí ochraně nejen před reklamou. Adguard Home není plnohodnotným DNS resolverem, funguje jako DNS forwarder s možností filtrování. To znamená, že když přijme DNS dotaz, sám na něj neodpoví, ale přepošle ho na vybraný DNS server a odpovědi zpracovává a filtruje dle nastavených pravidel a následně posílá zpět klientům. Dá se tedy používat k blokování reklamy a škodlivých stránek a k rodičovské kontrole na úrovni DNS.
AI Claude Code od Anthropicu lépe rozumí frameworku Nette, tj. open source frameworku pro tvorbu webových aplikací v PHP. David Grudl napsal plugin Nette pro Claude Code.
Byla vydána prosincová aktualizace aneb nová verze 1.108 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.108 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
Na lasvegaském veletrhu elektroniky CES byl předveden prototyp notebooku chlazeného pomocí plazmových aktuátorů (DBD). Ačkoliv se nejedná o první nápad svého druhu, nepochybně to je první ukázka praktického použití tohoto způsobu chlazení v běžné elektronice. Co činí plazmové chladící akční členy technologickou výzvou je především vysoká produkce jedovatého ozonu, tu se prý podařilo firmě YPlasma zredukovat dielektrickou
… více »Patchouli je open source implementace EMR grafického tabletu (polohovací zařízení). Projekt je hostován na GitLabu.
Český Nejvyšší soud potvrdil, že česká právní úprava plošného uchování dat o elektronické komunikaci porušuje právo Evropské unie. Pravomocným rozsudkem zamítl dovolání ministerstva průmyslu a obchodu. To se teď musí omluvit novináři Českého rozhlasu Janu Cibulkovi za zásah do práv na ochranu soukromí a osobních údajů. Ve sporu jde o povinnost provozovatelů sítí uchovávat údaje, ze kterých lze odvodit, kdo, s kým a odkud komunikoval.
Google bude vydávat zdrojové kódy Androidu pouze dvakrát ročně. Ve 2. a 4. čtvrtletí.
Bezpečnostní specialista Graham Helton z Low Orbit Security si všímá podezřelých anomálií v BGP, zaznamenaných krátce před vstupem ozbrojených sil USA na území Venezuely, které tam během bleskové speciální vojenské operace úspěšně zatkly venezuelského diktátora Madura za narkoterorismus. BGP (Border Gateway Protocol) je 'dynamický směrovací protokol, který umožňuje routerům automaticky reagovat na změny topologie počítačové sítě' a je v bezpečnostních kruzích znám jako 'notoricky nezabezpečený'.
Společnost Valve aktualizovala přehled o hardwarovém a softwarovém vybavení uživatelů služby Steam. Podíl uživatelů Linuxu dosáhl 3,58 %. Nejčastěji používané linuxové distribuce jsou Arch Linux, Linux Mint a Ubuntu. Při výběru jenom Linuxu vede SteamOS Holo s 26,32 %. Procesor AMD používá 67,43 % hráčů na Linuxu.
V Las Vegas probíhá veletrh CES (Consumer Electronics Show, Wikipedie). Firmy představují své novinky. Například LEGO představilo systém LEGO SMART Play: chytré kostky SMART Brick, dlaždičky SMART Tagy a SMART minifigurky. Kostka SMART Brick dokáže rozpoznat přítomnost SMART Tagů a SMART minifigurek, které se nacházejí v její blízkosti. Ty kostku SMART Brick aktivují a určí, co má dělat.
Pro účely tohoto článku byl vytvořen ilustrační miniprojekt, kterého účelem je vytvořit dva provázané fiktivní produkty:
Uvedené aplikace se omezí pouze na to, že vypíší parametry připojení. Pro zjednodušení jim budeme dále zkráceně říkat klient a server.
Kompletní kompilovatelný projekt si můžete stáhnout zde. Autor jej vytvořil s přesvědčením, že může být pro vás inspirací pro vaše projekty. Pokud jej vylepšíte, bude vděčný za vaše připomínky a návrhy.
Struktura projektu je znázorněna na následujícím obrázku:

V hlavním adresáři se nacházejí tři soubory. Soubor
build.xml obsahuje hlavní antovský skript, kterého
jediným účelem je inkrementovat číslo buildu nacházející
se v souboru build.number a spouštět Antovské
skripty pro klienta a server, umístěné v příslušných podadresářích
src/client a src/server.
Soubor build.properties obsahuje pouze odkaz na příslušný
konfigurační profil definovaný v podadresáři conf:
# Soubor nastaveni pro build file je ulozen v prislusnem konfiguracnim
|

Konfigurační profil dmi.properties používá vývojář
dmi na svém počítači, který se jmenuje dmi.
Kromě definice některých proměnných dále větví konfigurační profil
pomocí odkazů na soubory v podadresářích jdbc a
jndi. Tzn. nenastavuje zbytečně mnoho proměnných, které by
se v každém profilu opakovaly, ale obsahuje přepínač na konkrétní sadu
nastavení, v tomto případě typ jdbc driveru a typ aplikačního serveru.
Adresář src obsahuje dva izolované podprojekty.
Následující obrázek ukazuje strukturu podprojektu klienta:

Podadresář build obsahuje soubory vznikající během buildu,
tedy zkompilované soubory a výsledný zabalený produkt
(package), včetně knihoven.
Adresář java obsahuje zdrojové
kódy tříd projektu, lib knihovny nezbytné pro kompilaci a
spuštění (skript by je měl nakopírovat do package).
Adresář rsrc obsahuje další soubory (resources), které aplikace potřebuje za běhu. Tyto soubory jsou rozděleny do dvou skupin.
Soubory v adresáři etc se přibalí k výslednému jar
souboru, takže jsou dostupné v classpath za běhu aplikace.
Soubory v adresáři main se nakopírují do hlavního adresáře
produktu - typicky se jedná o spouštěcí dávky.
Zajímavé na souborech v adresáři rsrc je, že obsahují
odkazy na proměnné definované v konfiguračním profilu. Např.
spouštěcí dávka run.sh je napsána velmi obecně. Zvlášť
zajímavé je předání hodnot client.property1
a client.property2, které jsou pak aplikaci k dispozici
pomocí volání System.getProperty("client.property1");
a System.getProperty("client.property2");:
#/bin/sh
|
Výhoda substituce parametrů rsrc souborů pomocí konfiguračních profilů
se stane zřejmá, když potřebujeme stejný parametr použít na více místech.
Jelikož klient by měl být alternativě spustitelný také pomocí
jnlp souboru, přijde vhod možnost předat klientovi stejné
parametry také pomocí jnlp spouštěče:
<?xml version="1.0" encoding="UTF-8" ?>
|
Teorie bylo už dost, podívejme se na výstup klientské aplikace pro jednotlivé konfigurační profily:
Profil dmi:
01 Ant Demo, build 6
|
Profil prof2:
01 Ant Demo, build 6
|
Ve dvou výše uvedených výstupech vidíme následující rozdíly:
Serverová aplikace je strukturována téměř identickým způsobem jako
klient. Rozdíl je pouze ve struktuře adresáře package,
který zahrnuje podadresáře lib a etc.
Narozdíl od klienta není obsah adresáře rsrc/etc
přibalován přímo do výsledného jar souboru,
ale ponechán jako adresář, který je přidán do classpath
ve spouštěcí dávce. Díky tomu lze měnit konfiguraci nainstalovaného
produktu bez nutnosti rebuildu (hesla, nastavení logu apod.).
Ant poskytuje vše, co je třeba pro robustní strukturu projektu. Klíčovým prvkem je možnost nastavovat proměnné a při kopírování provádět substituci ve zdrojových souborech. Tímto jsme však nahlédli pouze do jedné z mnoha kapitol podpory projektu, kterou Ant přináší. Pro Ant existuje celá řada užitečných tasků, ať již integrovaných nebo třetích stran - generátorů kódu (XDoclet), formáterů zdrojových kódů, kontrol kvality zdrojového kódu, podpory pro unit testing apod.
Pokud jste ještě Ant nikdy nepoužili, vyzkoušejte jej - a uvidíte, že si pak bez něj nebudete dokázat představit svůj programátorský život. Je velmi dobře zdokumentovaný, obsahuje jak úvod typu "snadno a rychle", tak solidní referenční příručku.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: