Příručka Linux From Scratch pro sestavení základního linuxového systému byla aktualizována v pravidelném půlročním termínu. Vydání 13.1 shrnuje přes 40 nových verzí balíčků a několik patchů. Navazující příručka Beyond Linux From Scratch s recepty pro sestavení dalších knihoven a aplikací zatím vydána nebyla, ačkoliv vývojová verze stále dostává aktualizace. Lze je číst online nebo stáhnout v HTML či PDF.
Národní bezpečnostní tým CSIRT.CZ koordinovaný sdružením CZ.NIC přichází se službou Strážci internetu, která má sjednotit způsob hlášení doménových jmen zneužívaných k páchání trestné činnosti. Službu mohou uživatelé využívat také prostřednictvím rozšíření do prohlížeče. Nový nástroj podporuje jak hlášení vyžadující autorizaci, tak anonymní reporting, u kterého však nebude možné zapojit takovou míru automatizace jako u
… více »Firefox pro iOS přichází s integrovaným blokováním reklam. Funkce je ve výchozím nastavení vypnutá a lze ji aktivovat v Settings > Browsing > Ad Blocker.
Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila (𝕏) open-source robota Microduck. Předobjednat jej lze za 340 eur.
Open-source autonomní AI agent OpenClaw (Wikipedie) byl vydán ve verzi 2026.8.1 aneb 2.0. Přehled novinek v poznámkách k vydání.
Byla vydána první veřejná preview verze PrusaSliceru 3.0. Přesně 15 let po zveřejnění první verze Slic3ru, které připadlo na 1. září 2011. Jedná se o dosud největší upgrade PrusaSliceru: "Řídili jsme se tím, co skutečně potřebujete, a tak jsme například zcela zahodili stávající uživatelské rozhraní a vytvořili ho znovu od nuly. Přinášíme také nový systém projektů, kompletně přepracované profily navržené pro moderní tiskárny s větším
… více »Byl vydán Mozilla Firefox 155.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Vypíchnout lze Smart Window, zatím ale dostupné pouze pro uživatele v USA, Kanadě a Francii. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 155 bude brzy k dispozici také na Flathubu a Snapcraftu.
Tima Cooka na pozici generálního ředitele společnosti Apple dnešním dnem nahradil John Ternus, který byl dosud odpovědný za hardware. Tim Cook vedl Apple od roku 2011, kdy funkci převzal od později zesnulého spoluzakladatele společnosti Stevea Jobse. Za 15 let v čele Applu více než zdvojnásobil tržní hodnotu firmy.
Organizátoři konference LinuxDays ukončil veřejné přihlašování přednášek. Teď je na vás, abyste vybrali nejlepší témata pro letošní ročník. Hlasovat můžete do pondělí 7. září, poté bude podle výsledků hlasování sestaven program pro letošní ročník.
Servo, engine webového prohlížeče napsaný v Rustu, byl vydán ve verzi 0.5.0. Novinky shrnuje přehled projektu za červenec. Došlo k dalšímu pokroku ve vykreslování webových stránek. Současným cílem projektu je vytvořit komponentu webového prohlížeče jako WebView pro použití v jiných aplikacích.
Mně se i ve FullHD vejde na obrazovku 180 znaků a vedle toho ještě panel s projekty v IDE. Navíc, část lidí má širokoúhlejší displeje, část lidí má dva monitory… Ano, občas se hodí mít dva soubory vedle sebe, ale má smysl optimalizovat pro tuhle situaci a lidi, kteří mají jen jeden neširokoúhlý monitor, a omezovat kvůli tomu všechny ostatní?
1. Ta situace, kdy je žádoucí mít vedle sebe dva terminály se zdrojáky, není zdaleka tak mimořádná, jak by se zdálo, a třeba na notebooku, kde si to s rozumnou velikostí písma dovolit nemůžu, je to pro mne dost omezující. Na normálním počítači se pak často hodí i layout s více okny - v práci na dvou 24" monitorech třeba mívám dva užší terminály se zdrojáky a k nim dva širší s crashem, případně dvě terminálová okna a jedno s git gui (s tím se dá vejít i na jeden 27" monitor).
2. Čitelnost není jen otázka toho, jestli se to vejde na monitor. Když si doma na 27" monitoru roztáhnu okno přes celou obrazovku, tak se mám sloupců 318, ale takhle dlouhé řádky bych ve zdrojácích rozhodně číst nechtěl. Těch 100 znaků, zvlášť pokud se to bude používat spíš výjimečně, celkem jde, ale pokud by se mělo ve větší míře rozšířit používání výrazně delších řádků (s výjimkou chybových hlášení, kde se to obvykle tolerovalo i teď), nadělalo by to víc škody než užitku.
Těch 100 znaků, zvlášť pokud se to bude používat spíš výjimečně, celkem jde, ale pokud by se mělo ve větší míře rozšířit používání výrazně delších řádků (s výjimkou chybových hlášení, kde se to obvykle tolerovalo i teď), nadělalo by to víc škody než užitku.
Většina řádků se vejde i do těch 80 znaků – a to přirozeně, aniž by se o to člověk musel nějak snažit. Takže nemá smysl to srovnávat s novinami nebo webem, kde máme odstavce souvislého textu (a tam skutečně příliš široké odstavce zhoršují čitelnost). U kódu je otázka, kde mít nastaven ten tvrdý limit, který se nesmí nikdy překročit. A tady bych moc přísný nebyl. Vlastně ani nevím, jestli je nějaký tvrdý limit potřeba…
Dokud se lidi snažili držet do těch 80 znaků, tak ten limit smysl měl, protože i přirozený a rozumný kód by za tou hranicí 80 znaků mohl obsahovat něco zajímavého, co by nemělo zůstat skryto – a pak je dobré říct: radši ten řádek zalomte, ať to nikdo nepřehlédne.
Ale pokud se bavíme o 120, 140 nebo víc znacích, tak v těchto místech prakticky nic zajímavého nebývá – v zásadě to jsou jen nějaké logovací hlášky nebo texty výjimek, nebývá to kód, který by měl vliv na tok programu, takže při zběžném čtení se do těchto míst ani nemusím dívat. I kdybych měl třeba deset úrovní odsazení (což už je fakt hodně… na třídy, metody, IFy, cykly atd.), tak mi pořád zbývá 80 znaků na samotný kód (typicky zavolání metody, předání parametrů, naplnění návratové hodnoty do proměnné) a stále se vejdu do 120. Takže i když se nebudu nijak omezovat, většinou se tam vejdu.
Podle mého by se do nějakých těch 100 či 120 znaků mělo vejít to podstatné, tzn. i když člověk uvidí z každého řádku jen prvních 120 znaků, měl by z toho chápat logiku a tok programu. Za touto hranicí by nemělo být nic záludného, nic překvapivého – za touto hranicí „viditelnosti“ by se nemělo vyskytovat žádné return, throw, nastavování proměnných či i++ atd. Ale když tam bude něco méně podstatného, tak to nevadí – to člověka zajímá až ve chvíli, kdy studuje ten konkrétní řádek (např. upravuje chybovou hlášku). Asi si na to napíši nějaký skript a projdu si svoje zdrojáky :-)
Mně se i ve FullHD vejde na obrazovku 180 znaků a vedle toho ještě panel s projekty v IDE. Navíc, část lidí má širokoúhlejší displeje, část lidí má dva monitory…Krome argumentu, ktere tu uz zaznely, nizsi hranice poctu sloupcu ma i dulezity psychologicky efekt. Pro citelnost kodu je docela dulezita zasada -- jeden radek, jeden krok vypoctu (jedna dulezita vec). Kdyz mas nastaveny mensi pocet sloupcu, nuti te to rozdelovat slozite vyrazy na mensi, prirazovat jejich hodnoty do promennych, apod., coz vyznamne zvysuje citelnost kodu.
Viz výše:
Podle mého by se do nějakých těch 100 či 120 znaků mělo vejít to podstatné, tzn. i když člověk uvidí z každého řádku jen prvních 120 znaků, měl by z toho chápat logiku a tok programu. Za touto hranicí by nemělo být nic záludného, nic překvapivého – za touto hranicí „viditelnosti“ by se nemělo vyskytovat žádné return, throw, nastavování proměnných či i++ atd. Ale když tam bude něco méně podstatného, tak to nevadí – to člověka zajímá až ve chvíli, kdy studuje ten konkrétní řádek (např. upravuje chybovou hlášku).
Ano, narvat na jeden řádek volání pěti metod, inkrementaci proměnné, nějakou tu podmínku a return a throw v alternativních větvích… to je prasárna. Jen nevím, jestli proti tomu bojovat zrovna nějakým tvrdým limitem počtu sloupců.
Ten limit totiž nezohledňuje obsah, ale jen počet znaků. Co když na konci toho řádku (pro někoho za viditelnou oblastí) je jen nezajímavý kód, třeba jen textová hláška nebo jen předání nějakých zjevných parametrů, ale nic, co by ovlivňovalo tok programu?
Taky tam píši:
I kdybych měl třeba deset úrovní odsazení (což už je fakt hodně… na třídy, metody, IFy, cykly atd.), tak mi pořád zbývá 80 znaků na samotný kód (typicky zavolání metody, předání parametrů, naplnění návratové hodnoty do proměnné) a stále se vejdu do 120.
Málokdo se dneska drží klasických 80 znaků, spíš to bývá těch 100 nebo 120. A na tom příkladu vidíš, že tenhle limit tě nijak moc neusměrní, protože pořád můžeš udělat deset úrovní odsazení, což je hodně – jedna úroveň třída, druhá metoda, a pak ti zbývá osm úrovní na IFy, cykly atd. což umožňuje napsat hodně kryptický kód resp. hodně složitou metodu (kterou by bylo lepší rozdělit na víc menších).
Ano, narvat na jeden řádek volání pěti metod, inkrementaci proměnné, nějakou tu podmínku a return a throw v alternativních větvích… to je prasárnaNemusis to tak prekombinovavat. Spatne citelny kod ti vyleze i z volani metod, kde nelze rict, ze by neco bylo mene duleziteho. Docela bezne vidam veci typu:
getLoremIpsum(dolor).setAmet(consectetuer.getAdipiscing(), Integer.vulputate).get(a, nibh).rutrum(consequat);
Jen nevím, jestli proti tomu bojovat zrovna nějakým tvrdým limitem počtu sloupců.Nikde se nezminuji o nejakem hard-limitu. Ten limit by mel byt soft, dejme tomu, 80 + 20, nebo 100 + 20, s tim, ze ten limit lze v oduvodnenych pripadech prekrocit, cim vic tim hur. Bohuzel nekteri programatori s takovou informaci maji problem nalozit a tak vyzaduji nejaky jasny limit.
I kdybych měl třeba deset úrovní odsazení (což už je fakt hodně… na třídy, metody, IFy, cykly atd.), tak...tak jsi hovado a ten kod je necitelny bez ohledu na delku radku a tudiz ji nema cenu resit.
jedna úroveň třída, druhá metoda, a pak ti zbývá osm úrovní na IFy, cykly atd. což umožňuje napsat hodně kryptický kód resp. hodně složitou metodu (kterou by bylo lepší rozdělit na víc menších).Jak jsem ukazoval vyse, slozity kod lze vytvorit i bez toho aniz bys potreboval nasobne zanoreni a dlouhe (neomezene) radky to podporuji.
[*] charset = utf-8 end_of_line = lf indent_style = space indent_size = 2 insert_final_newline = true max_line_length = 120 trim_trailing_whitespace = true
Fakt vam prijde tole prehlednejsi? neco_co_potrebuju = neco_co_uz_mam + \ neco_dalsiho[poradi] * \ univerzalni_komstanta_na_neco + sqrt( \ nejaka_pitomost[x]^2 + nejaka_blbost[x]^2);
To je snad trochu moc průhledná demagogie, nemyslíte?
neco_co_potrebuju = neco_co_uz_mam +
neco_dalsiho[poradi] * univerzalni_komstanta_na_neco +
sqrt(nejaka_pitomost[x] ^ 2 + nejaka_blbost[x] ^ 2);
To je sice 82 znaků, ale kdyby ta "komstanta" neměla záměrně zvolené tak dlouhé jméno, nebyl by problém se vejít do 80 i bez rozdělování toho součinu.
K tomu trojnásobnému odsazení: právě to, že uvnitř takhle hlubokého vnoření ještě stále potřebujete napsat něco takhle komplikovaného, by mělo samo o sobě být signálem, že byste se měl nad strukturu té funkce znovu zamyslet.
Navíc si nemohu nevšimount, že (a) podle použití operátoru "^" a backslashů na koncích řádků ve vašem příkladu nejspíš vůbec nemluvíte o C (takže je otázka, nakolik je váš příspěvek relevantní pro diskusi o coding style linuxového jádra) a (b) podle náhodného výskytu mezer kolem závorek vám očividně nějaký coding style vrásky nedělá.
(1/data.std()*np.sqrt(2*np.pi))*np.exp(-0.5*((data-data.mean())/data.std())**2)
Přesně 80 znaků! Netvrdím, že je to nejlepší příklad, ani že by to nešlo zkrátit (ačkoli jsem byl podle mě ještě dost úsporný). Jen, že se to stává.
Jinak si (stejně jako podle mě většina diskutujících) uvědomuji, že zprávička je o linuxovém jádře, holt se nám ta diskuze trochu rozvolnila, to už se stává.
Tohle je podle mne zrovna příklad, kdy by bylo i kvůli čitelnosti mnohem vhodnější si to rozdělit:
/* nějaké komentáře vysvětlující parametry */
static double normal_distribution(double x, double m, double d)
{
return np.exp(-0.5 * np.sqr((x - m) / d)) / (d * np.sqrt(2 * np.pi));
}
...
... normal_distribution(data, data.mean(), data.std()) ...
...
Ten ošklivý výraz stačí napsat a zkontrolovat jen jednou a tam, kde se to použije, je na první pohled vidět, co dělám. On ten coding style jádra nejsou jen takové ty prvoplánové věci jako osmdesát znaků na řádek nebo tabulátory, které se přetřásají v podobných diskusích, ale i o tom, že napsat si takový helper má dobrý smysl, a to dokonce i v případech, kdy se použije jen jednou.
Jinak to, že je řeč o coding style jádra, se snažím zdůrazňovat právě proto, že si nemyslím, že by stejný coding style měl smysl obecně. Svého času jsem třeba napsal pár věcí v C++ Builderu (a dokonce i v Delphi) a radši si ani nezkouším překvapit, jak by to vypadalo, kdybych se tam pokoušel o 80 znaků na řádek s odsazováním po osmi znacích. Proto mi připadá nesmyslné, když vidím lidi argumentovat stylem "Ale v Javě…"
x1 = 1*p; x2 = 2*p;Místo:
x1 = vynasob_parametrem_1(p); x2 = vynasob_parametrem_2(p);
Tiskni
Sdílej: