Sniffnet je multiplatformní aplikace pro sledování internetového provozu. Ke stažení pro Windows, macOS i Linux. Jedná se o open source software. Zdrojové kódy v programovacím jazyce Rust jsou k dispozici na GitHubu. Vývoj je finančně podporován NLnet Foundation.
Byl vydán Debian Installer Trixie RC 2, tj. druhá RC verze instalátoru Debianu 13 s kódovým názvem Trixie.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za červen (YouTube).
Libreboot (Wikipedie) – svobodný firmware nahrazující proprietární BIOSy, distribuce Corebootu s pravidly pro proprietární bloby – byl vydán ve verzi 25.06 "Luminous Lemon". Přidána byla podpora desek Acer Q45T-AM a Dell Precision T1700 SFF a MT. Současně byl ve verzi 25.06 "Onerous Olive" vydán také Canoeboot, tj. fork Librebootu s ještě přísnějšími pravidly.
Licence GNU GPLv3 o víkendu oslavila 18 let. Oficiálně vyšla 29. června 2007. Při té příležitosti Richard E. Fontana a Bradley M. Kuhn restartovali, oživili a znovu spustili projekt Copyleft-Next s cílem prodiskutovat a navrhnout novou licenci.
Svobodný nemocniční informační systém GNU Health Hospital Information System (HIS) (Wikipedie) byl vydán ve verzi 5.0 (Mastodon).
Open source mapová a navigační aplikace OsmAnd (OpenStreetMap Automated Navigation Directions, Wikipedie, GitHub) oslavila 15 let.
Vývojář Spytihněv, autor počítačové hry Hrot (Wikipedie, ProtonDB), pracuje na nové hře Brno Transit. Jedná se o příběhový psychologický horor o strojvedoucím v zácviku, uvězněném v nejzatuchlejším metru východně od všeho, na čem záleží. Vydání je plánováno na čtvrté čtvrtletí letošního roku.
V uplynulých dnech byla v depu Českých drah v Brně-Maloměřicích úspěšně dokončena zástavba speciální antény satelitního internetu Starlink od společnosti SpaceX do jednotky InterPanter 660 004 Českých drah. Zástavbu provedla Škoda Group. Cestující se s InterPanterem, vybaveným vysokorychlostním satelitním internetem, setkají například na linkách Svitava Brno – Česká Třebová – Praha nebo Moravan Brno – Břeclav – Přerov – Olomouc.
Byla vydána nová verze 8.7.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
WML jazyk Wesnothu je dost podivný, špatně zdokumentovaný a proto obtížně použitelný, je to jen pro silné povahy. Podivná je i práce s proměnnými, které se věnuje tento zápisek. Vzhledem k mlhavým informacím roztroušených náhodně po celé wiki wesnothu se může stát, že zde budu psát bludy.
Proměnnou lze nastavit pomocí elementu [set_variable]. Například to co se v ostatních jazyích udělá takto:
promenna = "hodnota"se ve WML dělá takto:
[set_variable] name=promenna value="hodnota" [/set_variable]
Protože je to dlouhé, existuje i předdefinované makro, které to trochu zjednodušuje. Pomocí makra se to samé udělá takto:
{VARIABLE promenna "hodnota"}
Pozor, nastavení proměnné funguje jen v eventu, jinde se proměnné nastavit nedají. Tahle veledůležitá informace není nikde napsaná, takže klidně strávíte několik hodin rvaním si vlasů, jak to že vám nic nefunguje. Tohle a podobné špeky způsobuje, že se do tohoto obskurního jazyku snažím proniknout už asi po třetí s tím, že se vždycky naštvu, že na tohle nemám nervy a čas se dá ztrácet i příjemnějším způsobem.
Ve WML je možno proměnné jakoby objektově skládat, protože proměnná může fungovat i jako kontejner pro další proměnné. Lze tak mít například proměnou souradnice, která obsahuje proměnné x a y.
[set_variable] name=souradnice.x value=10 [/set_variable] [set_variable] name=souradnice.y value=20 [/set_variable]
Pole je ve WML proměnná, která obsahuje jiné proměnné s číselným indexem, podle kterého pak lze procházet v cyklu. Ukázka definice pole:
[set_variable] name=pole[0].x value=10 [/set_variable] [set_variable] name=pole[1].x value=12 [/set_variable] [set_variable] name=pole[2].x value=14 [/set_variable] [set_variable] name=pole[2].y value=10 [/set_variable]
Pozor, na rozdíl od jiných jazyků pole[1] nemůže obsahovat hodnotu, je to jen kontejner pro jednu nebo více dalších proměnných. Nelze tedy mít jen "name=pole[1]".
Každé pole má speciální atribut lenght, v kterém je uveden počet prvků pole.
Proměnnou je možno měnit, předávat, odstranit a nebo použít její hodnotu.
Proměnná se mění stejně jako se definuje nová.
Proměnnou je možno předat například jako parametr makru nebo některým speciálním atributům pro práci s proměnnou místo její hodnotou. Proměnná se předává svým názvem. Například předání proměnné promenna makru MAKRO:
{MAKRO promenna}
Pro smazání proměnné je k dispozici element [clear_variable]. Protože všechny nesmazané proměnné se musí ukládat do sejvů a zabírají místo v paměti, je velmi vhodné všechny pomocné a dočasné proměnné po použití smazat. Příklad smazání proměnné promenna:
[clear_variable] name=promenna [/clear_variable]
Mimochodem, tohle je i příklad předání proměnné atributu.
K této akci je pro zkrácení zápisu rovněž předdefinováno makro CLEAR_VARIABLE:
{CLAER_VARIABLE promenna}
Obecně se hodnota proměnné získá použitím znaku $. Tedy asi nějak takto:
{VARIABLE text "Hello world!"} [message] speaker=narrator message="Text je $text" [/message] {CLEAR_VARIABLE text}
Použití $ se ve WML také říká substituce. Aby to nebylo jednoduché, WML rozlišuje tři různé druhy substituce. Jaký druh substituce se použije nezávisí na uživateli, ale je dán atributem u kterého se proměnná používá, tudíž je nutno to konkrétně o každém atributu vědět. Tyto tři substituce jsou: literal, simple a complex.
Literal znamená žádná substituce. U takového atributu se proměnná hodnotou nenahradí. Atribut získá hodnotu názvu proměnné i se znakem $, nikoli její hodnotu. Jinými slovy, u takového atributu nejde proměnnou použít.
Tato substituce je použita v elementu [set_variable] u atributu literal.
Simple znamená, že proměnná se rozezná a nahradí hodnotou jen když není v řetězci nebo je na jeho začátku. Tedy znak $ následuje hned za znakem ".
Tato substituce je použita všude, kde se nepoužívá literal ani complex.
Complex znamená, že proměnná se rozezná a nahradí hodnotou kdekoli v řetězci, jako je tomu u výše uvedené ukázky.
Tato substituce se používá:
Je-li u nějakého atributu simple substituce a vy potřebujete complex substituci, pak si musíte vypomoci pomocnou proměnnou vytvořenou pomocí [set_variable] a atributů name a format.
Pokud potřebujete substituovat proměnnou tak, aby za ní mohl hned následovat text, je si možno vypomoci znakem | a ukončit jím název proměnné. Například takto:
[message] message="Pozor, právě jsem zahlédnul $rasa|!" [/message]
Když ho budete používat vždycky, nemusíte se učit pravidla, ktará říkají, kdy ho potřeba je a kdy není, tj. před kterými znaky se rozezná konec proměnné automaticky. S tím souvisí i možnost vloření samotného znaku $ do řetězce, provede se to takto: "Upgrade stojí 100 $|".
WML umožňuje, aby název proměnné byl vytvořen pomocí jiné proměnné. Například mějme proměnné rasa, zlato_elfova a zlato_trpaslici. Pak je možno použít syntaxe "$zlato_$rasa||" k získání obsahu druhé nebo třetí proměnné podle toho, zda proměnná rasa má hodnotu etfove nebo trpaslici.
Procházení polem je trochu složitější, ale naštěstí pro to existují dvě předdefinovaná makra FOREACH a NEXT, která to zjednodušují. S jejich pomocí lze realizovat procházení polem takto:
{FOREACH pole i} [message] message="X a Y je $pole[$i].x $pole[$i].y" [/mesage] {NEXT i}
Nedefinovaná proměnná se rovná nedefinovanné proměné, nebo proměnné s hodnotou prázdný řetězec.
{VARIABLE def_a ""} {VARIABLE def_b 0} # TRUE [if] [variable] name=undef equals=$none [/variable] [then] [message] speaker=narrator message="undef" [/message] [/then] [/if] # TRUE [if] [variable] name=def_a equals=$none [/variable] [then] [message] speaker=narrator message="def_a" [/message] [/then] [/if] # FALSE [if] [variable] name=def_b equals=$none [/variable] [then] [message] speaker=narrator message="def_b" [/message] [/then] [/if]
Tiskni
Sdílej: