Byla vydána nová verze 14.3 svobodného unixového operačního systému FreeBSD. Podrobný přehled novinek v poznámkách k vydání.
CSIRT.CZ upozorňuje, že na základě rozhodnutí federálního soudu ve Spojených státech budou veškeré konverzace uživatelů s ChatGPT uchovávány. Včetně těch smazaných.
Ač semestr ve škole právě končí, bastlíři ze studentského klubu Silicon Hill neodpočívají a opět se jako každý měsíc hlásí s pravidelným bastlířským setkáním Virtuální Bastlírna, kde si můžete s ostatními techniky popovídat jako u piva o novinkách, o elektronice, softwaru, vědě, technice obecně, ale také o bizarních tématech, která se za poslední měsíc na internetu vyskytla.
Z novinek za zmínku stojí Maker Faire, kde Pájeníčko předvedlo … více »Na WWDC25 byl představen balíček Containerization a nástroj container pro spouštění linuxových kontejnerů na macOS. Jedná se o open source software pod licencí Apache 2.0 napsaný v programovacím jazyce Swift.
Do 16. června do 19:00 běží na Steamu přehlídka nadcházejících her Festival Steam Next | červen 2025 doplněná demoverzemi, přenosy a dalšími aktivitami. Demoverze lze hrát zdarma.
Apple na své vývojářské konferenci WWDC25 (Worldwide Developers Conference, keynote) představil řadu novinek: designový materiál Liquid Glass, iOS 26, iPadOS 26, macOS Tahoe 26, watchOS 26, visionOS 26, tvOS 26, nové funkce Apple Intelligence, …
Organizátoři konference LinuxDays 2025, jež proběhne o víkendu 4. a 5. října 2025 v Praze na FIT ČVUT, spustili přihlašování přednášek (do 31. srpna) a sběr námětů na zlepšení.
Po roce byla vydána nová stabilní verze 25.6.0 svobodného multiplatformního multimediálního přehrávače SMPlayer (Wikipedie).
DNS4EU, tj. evropská infrastruktura služeb DNS založená na vysoce federovaném a distribuovaném ochranném ekosystému, byla spuštěna v testovacím režimu [𝕏]. Na výběr je 5 možností filtrování DNS.
Skriptovací programovací jazyk PHP (PHP: Hypertext Preprocessor, původně Personal Home Page) dnes slaví 30 let. Přesně před třiceti lety, 8. června 1995, oznámil Rasmus Lerdorf vydání PHP Tools (Personal Home Page Tools) verze 1.0.
Byl aktualizován styl zápisu zdrojových kódů Linuxu. Maximální počet znaků (sloupců) na řádek byl zvýšen z 80 na 100. Preferováno ale zůstává 80 znaků [reddit].
Tiskni
Sdílej:
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);