Iniciativa Open Device Partnership (ODP) nedávno představila projekt Patina. Jedná se o implementaci UEFI firmwaru v Rustu. Vývoj probíhá na GitHubu. Zdrojové kódy jsou k dispozici pod licencí Apache 2.0. Nejnovější verze Patiny je 13.0.0.
Obrovská poptávka po plynových turbínách zapříčinila, že datová centra začala používat v generátorech dodávajících energii pro provoz AI staré dobré proudové letecké motory, konvertované na plyn. Jejich výhodou je, že jsou menší, lehčí a lépe udržovatelné než jejich průmyslové protějšky. Proto jsou ideální pro dočasné nebo mobilní použití.
Typst byl vydán ve verzi 0.14. Jedná se o rozšiřitelný značkovací jazyk a překladač pro vytváření dokumentů včetně odborných textů s matematickými vzorci, diagramy či bibliografií.
Specialisté společnosti ESET zaznamenali útočnou kampaň, která cílí na uživatele a uživatelky v Česku a na Slovensku. Útočníci po telefonu zmanipulují oběť ke stažení falešné aplikace údajně od České národní banky (ČNB) nebo Národní banky Slovenska (NBS), přiložení platební karty k telefonu a zadání PINu. Malware poté v reálném čase přenese data z karty útočníkovi, který je bezkontaktně zneužije u bankomatu nebo na platebním terminálu.
V Ubuntu 25.10 byl balíček základních nástrojů gnu-coreutils nahrazen balíčkem rust-coreutils se základními nástroji přepsanými do Rustu. Ukázalo se, že nový "date" znefunkčnil automatickou aktualizaci. Pro obnovu je nutno balíček rust-coreutils manuálně aktualizovat.
VST 3 je nově pod licencí MIT. S verzí 3.8.0 proběhlo přelicencování zdrojových kódů z licencí "Proprietary Steinberg VST3 License" a "General Public License (GPL) Version 3". VST (Virtual Studio Technology, Wikipedie) je softwarové rozhraní pro komunikaci mezi hostitelským programem a zásuvnými moduly (pluginy), kde tyto moduly slouží ke generování a úpravě digitálního audio signálu.
Open source 3D herní a simulační engine Open 3D Engine (O3DE) byl vydán v nové verzi 25.10. Podrobný přehled novinek v poznámkách k vydání.
V Londýně probíhá dvoudenní Ubuntu Summit 25.10. Na programu je řada zajímavých přednášek. Zhlédnout je lze také na YouTube (23. 10. a 24. 10.).
Gemini CLI umožňuje používání AI Gemini přímo v terminálu. Vydána byla verze 0.10.0.
Konference OpenAlt 2025 proběhne již příští víkend 1. a 2. listopadu v Brně. Nabídne přibližně 80 přednášek a workshopů rozdělených do 7 tematických tracků. Program se může ještě mírně měnit až do samotné konference, a to s ohledem na opožděné úpravy abstraktů i případné podzimní virózy. Díky partnerům je vstup na konferenci zdarma. Registrace není nutná. Vyplnění formuláře však pomůže s lepším plánováním dalších ročníků konference.
class Foo {
public $aaa = false;
public $bbb = false;
function __constructor() {
...
...
}
}
$foo = new Foo;
echo $foo->aaa(); // ale false prostě nedostanu 
Neporadí někdo? Díky
Řešení dotazu:
echo $foo->aaa;, ale uvidíš prd, neboť z false vyleze prázdný řetězec. Zkus var_export($foo->aaa);.
class Omg
{
private $foo;
private $bar;
private function foo($omg)
{
if ($omg) {
return 42;
}
return 23;
}
function method1()
{
$this->foo = $this->foo(true);
}
function method2()
{
$this->bar = $this->foo(false);
}
}
$omg = new Omg;
$omg->method1();
$omg->method2();
class Omg
{
private $tmp;
private $foo;
private $bar;
private $bar2;
private function foo()
{
$this->method1('10');
$this->foo = $this->tmp;
$this->method1('20');
$this->bar = $this->tmp;
$this->method1('30');
$this->bar2 = $this->tmp;
}
function method1($res)
{
$this->tmp = $res;
}
}
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
class Omg
{
private $tmp;
private $foo;
private $bar;
private $bar2;
private function __construct()
{
$this->method1('10');
$this->foo = $this->tmp;
$this->method1('20');
$this->bar = $this->tmp;
$this->method1('30');
$this->bar2 = $this->tmp;
}
function method1($res)
{
$this->tmp = $res;
}
}
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
class Omg
{
private $tmp;
private $foo;
private $bar;
private $bar2;
private function __construct()
{
$this->foo = $this->method1('10');
$this->bar = $this->method1('20');
$this->bar2 = $this->method1('30');
}
function method1($res)
{
return $res;
}
}
$omg = new Omg;
$omg->foo; //10
$omg->bar; //20
$omg->bar2; //30
to byl jen příklad, letmé nastínění zpracovaných dat..
class Omg
{
private $tmp;
private $foo;
private $bar;
private $bar2;
private function __construct()
{
$this->foo = $this->method1('1', '1000000');
$this->bar = $this->method1('1000001', '2000000');
$this->bar2 = $this->method1('2000001', '3000000');
}
function method1($res1, $res2)
{
# Načtu z mysql řádky od $res1 do $res2 a výsledek uložím do $ret.
# některé sloupce v mysql obsahují data o více jak 500 znacích
return $ret;
}
}
Babyčka mi říkala, nevracej to return-em, nebo jednoho krásného dne u dveří někdo zazvoní a nakope tě do prdele, a jestli nevíš kdo to bude, tak ti to řeknu, bude to server
function hello() {
return array('foo', 'bar');
}
list($a, $b) = hello();
nebo
function hello(& $foo, & $bar) {
$foo = 'foo';
$bar = 'bar';
}
hello($a, $b);
V obou případech bude nakonci platit: $a == 'foo' && $b == 'bar'
Tiskni
Sdílej: