ESP-IDF (Espressif IoT Development Framework), tj. oficiální vývojový framework pro vývoj aplikací na mikrokontrolérech řady ESP32, byl vydán v nové verzi 6.0. Detaily na portálu pro vývojáře.
DeepMind (Alphabet) představila novou verzi svého multimodálního modelu, Gemma 4. Modely jsou volně k dispozici (Ollama, Hugging Face a další) ve velikostech 5-31 miliard parametrů, s kontextovým oknem 128k až 256k a v dense i MoE variantách. Modely zvládají text, obrázky a u menších verzí i audio. Modely jsou optimalizované pro běh na desktopových GPU i mobilních zařízeních, váhy všech těchto modelů jsou uvolněny pod licencí Apache 2.0. Návod na spuštění je už i na Unsloth.
Cursor (Wikipedie) od společnosti Anysphere byl vydán ve verzi 3. Jedná se o multiplatformní proprietární editor kódů s podporou AI (vibe coding).
Průkopnická firma FingerWorks kolem roku 2000 vyvinula vícedotykové trackpady s gesty a klávesnice jako TouchStream LP. V roce 2005 ji koupil Apple, výrobu těchto produktů ukončil a dotykové technologie využil při vývoji iPhone. Multiplatformní projekt Apple Magic TouchstreamLP nyní implementuje funkcionalitu TouchStream LP na současném Apple Magic Trackpad, resp. jejich dvojici. Diskuze k vydání probíhá na Redditu.
Byla vydána nová verze 10.3 sady aplikací pro SSH komunikaci OpenSSH. Přináší řadu bezpečnostních oprav, vylepšení funkcí a oprav chyb.
Cloudflare představil open source redakční systém EmDash. Jedná se o moderní náhradu WordPressu, která řeší bezpečnost pluginů. Administrátorské rozhraní lze vyzkoušet na EmDash Playground.
Bratislava OpenCamp 2026 zverejnil program a spustil registráciu. Štvrtý ročník komunitnej konferencie o otvorených technológiách prinesie 19 prednášok na rôzne technologické témy. Konferencia sa uskutoční v sobotu 25. apríla 2026 v priestoroch FIIT STU v Bratislave.
Na iVysílání lze zhlédnout všechny díly kultovního sci-fi seriálu Červený trpaslík.
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 v březnu 5,33 % (Windows -4,28 %, OSX +1,19 %, Linux +3,10 %). 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 24,48 %. Procesor AMD používá 67,48 % hráčů na Linuxu.
Společnost Apple slaví padesáté narozeniny. Založena byla 1. dubna 1976.
policy {
....
special_access {
if ("%{Realm}" == 'core') {
if ("%{sql:SELECT special_priv FROM table WHERE username = '%{User-Name}'}" != '1') {
reject
}
}
}
...
}
Definovanou politiku pak uplatnis v ramci authorizacni sekce.
authorize {
...
special_access
...
}
where.... and nasid='%{NAS-Identifier}'
(1) policy special_access {
(1) if ("%{Realm}" == 'core') {
(1) ERROR: Failed retrieving values required to evaluate condition
(1) } # policy special_access = ok
(1) } # authorize = ok
A pritom v logu Mysql se vubec neukazuje, ze by se ten SELECT pokusil provest. Tak nevim. V sites-enabled/default v sekci "authorize" mam odkomentovano jak "sql", tak to svoje "special_access", ktery vypada nasledovne:
special_access {
if ("%{Realm}" == 'core') {
if ("%{sql: SELECT access FROM special_access WHERE username = '%{User-Name}'}" != 'core') {
reject
}
}
}
Jdu se zkusit poprat s tim Vasim resenim.
| username | attribute | op | value | | franta | Mikrotik-Group | = | read |Jenze co kdyz chci, aby mel franta "read" pristup do mikrotiku s realmem "core", ale "write" pristup do mikrotiku s realmem "edge"? Jako nejjednodussi se mi jevi moznost, ze kdyz v sekci "authorize" nactu z databaze, ze franta ma do "edge" mikrotiku povoleny pristup "write", tak nejakym prikazem odeslu "Mikrotik-Group = write" Diky moc
special_access {
if ("%{Mikrotik-Realm}" == 'edge') {
if ("%{sql: SELECT access FROM special_access WHERE username = '%{User-Name}'}" != 'edge') {
reject
}
update reply {
&Mikrotik-Group = "write"
}
}
}
Ted jeste musim prijit na to, jak to opravneni nenastavovat rucne, ale vycist ho z databaze
ATTRIBUTE User-Group 3001 stringPotom vysledna "policy" muze vypadat takto:
special_access {
if ("%{Mikrotik-Realm}" == 'edge') {
if ("%{sql: SELECT realm FROM special_access WHERE username = '%{User-Name}'}" != 'edge') {
reject
} else {
update reply {
&User-Group = "%{sql:SELECT group from special_access where username = '%{User-Name}' LIMIT 1}"
&Mikrotik-Group = "%{reply:User-Group}"
}
}
}
}
Zatim je to takove neucesane, ale funguje to.
Diky za vas cas a mejte se
Tiskni
Sdílej: