Hra Doom nově běží také v SQL databázi CedarDB. Představen byl SQLDoom. Vyzkoušet lze online demo. Zdrojové kódy jsou k dispozici na GitHubu.
Multiplatformní open source aplikace scrcpy (Wikipedie) pro zrcadlení připojeného zařízení se systémem Android na desktopu a umožňující ovládání tohoto zařízení z desktopu, byla vydána v nové verzi 5.0. S podporou hardwarového dekódování videa na desktopu.
Moderní linker mold, rychlejší alternativa k LLVM lld nebo wild, byl vydán v nové major verzi 3.0.0. Přepsán byl z C++ do Rustu.
Po osmi letech od vydání verze 2.0 byla vydána nová major verze 3.0 multiplatformního editoru tagů MusicBrainz Picard (Wikipedie). Přehled novinek, vylepšení a oprav v changelogu.
Mezinárodní federace hudebního průmyslu (International Federation of the Phonographic Industry) navrhla Evropské komisi zařazení populárního open-source nástroje yt-dlp na evropský seznam 'padělků a pirátství' (EU Counterfeit and Piracy Watch List) pro rok 2027 (plné znění žádosti IFPI). IFPI ve svém podání označuje tento aktivně vyvíjený a o rozličné funkce bohatší fork youtube-dl za 'závažný problém' pro hudební průmysl, v
… více »Byla vydána nová verze 7.4 linuxové distribuce Parrot OS (Wikipedie). Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Dnes startuje desátý ročník oblíbené kyberbezpečnostní soutěže The Catch organizované Forenzní laboratoří CESNETu. Letos zavede soutěžící do světa národních výzkumných a vzdělávacích sítí (NREN). Čekají na vás tematické úlohy založené na principu Capture the Flag (CTF), hledání ukrytých flagů i zajímavé ceny. Otestujte své schopnosti a vyrazte na lov flagů.
Byly zpracovány a na YouTube zveřejněny videozáznamy z konference LinuxDays 2026.
Německý startup Aleph Alpha k příležitosti výročí sjednocení Německa zveřejnil open-weight jazykový model Kolibri, vyvíjený s ohledem na unijní pojetí autorského práva, ochranu osobních údajů GDPR a nařízení EU o umělé inteligenci, jehož 'Kodexu správné praxe' je Aleph Alpha signatářem. Výsledkem tohoto přístupu je transparentnější technologie, kterou například budou moci využívat evropské veřejné instituce, ovšem za cenu
… více »Nvidia zveřejnila návrh nové bezpečnostní platformy pro nasazování AI agentů. Jedná se o nasazení AI za použití OpenShell a Sentry, dvou oddělených bezpečnostních vrstev, v nichž může Sentry monitorovat a vyhodnocovat chování AI v OpenShellu tak, že ho v krajním případě až vypne. Mělo by to zabránit dalším únikům AI ze sandboxu.
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: