Námořní drony používané elitními jednotkami britského královského námořnictva tajně posílaly údaje do Číny. Stroje vybavené čínskými komponenty měly být využívány pro vojenské operace na Blízkém východě. Kamery na dálkově řízených průzkumných člunech K3 Scout byly vybavené součástkami, které bez vědomí britského námořnictva odesílaly informace do spojeného zařízení v Číně. Britské námořní síly využívaly flotilu námořních dronů
… více »Alza.cz nabízí herní AlzaPC s předinstalovaným Linuxem (YouTube), konkrétně s linuxovou distribucí Bazzite (Wikipedie).
Squeak (Wikipedie), open source implementace programovacího jazyka a prostředí Smalltalk, byl vydán ve verzi 6.1. Přehled novinek v poznámkách k vydání.
V Linuxu v KVM byla nalezena a v upstreamu již byla opravena kritická zranitelnost Zapscape aneb CVE-2026-64561. Root na hostovaném počítači (virtuální stroj) může obejít izolaci a získat plnou kontrolu nad hostitelským systémem (DoS útok nebo vzdálené spuštění kódu s právy roota). Na obou hlavních architekturách – Intel i AMD. Zranitelnost v Linuxu existovala 6 let (od července 2020 do července 2026).
Počítačová hra Knytt napsaná v Multimedia Fusion 2 byla vydána před 20 lety. Při této příležitosti byl dnes představen moderní port (YouTube) této plošinovky na současné operační systémy pod názvem Knytt Classic. Je zdarma k dispozici na Steamu a GOG.com.
Americká technologická společnost Meta Platforms představila nový model umělé inteligence (AI) Muse Glimmer. Model je menší než přední modely AI od konkurence a má běžet přímo na počítačích uživatelů. Meta model zpřístupní jako open source, tedy otevřený software. Nový model je navržen tak, aby zvládal takzvané agentní úkoly na počítačích se spotřebitelskou grafickou kartou. Klade si tak za cíl uspokojit poptávku po systémech AI, které běží přímo na zařízeních uživatelů.
V pátek 28. srpna 2026 se v pražském Karlíně uskuteční již osmý Mobilní Hackday. Akce začne v 10:00 a potrvá až do večera. Setkání proběhne v prostorách SUSE Linux, s.r.o. na adrese Křižíkova 148/34, Praha 8 – Karlín. Nejbližší zastávkou je Křižíkova, kam se lze dostat tramvají i metrem. Na programu budou například novinky z posledních měsíců, možnosti, jak si zjednodušit práci s LLM/AI, a také nová linuxová distribuce BengalOS, včetně … více »
Jakub Vrána vydal Adminer ve verzi 6.0.0 s více než 130 změnami: "Většina změn vznikla s asistencí Claude Opus 5. Někteří lidi se bojí, že AI asistence může kód zamořit technickým dluhem. To je jistě pravda, pokud vývojář všechny změny bezduše odbouchne Enterem. Ale pokud si pořádně projde plán, vyjedná v něm změny a pak totéž udělá i s vygenerovaným kódem, kvalita kódu stoupne a technický dluh naopak klesne. Je to jako párové programování s
… více »Sam Aaron vydal novou major verzi 5.0.0 aplikace Sonic Pi (Wikipedie) určené také pro výuku programování pomocí skládání hudby. Přehled novinek na GitHubu. Instalovat lze také z Flathubu.
U příležitosti 30. výročí vydání počítačové hry Quake byla vydána nová epizoda s názvem Dawn of the Machine (Steam).
function obsah(){
}
obsah();
Řešení dotazu:
Není úplně jasné jaký to je jazyk, ale pokud PHP tak class_alias
function uvnitr() {
obsah();
}
?
function obsah() {
global $foo;
$foo = 'string';
}
function uvnitr() {
obsah();
}
zavolam obsah(); // $foo existuje
zavolam uvnitr(); // $foo je NULL
Jinak jedná se o PHP ;)
global? V PHP jsem ho nepoužil už mnoho let. Mám za to, že je zbytečný.
Tu proměnnou musíš nejprve definovat mimo funkci. Pak bude global fungovat.
Vůbec nechápu, čeho chceš vlastně docílit. Statické proměnné v objektu? Tak proč ji tak neuděláš?
<?php
$odpoved = NULL;
$spravna_otazka = NULL;
function HlubinaMysleniAzemeVjednom(){
global $odpoved,$spravna_otazka;
//Kód, který spočítá odpověd na otázku: „život vesmír a vůbec“
$odpoved = 42;
//Kód, který spočítá správnou otázku
$spravna_otazka = 'Co dostanete když vynásobíte šest devíti?';
return "Spočítáno:";
}
echo "Před voláním fce:<br />\n";
echo " Odpověď: $odpoved<br />\n";
echo " Otázka: $spravna_otazka<br />\n";
echo GrosseBigFunkce2000(),"<br />\n";
echo " Odpověď: $odpoved<br />\n";
echo " Otázka: $spravna_otazka<br />\n";
echo HlubinaMysleniAzemeVjednom(),"(…snaha být vtipný si vybírá svou daň…)
\n";
$spravna_otazka = 'Co dostanete když vynásobíte šest sedmi?';
global. K ničemu ho potřebovat nebudeš.
<?php
function x() {
global $a;
$a = $a + 5;
}
function y() {
x();
}
$a = "1";
echo $a . "\n";
x();
echo $a . "\n";
y();
echo $a . "\n";
?>
Vystup skriptu v cli:
loki@moneymaster:/tmp$ php x.php 1 6 11Jedine, co tim chci rict, ze dle ocekavani funguje i takoveto obalovaci volani funkce.
Prdel je mít funkci o 2000 řádcích. Refactoring je to magické slovo, které vám pomůže.
Na rozumnou odpověď je tu dost málo informací, tu debilní hodnotu si tedy musíte někam uložit. Global je dost divoké řešení. Jak ta funkce vrací debilní hodnotu? Přes return? Pokud ano, kde voláte tu funkci? Nebylo by lepší v tomto bodě si hodnotu uložit pro další použití? Funkce je v nějaké třídě? Pokud výsledek potřebujete použít víckrát a je neefektivní funkci volat přímo dokola, musíte s tím počítat v návrhu. Existuje velké množství řešení a bez potřebných informací to tu nikdo nemá chuť řešit.
$this->promenna. Z vnějšku se pak na ně můžeš odkazovat stylem $objekt->promenna.
Ale jak už tady bylo několikrát napsáno, 2000 řádková funkce je nesmysl a ukazuje to spíš na programátorovu neschopnost dekompozice. Pochopil bych to u továrny, která má vybrat, který z 2000 objektů má vytvořit, ale spíš mám podezření na velmi neefektivní špagetový kód, samé if ... elseif ... elseif ... To je prostě nutné předělat.
goto. On to možná ví, já ne. Pomalu už zapomínám i jak se píše cyklus for...
Jestli se Libor učil prvně programovat v Basicu nebo ve strojáku, tak je docela pochopitelné, že si ty zakořeněné nešvary chce vzít i do PHP
Chtěl bych tyhle mudrce vidět, v čem by se v 80. letech učili programovat oni…
Obávám se, že jsi nepochopil moji pointu. I ten, kdo programoval tenkrát v Basicu, se může naučit dnešním metody programování. Přenášet si tehdejší návyky do dnešních programovacích jazyků je hloupost.
A naopak: to, jak někdo prasí dnes, nemá moc společného s tím, na jakých jazycích začínal. Zvlášť ne v případě, že by ty jazyky nebyly jeho volbou ale spíš jen výsledkem okolností.
trocha zkušenosti se strojákem je něco, co by spousta dnešních namachrovanců odkojených Javou potřebovala jako prase drbáníMohu se zeptat, proč si to myslíte?
... kdo začínal v Basicu, musí už "basicově" myslet do smrti...To tady přece nikdo netvrdí. Jen je obtížné přejít na jiné paradigma a mnoho programátorů to jednoduše nezvládne. Sám o sobě vím, že funkcionální prvky se snažím nacpat do všech programů, které píšu. Proč? Protože se mi to tak líbí. Libor možná do programů tlačí prvky imperativní. Proč? Protože je na to zvyklý a nechce to měnit. A narazil. A chce vědět, jak to udělat v tom jeho imperativním stylu. My mu to rozmlouváme a snažíme se mu ukázat, že to jde jinak. Také někteří z nás ukázali, že to jde i tak, jak to chce. Jenže Libor tu teď není nebo to jen čte a chechtá se našim sporům. Každý programátor inklinuje ať vědomě či nevědomě k nějakému programovacímu stylu, který jen velmi neochotně mění při přechodu na jiný jazyk. Některé jazyky zavrhne rovnou, jiné používá jinak, než bylo původně zamýšleno. Někdy je to dobře, jindy špatně. Mnozí se s novým paradigmatem sžijí velmi rychle. K původnímu se vůbec nechtějí vracet a naopak do původního jazyka se snaží zavést nově poznané techniky.
A fakt je že některé basicové věci mám natolik v krvi, že mě někdy nejdřív automaticky napadne jak bych to udělal na Didaktiku, a pak musím přemýšlet jak to vyřešit jinak. On ten SinclairBASIC byl prostě nejlepší...
Zkusil jsem teď i PHP, bylo "jen" 10x pomalejší. Odhaduji, že Java bude někde mezi, ale kdoví?
Proč škoda?…sem si chtěl zatrollovat, bo ji nemám rád a stále musím být ostražitý, když máme něco nového implementovat a je to v Javě.
Na model se zas tak často nesahá, testování mimo produkční data je také dobrý zvyk. To platí snad ve všech jazycích.V podstatě máš pravdu, ale na druhou stranu tvůj příspěvek de facto vůbec nesouvisí s tím mým.
Reagoval jsem jen na první odstavec.Vážně?
Nemyslím si, že bych byl typický PHPkář. Necítím se tak. Stačí, když se podívám na cizí PHP kód a dělá se mi špatně.Já zase reagoval na: PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou. A úplně živě si to umím představit, to ladění za provozu. Ale fakt je, že u některých časově nekritických věcí se to dá.
Jestli někdo produkuje hromadu chybného kódu, je jedno, v jakém jazyku ho píše. Kompilátor mu v tom nezabrání. Testy ano, ale ty se dají psát pro každý jazyk.Však ono taky nejde ani tak o jazyk, jako o způsob jeho použití. Faktem je, že PHP se tradičně používá jako šablonovací systém. A když se kód píše přímo do šablon, tak podle toho výsledek vypadá. Zpět k tomu živému ladění. To je podle mě možné jako v PHP, tak v Javě, tak v C. I když třeba v Pythonu se to bude dělat lépe než v kterémkoli z předchozích (hint: interaktivní interpret).
A úplně živě si to umím představit, to ladění za provozu.Vážně?
Faktem je, že PHP se tradičně používá jako šablonovací systém. A když se kód píše přímo do šablon, tak podle toho výsledek vypadá.Skutečně si myslíš, že to dělám zrovna takhle?
Zpět k tomu živému ladění. To je podle mě možné jako v PHP, tak v Javě, tak v C. I když třeba v Pythonu se to bude dělat lépe než v kterémkoli z předchozích (hint: interaktivní interpret).A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?
Vážně?Řekněme z vlastní zkušenosti? :)
Skutečně si myslíš, že to dělám zrovna takhle?Nemám tušení.
A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?To myslíš jako při pohledu na následující?
PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.Ne.
Fakt si myslíš, že to spolu nesouvisí? Že moduly, které při provozu ladím, ostatní uživatelé vidí a mohou používat? Že při ladění používám produkční databázi?A vůbec tě nenapadlo, že ladění modulů nedělám v produkční větvi, ale že je tam dávám až po úspěšném absolvování testů?To myslíš jako při pohledu na následující?PHP mohu ladit za plného provozu, při troše šikovnosti si toho uživatelé ani nevšimnou.Ne.
Napsat v ní "jen tak" kus kódu, který chci později refaktorovat, není jednoduché.Práve naopak, presne na toto je Java veľmi vhodná. Prípadné nedostatky by som hľadal medzi klávesnicou a stoličkou.
Také mi vadí, že při ladění aplikace ji musím přeložit novou, starou ukončit, novou spustit,... Je to příliš mnoho úkonů kvůli třeba opravě jedné metody.Ale no tak to snáď nie! Hot-swap sme na ladenie a testovanie opravy chýb používali už pred cca piatimi rokmi!
Také mi vadí, že při ladění aplikace ji musím přeložit novou, starou ukončit, novou spustit,...Já mám v IDE vedle ikonky pro spouštění ještě takovou jinou ikonku s nápisem „Debug Main Project“ a pak to jde upravovat i za chodu a taky člověk vidí, jaké hodnoty jsou v kterých proměnných
global jen zpřístupní proměnné které jsou v nadřazeném bloku.
$var = null;
$prvni = function() use($var) {
if ($var === null) $var = 2;
};
$druha = $prvni;
Volání pak
$prvni();
$druha();
volá stejnou funkci a var se počítá jen jednou.
Tiskni
Sdílej: