CrossOver, komerční produkt založený na Wine, byl vydán ve verzi 26. Přehled novinek v ChangeLogu. CrossOver 26 vychází z Wine 11.0, D3DMetal 3.0, DXMT 0.72, Wine Mono 10.4.1 a vkd3d 1.18. Do 17. února lze koupit CrossOver+ se slevou 26 %.
KiCad je nově k dispozici také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit [Mastodon, 𝕏].
Šenčenská firma Seeed Studio představila projekt levného robotického ramena reBot Arm B601, primárně coby pomůcky pro studenty a výzkumníky. Paže má 6 stupňů volnosti, dosah 650 mm a nosnost 1,5 kilogramu, podporované platformy mají být ROS1, ROS2, LeRobot, Pinocchio a Isaac Sim, krom toho bude k dispozici vlastní SDK napsané v Pythonu. Kompletní seznam součástek, videonávody a nejspíš i cena budou zveřejněny až koncem tohoto měsíce.
… více »Byla vydána nová verze 36.0, tj. první stabilní verze nové řady 36, svobodného multimediálního centra MythTV (Wikipedie). Přehled novinek a vylepšení v poznámkách k vydání.
Byl vydán LineageOS 23.2 (Mastodon). LineageOS (Wikipedie) je svobodný operační systém pro chytré telefony, tablety a set-top boxy založený na Androidu. Jedná se o nástupce CyanogenModu.
Od března budou mít uživatelé Discordu bez ověření věku pouze minimální práva vhodná pro teenagery.
Evropská komise (EK) předběžně shledala čínskou sociální síť pro sdílení krátkých videí TikTok návykovým designem v rozporu s unijním nařízením o digitálních službách (DSA). Komise, která je exekutivním orgánem Evropské unie a má rozsáhlé pravomoci, o tom informovala v tiskovém sdělení. TikTok v reakci uvedl, že EK o platformě vykreslila podle něj zcela nepravdivý obraz, a proto se bude bránit.… více »
Offpunk byl vydán ve verzi 3.0. Jedná se o webový prohlížeč běžící v terminálu a podporující také protokoly Gemini, Gopher a RSS. Přibyl nástroj xkcdpunk pro zobrazení XKCD v terminálu.
Promethee je projekt, který implementuje UEFI (Unified Extensible Firmware Interface) bindingy pro JavaScript. Z bootovacího média načítá a spouští soubor 'script.js', který může používat UEFI služby. Cílem je vytvořit zavaděč, který lze přizpůsobit pomocí HTML/CSS/JS. Repozitář se zdrojovými kódy je na Codebergu.
Zpráva Justičního výboru Sněmovny reprezentantů upozorňuje na cenzurní kampaň Evropské komise, mířenou proti svobodě projevu na sociálních sítích. V dokumentu se uvádí, že se Evropská komise během posledních šesti let účastnila více než 100 uzavřených jednání, během nichž po platformách požadovala úpravy pravidel moderování obsahu, přičemž toto úsilí Komise zahrnovalo i cenzuru politických názorů a pravdivých informací. Výbor zdůrazňuje, že tento přístup Bruselu ohrožuje ústavou zaručená práva Američanů na svobodu projevu.
throw new Exception('Chybové hlášení');
class Forms{
private $input = array();
private $textarea = array();
private $layout;
public function __construct(){
try{
$this->getInput();
$this->getTextarea();
$this->getButton();
$this->setLayout();
}catch (PDOException $e){
$this->setLayout();
}
}
private function getInput(){
if($a === true) //Vyvoláme chybu
throw new Exception('Chyba!');
}
private function getTextarea(){}
private function getButton(){}
private function setLayout(){
$this->layout = $input[0].
$input[1].
$input[2].
$textarea[0].
$textarea[1];
}
public function __toString(){
return $this->layout();
}
}
$forms = new Forms();
echo $forms;
$this->layout pokud nektera z metod vyhodi vyjimku..
private $input = array(); private $textarea = array(); // v konstruktoru $this->getInput();Zřejmě metodou
getInput() plníš pole $input. Jenže to tak být nemusí. Co třeba takto?
private $input; private $textarea; // v konstruktoru $input = new Input();a v metodě
__toString() ty dva objekty spojíš do jednoho stringu.
$this->layout vůbec neměla existovat. Přece se i v OOP dělá normalizace. Nebo snad ne?
1. ano, závorky tam nepatří, čili to má být takto $this->layout; 2. no to jsou pole, ne proměnné 3. ano, vypadl řádek $a = true;
class Forms {
private $input = array();
private $textarea = array();
public function __construct(){
try {
$this->getInput();
$this->getTextarea();
$this->getButton();
} catch (PDOException $e){
$input = array();
$textarea = array();
}
}
private function getInput() {
if($a === true) //Vyvoláme chybu
throw new Exception('Chyba!');
}
private function getTextarea() {}
private function getButton() {}
public function __toString(){
return implode('', $this->input) .
implode('', $this->textarea);
}
}
$forms = new Forms();
echo $forms;
//if($a === true) //Vyvoláme chybuabych vyvolal chybu kterou odchytím a pokračuji dál dle nastaveni, tak dostávam chybu:
Fatal error: Uncaught exception 'Exception' with message 'Chyba!'Proč? Díky
Exception, ale zachytáváš PDOException. Pokud tu předponu "PDO" vyhodíš, bude to fungovat.
hm, hm..
} catch (PDOException $e){
napiš jen
} catch (Exception $e){
Takovou kravinu sis mohl klidně opravit sám. Měl jsi to tak chybně v originále a pouze jsem to přehlédl.
public function __construct(){
try{
$this->getInput();
$this->getTextarea();
$this->getButton();
$this->setLayout();
}catch (PDOException $e){
$this->setLayout();
}
}
myslel tim, ze misto zachytavani PDOException tam mas mit obecnou Exception, takze tim zachytis jakoukoliv vyjimku, ne jen vyjimky ktere jsou instancemi PDOException
protože do atributů objektu se dávají jen atomické a strukturované údaje, nikoli agregáty.Můžeš mi prosím tohle objasnit?
try {
..
} catch (Exception $e){
..
}
a volání metod patří do __toString() ?
try {
echo $a; // tohle by mělo vyhodit chybu, že není inicializovaná prom. $a
} catch (Exception $e){
echo "$e"; // a zprávu o té chybě bych chtěl dostat sem
}
A pak už bych byl velký frajem a změnil bych si i NICK
isset($a).
Tiskni
Sdílej: