Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
Byla vydána nová verze 9.7 multiplatformní digitální pracovní stanice pro práci s audiem (DAW) Ardour. Přehled novinek, vylepšení a oprav v poznámkách k vydání.
Vývojáři webového prohlížeče Ladybird dnes oznámili, že mění způsob vývoje. S blížícím se vydáním alfa verze přestávají přijímat veřejné pull requesty. Všechny otevřené veřejné pull requesty budou uzavřeny. Tým nedokáže garantovat bezpečnost AI generovaných pull requestů.
OpenLogi (GitHub) je open source náhrada aplikace Logi Options+ pro přizpůsobení myší od společnosti Logitech. Zatím běží pouze na macOS.
Tento zápisek byl redakcí smazán.
Tiskni
Sdílej:
Člověk buď použije nějaké ORM (Hibernate...) nebo si DB vrstvu napíše sám.
Ale i tak jsou případy, kdy je přímé použití JDBC vhodné/potřebné: prosté přelévání dat odněkud někam (je zbytečné data převádět ještě na objekty), dolování dat, kdy pracujeme přímo s jazykem SQL, různé jednorázové věci a drobnosti...
Nicméně hlavní myšlenkou předešlého příspěvku bylo, že by se mělo používat nějaké standardní rozhraní (JDBC, ODBC, PDO...), které umožňuje (alespoň částečnou) nezávislost na konkrétním typu SŘBD. A dovoluje tak např. snadno (snadněji) vyměnit databázovou vrstvu, přejít třeba od MySQL na PostgreSQL... (i když ladění SQL dotazů se člověk stejně neunikne - kéž by tak všichni dodavatelé dodržovali standardy).
$dbConnection = new $dbType;
$dbConnection->query('...');
$dbConnection->close();
Například.
bude dedit a pretezovat bazovou tridu kdyz stejne budete celou dobu pouzivat pouze jednoho potomka ktereho si zvolite v configu podle databaze na dostupne na serveru?Samozrejme, ze ano. A budes snad ty opakovat stejny kod vicekrat i kdyz by bylo mozne ho napsat dostatecne abstraktne a jednou a psat samostatne jen kod, ktery opravdu samostatny musi byt? Odkazu te na zaklady OOP znova -- tentokrat aby sis nastudoval jaky je vyznam rozhrani. Signatura a kontrakt rozhrani rikaji programatorovi, co ma naprogramovat aby jeho pojeti dane komponenty dobre pracovalo s existujicim systemem. Konektory na ruzne databaze jsou idealnim prikladem, databazi je mnoho a je tu realna pravdepodobnost, ze fanousek nejake jine DB bude chtit na ni PunBB provozovat. A jake ma moznosti za soucasneho stavu? Studovat jak trotl existujici nijak nesladene implementace tech jejich layeru misto aby naprogramoval svuj layer proti existujicimu rozhrani a prip. vyuzil z nejake abstraktni tridy kod, ktery muze byt univerzalni (v oblasti podpory ruznych DB by se neco takoveho urcite naslo). Navic bude muset krome psani noveho layeru upravovat i onen CASE. Kdyby to bylo vyreseno pres nejaky typ reflexe (v PHP se AFAIK da instancovat trida podle jmena v retezci, da se tak myslim i odkazovat na promennou), nebyl by CASE vubec potreba.
Predstav si ze budes psat multiplatformni tridu File, pokus by si zbrkle pouzil OOP napr takto: FileBase bude bazova trida(nebo rozhrani jestli chcete) a z te bude dedit trida FileWindows ktera bude specializovana na windows, dale FileUnix pro Unix atd.. bude se pri kazdem volani metody zbytecne testovat zda neni objekt potomkem a zda nema metodu pretizenou, zbytecne protoze za cely zbytek zivota programu od kompilace se nidky nepouzije jina specializaceJa nechapu, co mas porad s tim pretezovanim a testovanim (nehlede na to, ze nejspis myslis prekryti metody jinou implementaci v potomkovi a ne pretizeni -- pridani stejne pojmenovane metody s jinou signaturou v ramci jedne tridy). Nebude se testovat vubec nic. Na kazde platforme se podle konfigurace instancuje jina trida a na to zadne testovani neni potreba (minimalne u PHP a Javy muzu z fleku rict, ze instancovat tridu i volat na ni metody lze ze stringu, takze neni potreba jediny IF nebo CASE). A na te tride se pak budou volat metody definovane rozhranim. A kazda si to udela po svem, to me jako "klientovi" tech trid je uplne jedno, kdyz mi vrati co chci. Delal jsem Java app, ktera mela nacitat nekolik druhu bitmap a nezavisle na typu bitmapy na ni provadet serii operaci. Kod, ktery zajistoval vyber spravne tridy pro bitmapu neobsahoval jediny podminkovy konstrukt a vzdy se vybrala ta spravna trida, vsechny dedici z AbstractBitmap. Nedokazu si predstavit to peklo kdybych pak mel operace nad abstraktnim polem obrazovych dat psat v kazde tride zvlast. Vzdyt je to prasarna! Jiste, muzes si na to vytvorit nejakou sadu nevazanych funkci a tem ta data predhodit -- ale to IMHO bije do oci, "drbani se levou rukou za pravym uchem". Problem s tvym pohledem je ale jeste uplne jinde a uz jsem to nakousl vyse, kdyz jsem psal od ceho je rozhrani. Ty porad mluvis o behu programu, ale OO design existuje z velke casti pro programatory. Pro vetsi systemovost, jednodussi rozsiritelnost a vymenitelnost komponent. Jak uz jsem popsal -- tvuj system bez jednoticiho prvku bude znamenat peklo pro implementatory komponent, ktere se budou met stejne chovat, ale mit jinou logiku. Vazne by jsi chtel studovat nejakou tridu a zjistovat z jejiho kodu co vlastne vraci, abys mohl napsat podobnou, ale treba misto MySQL pro Oracle?
__autoload()).
__autoload() a díky něčemu jako new $dbType ještě ke všemu zkrátíš kód.
Udelat nekolik trid stejneho jmena resicich podobny problem (navic nemajicich zadneho predka!) a vybirat mezi nimi nejakym CASEm je naprosta prasarna.
Možná pro někoho, kdo odmítá jiného boha než OOP. Ale například v C se takto pomocí maker pracuje už víc jak 30 let a nikdo to za prasárnu nepovažuje...
.Opavdu ne?Možná pro někoho, kdo odmítá jiného boha než OOP. Ale například v C se takto pomocí maker pracuje už víc jak 30 let a nikdo to za prasárnu nepovažuje...
.
Objektovy pristup neni buh, je to evolucne dany pristup, ke kteremu se doslo proste proto, ze v drtive vetsine nejlepe modeluje problemovou domenu.
Snad brzy.