Evropská komise zahájila tři vyšetřování týkající se cloudových platforem Amazon Web Services (AWS) a Microsoft Azure. Evropská exekutiva, která plní také funkci unijního antimonopolního orgánu, chce mimo jiné určit, zda jsou americké společnosti Microsoft a Amazon v cloudových službách takzvanými gatekeepery, tedy hráči, kteří významně ovlivňují provoz internetu a musí dle nařízení o digitálních trzích (DMA) na společném trhu
… více »Společnost Meta Platforms vyhrála ostře sledovaný spor o akvizici sítě pro sdílení fotografií Instagram a komunikační aplikace WhatsApp. Podle amerického soudu firma jejich převzetím neporušila antimonopolní zákon, protože si tak nemonopolizovala trh sociálních sítí. Žalobu na Metu podala před pěti lety americká Federální obchodní komise (FTC). FTC argumentovala, že Meta, tehdy známá jako Facebook, koupila tyto dvě společnosti v letech 2012 a 2014 proto, aby s nimi nemusela soutěžit.
Home Assistant včera představil svůj nejnovější oficiální hardware: Home Assistant Connect ZBT-2 pro připojení zařízení na sítích Zigbee nebo Thread.
Byla vydána verze 9.1 open source virtualizační platformy Proxmox VE (Proxmox Virtual Environment, Wikipedie) založené na Debianu. Přehled novinek v poznámkách k vydání a informačním videu.
Byl aktualizován seznam 500 nejvýkonnějších superpočítačů na světě TOP500. Nejvýkonnějším superpočítačem zůstává El Capitan od HPE (Cray) s výkonem 1,809 exaFLOPS. Druhý Frontier má výkon 1,353 exaFLOPS. Třetí Aurora má výkon 1,012 exaFLOPS. Nejvýkonnější superpočítač v Evropě JUPITER Booster s výkonem 1,000 exaFLOPS je na čtvrtém místě. Nejvýkonnější český superpočítač C24 klesl na 192. místo. Karolina, GPU partition klesla na 224. místo a Karolina, CPU partition na 450. místo. Další přehledy a statistiky na stránkách projektu.
Microsoft představil Azure Cobalt 200, tj. svůj vlastní SoC (System-on-Chip) postavený na ARM a optimalizovaný pro cloud.
Co způsobilo včerejší nejhorší výpadek Cloudflare od roku 2019? Nebyl to kybernetický útok. Vše začalo změnou oprávnění v jednom z databázových systémů a pokračovalo vygenerováním problém způsobujícího konfiguračního souboru a jeho distribucí na všechny počítače Cloudflare. Podrobně v příspěvku na blogu Cloudflare.
Byla vydána (Mastodon, 𝕏) první RC verze GIMPu 3.2. Přehled novinek v oznámení o vydání. Podrobně v souboru NEWS na GitLabu.
Eugen Rochko, zakladatel Mastodonu, tj. sociální sítě, která není na prodej, oznámil, že po téměř 10 letech odstupuje z pozice CEO a převádí vlastnictví ochranné známky a dalších aktiv na neziskovou organizaci Mastodon.
Byla vydána nová major verze 5.0 svobodného 3D softwaru Blender. Přehled novinek i s náhledy a videi v obsáhlých poznámkách k vydání. Videopředstavení na YouTube.
<?php
global $have_childs;
$have_childs=0;
function child($id)
{
for($i=0;$i<10;$i++)
{
printf("Child [$id]: Message #$i.\n");
usleep(500000);
}
}
function create_child(int $id)
{
global $have_childs;
$pid=pcntl_fork();
if($pid == -1)
{
write(STDERR, "Error fork.");
exit(1);
}
else
if($pid == 0)
{
cli_set_process_title("multi.php [$id]");
printf("Child [$id]: Starting.\n");
$pid=getmypid();
child($id);
printf("Child [$id]: Ending.\n");
// 1 Byte = 1 finished child
file_put_contents("/dev/shm/multi.fifo", ".");
exit(0);
}
$have_childs++;
}
posix_mkfifo("/dev/shm/multi.fifo", 0600);
cli_set_process_title("multi.php [manager]");
for($i=0;$i<10;$i++)
create_child($i);
$file=fopen("/dev/shm/multi.fifo", "rb");
while(1)
{
$data=fread($file, 1000);
$input_bytes=strlen($data);
$have_childs-=$input_bytes;
if($have_childs == 0)
break;
}
fclose($file);
unlink("/dev/shm/multi.fifo");
printf("Manager: Ending.\n");
Tiskni
Sdílej:
Co když ten child někde chcípne a nezapíše tu tečku? Není lepší použít waitpid?Ako všetko, zaleží od použitia. Ak chceš poslať rodičovi nejakú správu, tak upravíš formát správ tečky za iný. A je to ľahko, a rýchlo.
... chybějící kontroly error code z fread, fwrite atd. Uf, to php je strašný hnus, nechápu, proč jsem s ním strávil kdysi tolik času. To si neber osobně, to je jenom stížnost na phpPHP ma ešte warning a error hlášky. Ak to stačí, ok, ak nie, tak sa to da ošetriť. Mne to stačilo takto. Ináč, zaleží od použitia, či to používaš ako skriptovací jazyk alebo programovací. Predsa ani v skripte detailne nekontroluješ furt, či máš miesta na disku.
Přenastav si error handler, aby házel výjimky a řešení chyb bude výrazně jednodušší.Tak jsem to přesně během poslední fáze frustrace z Php řešil, ale i tak bylo výsledkem dost nepřesné handlování exception a práce kolem, že jsem pochopil, že tímhle směrem opravdu nemělo smysl jít. Docela mě mrzí, že se v tomto směru neposunul můj oblíbený Perl, ze všech skriptovacích je na tom asi nejlíp můj ne tak oblíbený Python (a asi Ruby, které tak dobře neznám). Jinak myslím, že Perl na to má přímo nějaký modul, který udělá fork, udělá práci a pošle výsledek zpátky přes pipe (možná Parallel::Fork::BossWorker , nejsem si jistý). Ale proti třeba Java jsou všechny ty řešení dost šílené, zvláště, když od JDK 11 (?) umí pouštět přímo nekompilované java files. Jako proti gustu nic, když člověk umí jen php, tak co jiného zbývá, ale vidět potom v praxi, jak ten kód vypadá a stejně řeší jenom happy day scenario...
Namísto pojmenované roury použij anonymní, funguje to stejně, jen nestraší na disku a nemusíš ji uklízet (stačí zavřít). Taková hezká dvojice anonymních rour je stdin a stdout. Všechny knihovn funkce na spouštění procesů pro to mají podporu.Možno, ale pre logickú jednoduchosť je prehľadnejšie. Zároveň škalovateľne (rozšíriteľné do budúcnu). A pokiaľ nemáš dajme tomu 1000 ukončených "úkolov" (a la HTTP server), tak vyťaženosť ok. Ak sa signal vykonáva, tak sa blokujú dalsie (tak je default)
Přenastav si error handler, aby házel výjimky a řešení chyb bude výrazně jednodušší.Ešte zaleží od účelu programu, ak je niečo zle, tak všetko je zle a treba vykonať všetko nanovo.
Namísto pojmenované roury použij anonymní, funguje to stejně, jen nestraší na disku a nemusíš ji uklízet (stačí zavřít). Taková hezká dvojice anonymních rour je stdin a stdout. Všechny knihovn funkce na spouštění procesů pro to mají podporu.No, ono mať na disku (ak to neukladáš na ramfs) je že slúži ako na detekciu, či beží, nebeží program. Trebars ako ochrana proti dvojitému spusteniu.
Proc psat takove veci v sablonovacim jazyku???Od istej verzie už ním nie je. PHP je ľahšie forma C (syntax, filozofia). Môžeš si vybrať ako chceš písať, či objektovo alebo procedurárne, či aj ja. Relatívne ľahko sa dá algoritmus prepísať do iného jazyka. Stabilná štandardná knižnica. Rust ma zložitejšiu pracu s UTF-8 ako PHP. Python, to inštalovanie tých modulov a modulov. Moja práca (zamestnanie) a weby sú
str::chars()), ale ani to většinou není moc velký problém.
function print_chars($text)
{
foreach(mb_str_split($text) as $char)
echo "$char\n";
}
<?php
function print_chars($text)
{
echo implode("\n", mb_str_split($text))."\n";
}
Prečo inštalovať moduly na niečo, čo je v štandardnej knižnici?
import time
from multiprocessing import Pool
def child(id):
print(f"Child [{id}]: Starting.")
for i in range(10):
print(f"Child [{id}]: Message #{i}")
time.sleep(.6)
print(f"Child [{id}]: Ending.")
with Pool(processes=10) as pool:
pool.map(child, range(10))