Rspamd (Wikipedie), tj. open source systému pro filtrování nevyžádané pošty, byl vydán v nové major verzi 4.0.0. Přehled novinek v Changelogu.
SolveSpace (Wikipedie), tj. multiplatformní open source parametrický 2D/3D CAD, byl vydán v nové verzi 3.2. Přehled novinek v Changelogu na GitHubu. Vyzkoušet lze novou oficiální webovou verzi.
Organizátoři Dne IPv6, tradiční akce věnované tématům spojeným s tímto protokolem, vyhlásili Call for Abstracts. Na webu konference mohou zájemci přihlašovat příspěvky o délce 20 nebo 40 minut či 10minutové lighting talky a to až do 30. dubna. Tvůrci programu uvítají návrhy přednášek z akademického i komerčního sektoru, které mohou být technického i netechnického zaměření. Den IPv6 se letos uskuteční 4. června a místem konání bude i
… více »Euro-Office (Wikipedie) je evropský fork open source kancelářského balíku OnlyOffice. Za forkem stojí koalice firem IONOS, Nextcloud, Eurostack, XWiki, OpenProject, Soverin, Abilian a BTactic. Cílem je zajistit digitální suverenitu Evropy a snížit závislost na neevropských platformách. Projekt vznikl mimo jiné v reakci na nedávné uzavření cloudové služby OnlyOffice. OnlyOffice obviňuje Euro-Office z porušení licenčních podmínek. Na možné problémy upozorňuje i Collabora Online. Jednostranná změna licence není v pořádku.
Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.
Během akce Arduino Days 2026 byl publikován Arduino Open Source Report 2025 (pdf) a oznámeno 7 nových produktů kompatibilních s deskou UNO Q (Arduino USB-C Power Supply, USB-C Cable, USB-C Hub, UNO Media Carrier, UNO Breakout Carrier, Bug Hopper, Modulino LED Matrix).
Google v pátek spustil v Česku Vyhledávání Live. Tato novinka umožňuje lidem vést plynulou konverzaci s vyhledávačem v češtině. A to prostřednictvím hlasu, nebo prostřednictvím toho, na co ukážou svým fotoaparátem či kamerou v mobilu. Rozšíření této multimodální funkce je možné díky nasazení Gemini 3.1 Flash Live, nového hlasového a audio modelu, který je od základu vícejazyčný, takže umožňuje lidem po celém světě mluvit na vyhledávač přirozeně a v jazyce, který je jim nejbližší.
Jsongrep je open-source nástroj, který efektivně prohledává JSON dokumenty (editovat je neumí). Kompiluje regulérní jazyk dotazu do podoby deterministického konečného automatu (DFA), díky čemuž prochází strom JSON dokumentu pouze jednou a je v tom tedy rychlejší než jiné nástroje jako jsou například jq, JMESPath nebo jql. Jsongrep je napsaný v programovacím jazyce Rust, zdrojový kód je dostupný na GitHubu.
O víkendu probíhá v Praze na Karlově náměstí 13 konference Installfest 2026. Na programu je celá řada zajímavých přednášek a workshopů. Vstup na konferenci je zcela zdarma, bez nutnosti registrace. Přednášky lze sledovat i online na YouTube.
Mozilla a společnost Mila oznámily strategické partnerství za účelem rozvoje open source a suverénní AI. Cílem je ukázat, že open source AI může konkurovat uzavřeným systémům. Obě organizace chtějí posílit technologickou suverenitu a snížit závislost na hrstce velkých technologických firem.
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: