Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
Uvedené pojmenování jednotlivých sekcí sice odpovídá typickému použití for cyklu, nicméně jazyk C++ pouze vyžaduje, aby všechny sekce obsahovaly korektní výrazy.Jako né že by tomu nebylo rozumět (zvlášť se ví, co se chce říct), ale člověk s červenou tužkou by ti k tomu nejspíš tu vlnovku přikreslil. A méně reklamštiny
Program "early access" je náš způsob, jak odměnit zákazníky, kteří jsou ochotni koupit si nový produkt, jak vylepšit samotný produkt pomocí zpětné vazby od zákazníků a jak zákazníky za tuto zpětnou vazbu odměnit.
Já jsem se bohužel na stránkách k ukázkám nedostal. Nicméně, třeba to autor dotáhne. Mě už je to jednom já po více, než 15 leté praxi v C++ tohle nepotřebuji.
Nicméně ohledně placené podpory C/C++ mě to samotného napadlo jako podnikání, ale nezrealizoval jsem to. Právě proto, že na většinu otázek Vám odpoví zadarmo na fórech, a tak by za mnou chodili lidé jen s těmi nejhoršími a najnáročnějšími - tzn. podpora by musela být hodně drahá, aby odrážela know how, které nabízím.
Mimochodem, každé, kdo mi řekne, že umí C++ na 100% (což umí naprosto minimální počet lidí, většina z nich používá tak 1-2% z možností C++) zkouším takto. Mám následující zdroják:
static const int cislo = 30; static const int cislo_faktorial = ?
A chci po něm, aby do konstanty cislo_faktorial doplnil faktoriál konstanty cislo. Samozřejmě to musí fungovat tak, aby při změně hodnoty konstanty cislo kompilátor správně spočítal její faktoriál a dosadil ho jako konstantu do cislo_faktorial. Tedy jinak řečeno, faktoriál musí vypočítat kompilátor C++ při kompilaci. C++ to v pohodě umí. Pokud to zvládnete, můžete si říci, že se pohybujete v nadprůměrných znalostech C++.
Ten, kdo nezvládne výše uvedený příklad, je v začátečnické úrovni C++ a používá nepatrný zlomeček jeho možností.
static const int cislo = 10; static const long cislo_faktorial = long(fak(cislo));kde fak je funkce, co pocita faktorial. Nebo jsem to nepochopil a ta obtiznost mela byt v tom, ze to ma byt int a faktorila 30 je mimo rozsah intu?
Tohle ti ale rozhodně nespočítá ten faktoriál při kompilaci...
To že počítat s "běžným integerem" faktoriál 30 je dost ošemetná záležitost a někdo s 15 letou praxí v C++ by to rozhodně měl vědět je už jiná věc...
A hlavně lidi co ve skutečném kódu použijou něco takového bych normálně bez soudu střílel.
v 98 procentech případů napíšou čitelnější a udržovatelnější kódJenomze nefunkcni. To jestli je hodnota spocitana v dobe kompilace nebo v dobe behu ma dusledky v tom kde takovou hodnotu muzeme pouzit.
Nevylučuju samozřejmě, že dobře mířená templata sem tam může podstatně zkrátit zdroják a příliš nezhoršit čitelnost. Zatím jsem ovšem nic podobného neviděla - přijde mi spíš, že to lidi používají, aby všichni viděli, jak jsou cool, když už si dali tu práci se to naučit. Něco podobného se dá potkat snad jen mezi lidmi, co zrovna objevují perl...Ocekavat, ze budete znat neco jako navrh zalozeny na zasadach je asi moc, ze? Nebo friend injection? Obavam se ze mate velmi, velmi omezene obzory.
Lidi, co dělají podobné věci, by měli jít povinně dělat na pár měsíců to, co já - číst kód ostatních a lovit v něm bugy. Pak by je nic podobného už nikdy ani nenapadlo.Ale napadlo. Bugy lovim porad. Proc se omezovat kvuli lidem, kteri se nechteji jazyk naucit?
Jenomze nefunkcni. To jestli je hodnota spocitana v dobe kompilace nebo v dobe behu ma dusledky v tom kde takovou hodnotu muzeme pouzit.To je pravda. Ale počítat nějakou hodnotu zběsilými šablonovými konstrukcemi jenom proto, aby byla spočítaná už v době kompilace, je prakticky vždy naprostá oslovina. (Mimochodem, ona by asi stejně dobře šla spočítat i Céčkovým preprocesorem, ale to ještě neznamená, že by to lidé měli běžně používat.)
Ocekavat, ze budete znat neco jako navrh zalozeny na zasadach je asi moc, ze? Nebo friend injection? Obavam se ze mate velmi, velmi omezene obzory.Někdy je lepší mít omezené obzory a umět programovat, než znát kdejaký buzzword a přitom psát jako podsvinče. Ostatně, pokud chcete hodnotit něčí obzory, pochlubte se něčím, co jste sám napsal, ať víme, jak si vážit obzoru vašeho
Někdy je lepší mít omezené obzory a umět programovat, než znát kdejaký buzzword a přitom psát jako podsvinče. Ostatně, pokud chcete hodnotit něčí obzory, pochlubte se něčím, co jste sám napsal, ať víme, jak si vážit obzoru vašehoProhlasit jednu z nejdulezitejsich navrhovych technik za buzzword, to chce fakt odvahu. Jak tak koukam, tak zverejnenou mam jenom diplomku http://www.is.muni.cz/th/73027/fi_m_a2.
Prohlasit jednu z nejdulezitejsich navrhovych technik za buzzword, to chce fakt odvahu.Techniku samu o sobě nesoudím. Ale málokdo z lidí, o kterých si myslím, že opravdu umí navrhovat software, cítí potřebu z takových věcí dělat vědu a vymýšlet pro ně jména. Kdo vládne zdravým analytickým myšlením, pro toho jsou slavné návrhové techniky obvykle trivialitou a často také jenom trikem na obelstění nedokonalosti jazyka.
Jak tak koukam, tak zverejnenou mam jenom diplomku http://www.is.muni.cz/th/73027/fi_m_a2.Není to špatné, ale houština templatů tam místy přerůstá až do hodně pichlavého ostružiní
struct A { int metoda() {} }; struct B { int x; } template < typename X > struct C : private X { int cislo() { return X::x; } int vypocet() { return X::metoda(); } }; C<A> a; a.vypocet(); // OK no problem C<B> b; b.cislo(); // OK no problemZ ostatnich je to napriklad moznost provadet v dobe kompilace dost sofistikovane kontroly kompatibility. Treba dokazu zkontrolovat zda parametr, ktery jsem predal do sablony se da v te sablone opravdu pouzit (nemluvim ted primo o konceptech [Boost a C++0x], ale to je jedno z pouziti). Taky holt v preprocesoru nejde napsat vsechno, resp. jde, nicmene makra jsou sice Turing complete, ale jsou Turing complete nezamerne. Sablony jsou Turing complete (implementace kvuli nekonecnemu cykleni nejsou) zamerne. Pokud do sablony dam spatny parametr, tak si postezuje kompilator, ze dany parametr je cislo a sablona ocekava typ, nebo naopak, nebo mi srozumitelne rekne ze tam syntaktickou chybu (zavorka navic a podobne). U maker si holt musim vytrpet des a hruzu, protoze to vypise naprosto nesmyslne chyby.
V čem se neshodujeme, je, zda explicitní typové kontroly v čase kompilace (které zdaleka ne vždy končí smysluplnou chybovou hláškou) jsou dostatečnou výhodou, aby vyvážily jinak zbytečnou větší spletitost šablonového kódu.Zodpovědností programátora, který píše šablonový kód je zajistit konzistenci a smysluplnost těchto chybových hlášení.
Ostatně, jak preprocesor, tak šablony jsou jen velmi chabé náhražky za opravdové vyhodnocování v čase kompilace. Modernější jazyky (Scheme, Perl, Haskell) jsou samozřejmě preprocesorem samy sobě, a to do libovolné úrovně vnoření.O tom se nemá cenu přít
string s = "sqrt"; s(12.3);
), nebo sebe modifikující kód.
Jinak myslím, že když poprvé do C++ šablony přidali, nikdo neplánoval, že mají být turingovsky úplné.To rozhodně, nicméně při tvorbě ANSI se už vědělo že se budou šablony k metaprogramování používat a taky se s tím počítalo.
Jenomze nefunkcni. To jestli je hodnota spocitana v dobe kompilace nebo v dobe behu ma dusledky v tom kde takovou hodnotu muzeme pouzit.
No nevim, my obyčejní pojídači koláčků s omezenými obzory si prostě takové konstanty spočítáme "ručně" a do zdrojáku zapíšeme jako "obyčejné číslo". Kromě toho, že je to nesrovnatelně přehlednější než nějaká "2% templatová magie" to má ještě tu výhodu, že si při tom člověk zcela jistě všimne, jak obrovské to číslo vlastně je. Na rozdíl od "nevinné" 30 megaborce s rozhledem...
Ale napadlo. Bugy lovim porad. Proc se omezovat kvuli lidem, kteri se nechteji jazyk naucit?
Tak tohle je super přístup, tvoji kolegové, co to po tobě musej potom luštit tě určitě milujou... Jestli je v podobnym duchu psaná i ta učebnice, tak jsem rád, že je za dva litry a nikdo si jí nekoupí.
No nevim, my obyčejní pojídači koláčků s omezenými obzory si prostě takové konstanty spočítáme "ručně" a do zdrojáku zapíšeme jako "obyčejné číslo". Kromě toho, že je to nesrovnatelně přehlednější než nějaká "2% templatová magie" to má ještě tu výhodu, že si při tom člověk zcela jistě všimne, jak obrovské to číslo vlastně je. Na rozdíl od "nevinné" 30 megaborce s rozhledem...Pokud jde spocitat rucne tak vetsinou clovek nepotrebuje sablony ale spocita mu to kompilator sam, ze? Treba long int x = 1*2*3*4*5*6;
Tak tohle je super přístup, tvoji kolegové, co to po tobě musej potom luštit tě určitě milujou... Jestli je v podobnym duchu psaná i ta učebnice, tak jsem rád, že je za dva litry a nikdo si jí nekoupí.Njn, mozna se vyskytuji v casoprostorove anomalii, nebo je to mozna necim jinym, ale moji kolegove a take vsichni lide, ktere znam nemaji se sablonami vubec zadny problem. Nebo je taky mozne, ze se v zadne anomalii nenachazim a vy jste proste moc velky pitomec na to aby jste se C++ naucil.
Pokud jde spocitat rucne tak vetsinou clovek nepotrebuje sablony ale spocita mu to kompilator sam, ze? Treba long int x = 1*2*3*4*5*6;
Jsem rád, že jsi k tomu, co tady celou dobu tvrdim nakonec taky došel.
Njn, mozna se vyskytuji v casoprostorove anomalii, nebo je to mozna necim jinym, ale moji kolegove a take vsichni lide, ktere znam nemaji se sablonami vubec zadny problem. Nebo je taky mozne, ze se v zadne anomalii nenachazim a vy jste proste moc velky pitomec na to aby jste se C++ naucil.
Pokuď budeš psát i učebnici "diskuze na internetu", tak mám zájem. Ukázat na základě mého tvrzení, že psát kód bez ohledu na to, že by jej někdo v budoucnu taky mohl potřebovat číst není nejšťastnější nápad, že jsem pitomec, kterej není schopnej se naučit šablony v C++, to už značí poměrně pokročilé schopnosti v této oblasti...
Jsem rád, že jsi k tomu, co tady celou dobu tvrdim nakonec taky došel.A k cemu jako? Ze kdyz je x pevne dane, tak muzu napsat do kodu jednoduche a citelne vyjadreni x! a kdyz neni x pevne dane, tak musim pouzit sablony (nebo preprocessor, nebo cokoliv, co mi tam tu hodnotu doda pred tim nez se mi ten zdrojak zacne kompilovat)?
že by jej někdo v budoucnu taky mohl potřebovat čístHmm, takze nebudeme pozivat sablony, protoze jsou lide co je neznaji a ti by tomu pak nerozumeli. Taky radeji nebudeme programovat v C++ protoze jsou lide, kteri umi jenom Cecko a ti by tomu pak nerozumeli. No a urcite se najdou i taci co neumi ani Cecko, tak radeji Assembler, ten uz prece dnes neumi vubec nikdo. Tak si radsi sedneme a budeme se na sebe hezky usmivat. Jo, jste pitomec
Proc to berete do extremu?Protože si naivně myslí, že trapný pokus o důkaz sporem může mít mezi inteligentními diskutujícími váhu, i když jde o dávno známý logický klam
A IMHO pouzivat sablony na pocitani faktorialu je prasarna.Proc by to mela byt prasarna? Je to typove bezpecne (coz makra nejsou) je to soucasti kodu (coz zase nejsou veci stylu make), diky cemuz mi nehrozi de-synchronizace (uprava pouze na jednom miste). Citelne to porad je (protoze zadne principy se nemeni ani syntax se nemeni). Uzivatelsky je to stejne privetive jako cokoliv jineho v jazyku
faktorial<4>::hodnota
.
Samozrejme pokud clovek nevi, jak funguji makra tak to nedekoduje nikdy. Coz je ale presne ten problem na ktery jsem narazel. Pak muzu taky tvrdit, ze cely Prolog je nanic a nemelo by se v nem nic psat, protoze pouziva velice podobny zpusob vyhodnocovani.
Uz jen proto, ze nevite, jestli se vam do daneho datoveho typu jeho hodnota vejde.No to prave v dobe kompilace vim a dokazu to velice jednoduse v te sablone osetrit. Na rozdil od pripadu kdy to napisu natvrdo do kodu (jelikoz se mi ta symbolicka konstanta nemusi vlezt do datoveho rozsahu daneho typu).
Chapu, ze treba tohle pro vas neni problem (dovolme si taky zajit trochu do extremu), me by se to ale udrzovat nechtelo:Uvedeny priklad je necitelny jenom proto, ze pouziva misto symbolickych nazvu ruzny pocet podtrzitek, ktere se spatne rozlisuji.
Tohle ti ale rozhodně nespočítá ten faktoriál při kompilaci...ja to tak trochu tusil
kdy se tedy ten vyraz vyhodnoti? (v dobe kompilace ma teoreticky vse potrebne k tomu, aby ho vyhodnitil...)<flamebait>To je holt tak: u moderních jazyků je makrojazyk roven jazyku samotnému, u prehistorických bazmeků potřebujete obezličky typu šablony
u moderních jazyků je makrojazyk roven jazyku samotnému, u prehistorických bazmeků potřebujete obezličky typu šablonyto se mi libi... i kdyz je tu s nami LISP uz padesat let, tak jej nekteri povazuji za moderni. ;-]
Ale na pokrokovosti trvámto delate dobre! ;-] i kdyz scheme je pokrokovejsi! a nasel bych jeste jeden uplne nejvic nejpokrokovejsi jazyk... ale jeho web jeste nefunguje, skoda. ;-]
Noo, já s tím Schemikem nějak nevím…ja bych to videl docela optimisticky... (nic jineho mi tak nejak nezbyva) ;-] ...ale nebude to asi zase takova hruza, uz je stejne rychle jak guile a dalsi uspechy jsou nalinkovane pred nami! hygienicke makra jsme zavrhli. jednak me prisly zbytecne slozite (ve srovnani s lispovyma) a taky jsem jim nikdy neprisel na chut. makra mame udelane v lispovem stylu s tim, ze jsou to elementy prvniho radu, takze dokonce to umi i anonymni makra. teda ne, ze bych to nekdy prakticky pouzil, ale je fajn vedet, ze to jde.
Ma to ale jeden ten hacek - nebudou z toho penize.Což je ale poměrně zásadní věc, když z toho peníze dostat chce, ne?
Druhým důležitým faktem je výběr datových typů. Pro načtení vstupu byl zvolen unsigned int, nicméně vzhledem k rozsahu čísel, pro které jsme schopni faktoriál počítat, můžeme klidně zvolit unsigned short int. Naopak, pro uložení hodnoty faktoriálu je v podstatě nutné použít unsigned long int, hodnota faktoriálu totiž roste velice rychle.
Můžu se zeptat, proč nabádáte k použití unsigned long int místo např. int? Pokud snad chci větší rozsah hodnot, než mi nabízí unsigned int (předpokládaje 32bit int), rozhodně nepoužiju long, u kterého je vysoká pravděpodobnost, že bude stejný jako int (32bit linux, 32bit windows, 64bit windows), a použiji nějaký "lepší datový typ".
unsigned int vstup; ... for (int i = vstup; ...Za tohle si nechat platit ... styděl bych se. Když už, tak si alespoň projděte. Je to stejná obludnost jako
int i = strlen(retezec)
, kde strlen vrací size_t.
Tiskni
Sdílej: