Boudhayan "bbhtt" Bhattcharya v článku Uzavření kapitoly o OpenH264 vysvětluje, proč bylo OpenH264 odstraněno z Freedesktop SDK.
Představeny byly nové verze AI modelů: DeepSeek V3-0324, Google Gemini 2.5 a OpenAI 4o Image Generation.
XZ Utils (Wikipedie) byly vydány ve verzi 5.8.0. Jedná se o první větší vydání od backdooru v XZ v loňském roce.
Byla vydána nová verze 0.40.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 2.20 svobodného video editoru Flowblade (GitHub, Wikipedie). Přehled novinek v poznámkách k vydání. Videoukázky funkcí Flowblade na Vimeu. Instalovat lze také z Flathubu.
LibrePCB, tj. svobodný multiplatformní softwarový nástroj pro návrh desek plošných spojů (PCB), byl vydán ve verzi 1.3.0. Přehled novinek v příspěvku na blogu a v aktualizované dokumentaci. Vypíchnut je interaktivní HTML BOM (Bill of Materials) a počáteční podpora Rustu. Zdrojové kódy LibrePCB jsou k dispozici na GitHubu pod licencí GPLv3.
Minulý měsíc Hector "marcan" Martin skončil jako upstream vývojář linuxového jádra i jako vedoucí projektu Asahi Linux. Vývoj Asahi Linuxu, tj. Linuxu pro Apple Silicon, ale pokračuje dál. Byl publikován březnový přehled dění a novinek z vývoje. Vývojáře lze podpořit na Open Collective.
Ruská firma Operation Zero nabízí až $4 miliony za funkčí exploit komunikační platformy Telegram. Nabídku učinila na platformě X. Firma je známá prodejem exploitů ruské vládě a soukromým společnostem. Další informace na securityweek.com.
Po 9 týdnech vývoje od vydání Linuxu 6.13 oznámil Linus Torvalds vydání Linuxu 6.14. Proč až v pondělí? V neděli prostě zapomněl :-). Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.
Konference LinuxDays 2025 proběhne o víkendu 4. a 5. října v Praze v areálu ČVUT v Dejvicích na FIT.
C++ patri uz spis mezi assemblery nez mezi vyssi jazyky(bez urazky). Je to dobry na psani ovladacu, jadra linuxu nebo realtime prumyslovejch veci ale hlavne se v tom bezvadne pisou chyby.
O tom by se dalo polemizovat protoze C# ani zdaleka nedosahuje prenostitelnosti javy
Ano pokud pouzivate jako IDE notepad nebo vim ci neco podobneho skutecne potrebujete vic kodu. Jelikoz Java misto OB.n.send pouzije OutputBuffer.next.send coz ji sice vic kodu, ale je citeljensi prehlednejsi a stejne ho za vas napise IDE :)
C++ patri uz spis mezi assemblery nez mezi vyssi jazyky(bez urazky). Je to dobry na psani ovladacu, jadra linuxu nebo realtime prumyslovejch veci ale hlavne se v tom bezvadne pisou chyby.To je s odpuštěním pěkná kravina. Závisí to na tom, jestli děláte kód, který vypadá jako kód C s prvky C++, nebo skutečný C++ kód, který ke zmiňovaným vyšším jazyků nemá moc daleko. A chyby se dají napsat všude, tady pomohou jen zkušenosti. Když uděláte botu v C#, tak to třeba nebude padat, ale stejně to nebude fungovat.
Chyby se daji udelat vsude, ale v C/C++ muzete udelat chyby, ktere jsou prakticky neodhalitelne.Tak ano, není to pro každého.
Pro vyvoj v C++ na linuxu se musite jeste naucit scriptovat v Makefile, automake, autoconf, sed, awk, m4 a v shell-u.Blbost a lež.
Pro vyvoj v C++ na linuxu se musite jeste naucit scriptovat v Makefile, automake, autoconf, sed, awk, m4 a v shell-u. Nez se dostenete k nejakym objektovym navrhum tak uplyne hodne dlouha doba.Tohle je lez. Existuji krasne generatory makefilu/buildystemy, se kterymi se nauci pracovat i cvicena opice, jako treba scons nebo cmake.
C++ se na vyvoj linuxovyho kernelu nepouziva protoze pred programatorem skryva alokaci pameti.To neni pravda.
1) v C(++) muzete zapisovat do nealokovane pameti aniz by to to vzdy vyvolalo chybu
2) v C(++) muzete si muzete volne prepisovat v pameti cokoliv cimkoliv
2) v C(++) muzete predavat funkci jiny pocet datovych typu nez odpovida prototypu funkce
3) v C(++) muzete pristupovat i za hranice pole mimo indexy
4) v C(++) si za jistych okolnost muzete prepsat kod funkce daty
5) v C(++) existuje nespocet "spinavych triku"
6) mimo jine v C++ muzete volat a modifikovat privatni funkce a metody ( ne normalne ale trikem, takze pokud napr do nejakeho vetsiho projektu pridavate cizi kod muze se klidne stat ze cizi kod kompromituje caou vasi aplikaci i kdyz striktne pouzivate private/public)
7) a vubec tu jeste neuvadim o tom jak je to v C++ s psanim a ladenim vicevlaknochy programu. Vubec nejlepsi je kdyz vam program beha v poradku a pak zjistite, ze kdyz ho nasadite do testovaciho prostredi a zatizite ho, zjistite ze zacina svevolne padat diky chybam soubehu nebo synchornizace vlaken :) to se OPRVADU SPATNE ladi :)
Opravte/doplnte me pokud se mylim
nevim presne jak v ostatnich jazycich. Ale napriklad Java vas vsechny tyhle veci nenecha vubec udelat a vyhodi vyjimku.
Psani vicevlaknoveho kodu je zde mnohem jednodussi mimalne proto, ze vlaknove
Nebezpecny kod staci uzavrit mezi synchronized { }
... považuje za správné ... ?rozmýšľať
v C(++) muzete predavat funkci jiny pocet datovych typu nez odpovida prototypu funkceV C++? Možná tak s
extern "C"
.
v C(++) muzete pristupovat i za hranice pole mimo indexyPokud použijete C pole, tak ano. V std::vector vám to s .at(x) neprojde.
v C(++) si za jistych okolnost muzete prepsat kod funkce datyDo tohoto segmentu se za běhu opravdu může zapisovat?
v C(++) existuje nespocet "spinavych triku"Tak jasně. U C/C++ se předpokládá rozum programátora, jinde je to víc bezriziková jízda.
a vubec tu jeste neuvadim o tom jak je to v C++ s psanim a ladenim vicevlaknochy programu. Vubec nejlepsi je kdyz vam program beha v poradku a pak zjistite, ze kdyz ho nasadite do testovaciho prostredi a zatizite ho, zjistite ze zacina svevolne padat diky chybam soubehu nebo synchornizace vlakenProblémy s více vlákny se všeobecně ladí těžko všude. V C++ však záleží jen na vás, jestli si to usnadníte nebo ztížíte.
v C(++) muzete predavat funkci jiny pocet datovych typu nez odpovida prototypu funkceV C++? Možná tak sextern "C"
.V C urcite a v c++ se podle vasi reakce uz poucili, ale pokud se nepletu tak se ani tam nehledi na typovou spravnost a muzete do ukazatele priradit cislo a podobne a do string dat integer :)
v C(++) muzete pristupovat i za hranice pole mimo indexyPokud použijete C pole, tak ano. V std::vector vám to s .at(x) neprojde.Ruku na srdce, kolik programatoru to zna/pouziva? zapis i[3] je proste pohodlnejsi.
v C(++) si za jistych okolnost muzete prepsat kod funkce datyDo tohoto segmentu se za běhu opravdu může zapisovat?Nejenom x86/Linuxem je clovek ziv ve spouste operacnich systemu a pripadne arichtektur je to AFAIK mozne.
v C(++) existuje nespocet "spinavych triku"Tak jasně. U C/C++ se předpokládá rozum programátora, jinde je to víc bezriziková jízda.To je podobne zduvodneni, jako kdyz reknete ze napojistky nedate kryt, protoze kazdy vi ze je nebezpecne tam sahat :)
a vubec tu jeste neuvadim o tom jak je to v C++ s psanim a ladenim vicevlaknochy programu. Vubec nejlepsi je kdyz vam program beha v poradku a pak zjistite, ze kdyz ho nasadite do testovaciho prostredi a zatizite ho, zjistite ze zacina svevolne padat diky chybam soubehu nebo synchornizace vlakenProblémy s více vlákny se všeobecně ladí těžko všude. V C++ však záleží jen na vás, jestli si to usnadníte nebo ztížíte.
ano ladi se spatne, ale dulezite je ze v Jave vznikaji mnohme obtizneji. Uz jenom z principu jakym jsou vlakna v jave resena. Pokud to hodne zjednodsim staci vsechny byt jen potencionalne nebezpecne operace obalit synchronized. Mam pocit ze JVM jde dokonce tak daleko ze kod zkouma a pokud se mu, zda ze nehrozi konflikt a ze operace jsou atomicke tak to vypusti. Mozna si to ale s necim pletu nejsem si uz presne jist.
Omlouvam se za formatovani trosku s tim zapasim :)V C urcite a v c++ se podle vasi reakce uz poucili, ale pokud se nepletu tak se ani tam nehledi na typovou spravnost a muzete do ukazatele priradit cislo a podobne a do string dat integer :)Musíte to ručně "silou" přetypovat. Rozhodně vám to jen tak nepovolí. Asi byste se sám měl něco o C++ naučit, než o něm začnete něco prohlašovat.
Ruku na srdce, kolik programatoru to zna/pouziva? zapis i[3] je proste pohodlnejsi.Ten, kdo to nezná a dělá v C++, není programátorem v C++. To je prostě blbec.
Nejenom x86/Linuxem je clovek ziv ve spouste operacnich systemu a pripadne arichtektur je to AFAIK mozne.Nicméně to může vzniknout jen pořádným prasením. Takovým prasením, že se mi tohle ještě nikdy omylem udělat nepodařilo.
To je podobne zduvodneni, jako kdyz reknete ze napojistky nedate kryt, protoze kazdy vi ze je nebezpecne tam sahat :)Spíš mi ty špinavé triky ukažte.
Pokud to hodne zjednodsim staci vsechny byt jen potencionalne nebezpecne operace obalit synchronized.A v C++ je zase obalím mutexem. Prašť jako uhoď.
class ucet
{
public int cokoliv;
private int stavUctu;
.
.
.
}
pokud si vytvorite instanci tridy ucet. Staci pomoci & operatoru vzit adresu objektu ucet pricist sizeof(int) a mate ukazatel na privatni promenou stav uctu.
Takze pokud typicky mate nejaky zabezpeceny system a do neho pridavate
cizi moduly, nemuzete verit nicemu.
To vam java v zivote nedovoli.
Nejsem programatorem v C++ takze ten priklad byl pro urcen pro C. Jestli by fungoval i v C++ to reknete vy.
Ruznych vsechno moznych spinavych triku je v C hodne. V C++ se domnivam ze take, akorat bohuzel nejsem schopen vam je tady ted abecedne vypsat.
A v C++ je zase obalím mutexem. Prašť jako uhoď.
Nejsem si ted uplne jist jestli mutexy semfory podobny veci nejsou dost platforme zavisle. V jave je to primo prvek jazyka kdezto zde je to prvek OS pokud se nepletu. Stejne tak threadPooly atp. tohle vsehcno vam v jave pobezi nezavisle na systemu, a nemusite psat nekolik ruznych casti kodu pro ruzne systemy a pak delat slozite makefily.
class ucet { public: int cokoliv; private: int stavUctu; }; ucet u; (&u.cokoliv) + 1 = ...;Ty proměnné můžete obalit do getterů a setterů. C/C++ patří mezi ty nejrychlejší jazyky a nejsou pro každého, takže pokud vám vyhovuje programování v Javě, není co řešit. Ale věřte mi, já bych nechtěl aby byl v Javě napsaný třeba Firefox :)
Ale věřte mi, já bych nechtěl aby byl v Javě napsaný třeba Firefox :)Jistě by to bylo takové zhoršení oproti současnému JavaScriptu?
Nic nikou nebrání si udělat v C++ třídy a používat je (nejdou tak lehce implicitně přetypovat), přetížit si operátor [] tak, aby vyhodil vyjímku při přístuju mimo mez, atd.Ano nebrani jak jiz bylo receno, C++ je mnohem svobodnejsi jazyk nez java. Ale opet to musim prirovnat k tomu jako kdyz mate dvere bez zamku a spolehate na to, ze se nekrade, ale nic vam nebrani si je primontovat. Pak dopadnete tak ze si budete v pulce prohramu pretezovat a pretypovavat a psat svoje funkce a nakonec budete mit to co ma java implicitne. Neni to zbytecna prace?
v C(++) muzete pristupovat i za hranice pole mimo indexyPokud použijete C pole, tak ano. V std::vector vám to s .at(x) neprojde.
Ruku na srdce, kolik programatoru to zna/pouziva? zapis i[3] je proste pohodlnejsi.
to je to samy, jako kdybych rek, ze java je na hovno, protoze neumim pouzivat vyjimklyto je to samy, jako kdybych rek, ze java je na hovno, protoze neumim pouzivat vyjimklyAno mate pravdu je to velmi podobne. S tim rozdilem ze nezanedbatelna cast padu programu v C je pristup za hranice pole
Každý jazyk má holt svoje plus a mínus a záleží na tom co používáte. Docela dost mohou také udělat užívaná IDE a frameworky (Eric, IDLE, NetBeans, Visual Studio, atd.).
Jakto, ze to nejde? To se neda rict, tenhle jazyk má tohle a tenhle to nemá... Tenhle má zase tohle navíc... A tak...Ano, takové objektivni hodnocení se nazývá turing-completeness. Pokud je jazyk turing-complete, tak má již (z definice) všechno co potřebuje. Cokoliv navíc jsou jen vymoženosti pro pohodlí programátora, tedy čistě subjektivní záležitost. Problém je v tom, že všechny jazyky o kterých uvažuješ (a troufám si říci že i všechny o kterých jsi kdy uvažoval) tuto podmínku splňují
Chci slyšet: Java ma C-like syntaxi, Python má zase takovou....Tak to je jednoduchý: Wikipedia
Protože Turing kompletnost je killer vlastnost. Protože když máš něco turing complete, tak to dokáže spočítat cokoliv. Turingův stroj není problém postavit, nasimulovat, analyzovat, protože je jednoduchý.Možná to někomu přijde jako drobnost, ale ani s Turingovým strojem nejde spočítat/naprogramovat cokoliv.. nehledě na to, že implementace nekonečné pásky bývá v současných systémech taky trochu komplikovaná
Objektivne srovnat jazyky je mozne, pokud zadate jasna kriteria :) Ale vzhledem k tomu ze si kriteria stanovujete subjektivne, tak se tim objektivnost celeho srovnani trosku nabourava.
Kazdopadne si nemyslim, ze volba jazyka je kriticka. Pokud bude dobre umet kterykoliv pouzivany jazyk, neprohloupite.
Zvazte take pro jakou platformu chcete programovat. S C# je to spatne s prenositelnosti a argument ze exituje Mono rozhodne nobstoji protoze Mono je IMHO pekna hruza. A clovek stravi pulku vyvoje testovanim zda jeho kod bezi i pod Monem.
V první řadě je potřeba zjistit, co ti nevyhovuje, nebo chybí v Pythonu.Jo, to by mně taky zajímalo, zdali něco takového je. Já sice nesnáším Pythonovskou syntaxi - syntaxe Ruby mi přijde daleko lepší, ale to je čistě subjektivní. Objektivně se v obou jazycích programuje nejspíš stejně pohodlně.
... nicméně primárně se jazyk volí podle projektu, ne naopak.Přesně tak. Budu-li mít za úkol manipulovat s Wordovskými dokumenty, sáhnu nejspíš po Visual Basicu, budu-li počítat s rozsáhlými maticemi komplexních čísel, patrně vyhraje Fortran. Nezapomeňte také na to, že pohodlí práce s daným prostředím nevytváří jen syntaxe daného jazyka nebo "brutálnost" OOP, ale i kvalita API standardní knihovny, nabídka "third-party" knihoven, prostředky pro ladění programů atd.
btw, odporúčam prečítať si Programming is Hard, Let's Go Scripting..., vybrať si pre vás/teba dôležité vlastnosti a jazyk zvoliť podľa nich
Na Pythonu mi nechybi vubec nic...No ja nevim, pises, ze chces brutalni objektovost, zavrhujes Javu (proc?) a pises, ze v Pythonu ti nic nechybi -- pritom ten ma do brutalni objektovosti celkem daleko. Jses si jisty, zes tu objektovost a jeji pripadnou brutalitu pobral spravne?
Koncept rozhraní se dá doimplementovat (Pochopitelně se nechovají stejně, jako ty v Javě, ale to je vzhledem k dynamické povaze Pythonu pochopitelné).No prave... doimplementovat. Pak to podle toho vypada
To jako Smalltalk taky není dobrý objektový jazyk, když ji umožňuje?Vim, ze souhlasit s timhle by pro me znamenalo od nekolika lidi rozsudek pomale mucive smrti
IMNHO vicenasobna dedicnost nema v dobrem objektovem navrhu co delat. Jen podporuje zneuzivani dedicnosti k prostemu sdileni implementace.riadna blbosť. viacnásobná dedičnosť v reálnom svete jednoducho existuje.
Priklad?IMNHO vicenasobna dedicnost nema v dobrem objektovem navrhu co delat. Jen podporuje zneuzivani dedicnosti k prostemu sdileni implementace.riadna blbosť. viacnásobná dedičnosť v reálnom svete jednoducho existuje.
jasné, poviete "interface 1 2 3 4 5 a všetko vždy implentovať" .. aj za cenu copy-paste programovania, hoci je možná default imlementácia niektorých metód (i.e. sú implementovateľné využitím zvyšných metód)
a ako to vyzerá v jave?
class vsetko implements ... { private Telefon telefon; private Radio radio; ... public int xyz_01 (...) { this.telefon.xyz_01 (...); }; public int xyz_02 (...) { this.radio_02 (...); }; public int xyz_03 (...) { this.storage.xyz_03 (...); }; }
Příklad mobilný telefón s rádiom, mp3 prehrávačom, dig. fotoaparátom a usb storage je podle mě typický návrhový vzor Composite. Ten sice chápu dost matně, možná protože je ten vzor pojat všude jinak a někde nijak a tak se mi to motá.Vsadil bych ale klobouk na to, že je to kompozit.IMHO tady nejvic sedi vzor Proxy.
mobilný telefón s rádiom, mp3 prehrávačom, dig. fotoaparátom a usb storageA co to je? Je to mobil? nebo radio? nebo mp3 prehravac? Kde je "is-a" relace v tomhle vztahu? (mp3 prehravac i fotak ma svuj vlastni storage -- takze kdyz je proste jen rozsiris obe a jeste k tomu rozsiris primo storage, muzes se velice lehce dostat k diamond problemu, coz je jeden z hlavnich duvodu, proc neni MI dobra vec). Co to je za tridu "vsetko"? Mel to byt prece telefon s uvedenymi funkcemi, tedy Telefon implementujici dalsi rozhrani a s telem tridy priblizne tak, jak jsi to napsal (bez privatniho Telefonu). Tak to totiz odpovida realnemu svetu. Primarne je to porad telefon. Jen jsou v nem subsystemy, ktere pridavaji dalsi funkce. Mozna to nebude tak "hezke" jako v C++ nebo jinem MI jazyce, ale komponentovost a zapouzdreni zustane dokonale zabezpeceno. Mj. bude mnohem jednodussi ty komponenty vymenovat. Pujde to na rozdil od MI reseni i za behu programu a mnohem jednodussi bude pro vnejsi implementatory doprogramovat svoje komponenty. Flexibilita nesrovnatelna oproti reseni, kdy by trida Vsetko zdedila implementace Telefonu, Radia, Fotaku a Storage zaroven.
No prave... doimplementovat. Pak to podle toho vypadaNějaké konkrétní námitky? Já se teda se zope interface moc nepotkal, takže by mě zajímaly zkušenosti někoho, kdo s nimi dělal víc.
To jako Smalltalk taky není dobrý objektový jazyk, když ji umožňuje?No a proto jsem napsal, že objektovost je to, co se rozumí pod tím, co umí můj oblíbený jazyk
nema v dobrem objektovem navrhu co delatTyto globální odsudky nemám příliš v lásce. Zase, určitě existuje milión případů, kdy je násobná dědičnost užitečná, stejně jako milión těch, kdy není.
Nějaké konkrétní námitky? Já se teda se zope interface moc nepotkal, takže by mě zajímaly zkušenosti někoho, kdo s nimi dělal víc.Minimalne to, ze nemas sani v zadnem IDE na nejakou rozumnou podporu a ze problem s napr. chybejici implementaci metody zjistis vzdy az pri behu programu. To je napr. oproti Jave dost silna nevyhoda.
Ale chápu, že člověk, co se podíval třeba na EJB 2 může jenom děkovat, že v Javě možnost vícenásobné dědičnosti není.Obecne neznam moc lidi, co by z EJB skakali radosti
Zase, určitě existuje milión případů, kdy je násobná dědičnost užitečná, stejně jako milión těch, kdy není.S tim prvnim milionem bych nesouhlasil
Jen podporuje zneuzivani dedicnosti k prostemu sdileni implementace.
he? za túto vetu ste si u mňa vyslúžil ohodnotenie "človek bez informačnej hodnoty"
chcete príklad na ten default ?
množina porovnaní, stačí implementovať buď väčší
alebo menší
a výsledky ostatných porovnaní sa dajú vygenerovať.
(typický javista odpovie: máme predsa interface Comparable, prečo by som sa mal zamýšľať nad týmto príkladom?)
vysvetlenie? ak zakážeš zdieľanie implementácie, vzniká problém n-násobnej implemetácie (a samozrejme, n-násobenie chýb).Napsal jsem snad, ze chci zakazat sdieleni implementace?! Sdileni implementace je samozrejme u klasicke dedicnosti naprosto normalni a spravne -- za predpokladu, ze dodrzis semantickou vazbu mezi rodicem a potomkem. Co kritizuju je proste sdileni implementace, tzn. dedeni ponorky z ryby jen proto, ze ponorka ma taky metodu
plavPodVodou()
-- to je proste bordel. A u MI je tenhle problem inherentni.
"Objektovosť" nie je všetko (ono, napr i java je len pseudo-objektový jazyk), dôležitejšie sú imho výrazové prostriedky jazyka (duck typing, autoload, polia/hashe ako súčasť jazyk či dolepené knižnice, ...)
Tiskni
Sdílej: