Dnes a zítra probíhají Arduino Days 2026. Na programu je řada zajímavých přednášek. Sledovat je lze od 17:00 na YouTube. Zúčastnit se lze i lokálních akcí. Dnes v Poličce v městské knihovně a zítra v Praze na Matfyzu.
Byla vydána beta verze Ubuntu 26.04 LTS s kódovým názvem Resolute Raccoon. Přehled novinek v poznámkách k vydání. Dle plánu by Ubuntu 26.04 LTS mělo vyjít 23. dubna 2026.
Byla vydána aktualizována Příručka pro začínající wikipedisty a wikipedistky (pdf).
Ubuntu plánuje v budoucích verzích nahradit tradiční nástroje pro synchronizaci času (chrony, linuxptp a gpsd) novým, v Rustu napsaným ntpd-rs, který nabídne vyšší bezpečnost a stabilitu.
Byla vydána nová verze 7.6 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Správce hesel KeePassXC byl nahrazen správcem hesel GNOME Secrets. Bitcoinová peněženka Electrum byla povýšena na verzi 4.7.0. Tor Browser byl povýšen na verzi 15.0.8. Další novinky v příslušném seznamu.
Chris Down v obsáhlém článku „vyvrací mýty o zswap a zram“, vysvětluje, co vlastně dělají a jaké jsou mezi nimi rozdíly. Doporučuje vyhýbat se zram na serveru a bez OOM.
Porota v Los Angeles shledala firmy Google a Meta odpovědnými v přelomovém soudním sporu, který se týká závislosti na sociálních sítích; firmy musí zaplatit odškodné tři miliony dolarů (63,4 milionu Kč). Společnosti, které s verdiktem nesouhlasí, čelily obvinění, že své sociální sítě a platformy záměrně navrhly tak, aby si na nich děti vypěstovaly závislost. Porota došla k závěru, že technologické společnosti při navrhování a
… více »Jelikož vývojáři editorů Vim a Neovim začali při vývoji využívat LLM, Drew DeVault se rozhodl forknout Vim a vytvořil projekt Vim Classic. Vychází z Vimu 8.2.0148, tj. těsně před zavedením Vim9 skriptování.
Byla vydána nová verze 0.56 open source počítačové hry Unvanquished (Wikipedie), forku počítačové hry Tremulous. Instalovat ji lze také z Flathubu.
FreeCAD (Wikipedie), tj. svobodný multiplatformní parametrický 3D CAD, byl vydán ve verzi 1.1 (YouTube). Po roce a čtyřech měsících od předchozí verze 1.0. Přehled novinek i s náhledy v poznámkách k vydání.
Tiskni
Sdílej:
<objekt>
<vlastnost-1 hodnota="hodnota 1"/>
<vlastnost-123 hodnota="hodnota 123"/>
<vlastnost-9999 hodnota="hodnota 9999"/>
</objekt>
Před <vlastnost… bude tabulátor a před hodnota="… budou mezery.
*) osobně jsem spíš proti zarovnávání, protože při přidání nové (delší) položky je potřeba změnit všechny ostatní řádky a mj. to dělá bordel ve verzovacím systému.
if (a == 1) {
System.out.println("a == 1");
System.exit(0);
} else if (a == 0) {
System.out.println("a == 0");
System.exit(1);
}
a jinde:
if (a == 1) {
System.out.println("a == 1");
System.exit(0);
} else if (a == 0) {
System.out.println("a == 0");
System.exit(1);
}
a formátování se nerozbije, jen se přizpůsobí nastavení daného uživatele.
spravne odsazeni dodatecneho textu na radce asi rozumne udrzovat nejde jinak nez s pouzitim tabulatoru.Vzhledem k tomu, že to nejde ani s použitím tabu, tak je to dost irelevantní.
? K čemu jsou dobré mezery?
class MyClass
⇥: public MyOtherClass
{
public:
⇥MyClass()
⇥⇥: field(0)
⇥{}
⇥~MyClass();
⇥MyClass& setField(int value,
⇥⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽⍽bool checkIfZero)
⇥{
⇥⇥if (checkIfZero && value == 0) {
⇥⇥⇥throw std::exception("FIeld is not zero");
⇥⇥}
⇥⇥this->field = value;
⇥}
protected:
⇥int field;
};
context[ conf-file-rule: [any[ newline | _comment | date-header | purl ] to end ] white: [#" " | #" "] _comment: [#"#" to newline] date-header: [ #"[" copy parsed-date to #"]" newline (parsed-date: to-date parsed-date) ] purl: [ [ thru #" " | thru #" "] copy parsed-url to newline ( parsed-url: to-url trim to-string parsed-url print rejoin [parsed-date " : " parsed-url] ) ] parse/all d conf-file-rule ]To by mě dřív ani nenapadlo. Pořád jsem ale nepřišel na to, jestli má smysl se rebol učit, nebo ne :)
Pokud to má přímo vestavěnou podporu pro BNF, tak to je zajímavá vlastnost, to se může občas hodit.Jo, parse.
O Rebolu jsem jednou už tuším slyšel, měl jsem toho pocit, že to je jeden z jazyků, které mají několik originálních nápadů, ale v praxi má smysl je používat jenom na relativně malou skupinu problémů :)No, já už o něm přečetl pár desítek článků a pár knih a pořád nevím, jestli jo, nebo ne :)
Coz o to, delit veci do funkci bych se potreboval naucit (ja mam v podstate tendenci tvorit novou funkci jen v pripade, ze ji volam z vice mist, coz neni idealni).
Ale i tak je to problem, a nejhorsi je to prave na tech operatorech, jak zminuje BzHD vyse. Aritmeticky vyraz pak vypada jako rozsypany caj. Ale ono staci napsat let, if, progn a jste hned v pulce stranky.
>-------switch(x) {
>-------case 1:
>------->-------q();
>------->-------...
>-------case 2:
>------->-------x
>------->-------y
>------->-------...
>-------}
V podstate me napadaji 2 reseni, ktere ale obe zbytecne pridavaji uroven zanoreni:
1:
>-------switch(x) {
>------->-------case 1: {
>------->------->-------int a;
>------->------->-------qwe
>------->-------}
>------->-------case 2:
>------->------->-------x
>------->------->-------y
>------->------->-------...
>-------}
>-------switch(x) {
>-------case 1:
>------->-------{
>------->------->-------int a;
>------->------->-------qwe
>------->-------}
>-------case 2:
>------->-------x
>------->-------y
>------->-------...
>-------}
case 1: a case 2: mi tam chybí. A odsazovat o 8 mi přijde moc – zkus nastavit šířku tabulátoru na 4 a nebude to tak „hluboké“.
class xyz {
public:
>-------...
};
nebo goto:
int process() {
>-------...
error:
>-------...
}
Pokud jde o { na vlastnim radku, tak premyslel jsem i nad timhle:
>-------switch(x) {
>-------case 1: {
>------->------->-------int a;
>------->------->-------qwe
>------->-------}
to je pokud jde o { konzistentejsi, ale zase radek s } neni odsazeny stejne jako radek s { takze je to taky mirne nekonzistentni.
Taky jsem premyslel nad timhle, ale to by nemuselo vypadat dobre pri hodne kratkym tabulatoru:
>-------switch(x) {
>-------case 1: {
>--------------int a;
>--------------qwe
>------- }
Zatim nejvic inklinuju k puvodni moznosti c 2. Musim se uz konecne rozhodnout a delat tohle konzistentne. Momentalne to mam pokazdy jinak jak se furt nemuzu rozhodnout
Ale ne ze by tech switchu psal nejak moc...
Líbí se mi první. U druhého nechápu, proč dáváš { } na nové řádky, když to jinak neděláš – IMHO zbytečnost.Podle mě } na nový řádek dává za všech okolností a { spojuje pouze s řídící konstrukcí, na kterou se vážou (i z hlediska jazyka).
>-------switch(x) {
a tohle:
>-------case 1:
>------->-------{
mi nepřijde konsistentní.
>-------switch(x) {
>-------case 1: {
>------->-------x...
>-------}
>-------}
tzn. prvni } by bylo odsazene stejne jako case. Proto me prijde lepsi byt trochu nekonzistentni a { dat na vlastni radek.
Chybně očekáváš, že se labely a řídící příkazy budou zapisovat stejně.Nemyslím, že je to chybný předpoklad, spíš logický. Ano, v kódu si můžu udělat blok { } jen tak, třeba abych omezil rozsah proměnných nebo si nějak „označil“ nějaké místo* a pak tu { nepřidávám na konec předešlého řádku, protože tam žádný takový není a i kdyby byl, nedávalo by to smysl. Ale když je to uvnitř switche, smysl to dává – logický význam a to, co tím kódem chce člověk říct, je podobné jako u IFu, proto by se to mělo i stejně odsazovat. Příklad:
if (a == 1) {
…
}
obdobně:
switch(a) {
case 1: {
…
}
*) moc se to nepoužívá a lepší bude ten blok vyčlenit do samostatné metody/funkce/procedury
Nemyslím, že je to chybný předpoklad, spíš logický.Typicky se labely zapisují takto:
... hlavička funkce ...
{
...
goto konec;
...
konec:
...
}
A bloky vložené do jiných bloků tuším typicky takto:
{
...
{
...
}
...
}
Ale samozřejmě máš možnost to psát zcela libovolně narozdíl od Python apod.
switch(a) {
case 1:
x++;
y++;
{
int i;
...
}
z++;
...
}
Kdyz z takoveho kodu ty prvni dva prikazy eliminuju, je konzistentni zachovat stejne odsazeni bloku:
switch(a) {
case 1:
{
int i;
...
}
z++;
...
}
int a = 0;
switch (a) {
case 0: {
System.out.println("0");
}
break;
case 1: {
System.out.println("1");
}
break;
default: {
System.err.println("chyba");
}
}
Dokonce jsem i zjistil, že tohle je výchozí (automatické) formátování v Netbeans
Případně bych dal ještě:
} break;Asi nemá cenu zbytečně sklouzávat k osobním útokům…
Ty vtiskáváš do odsazení své nepřesné vnímání fukce prvků jazyka.Proč by to tak mělo být? Konvence pro psaní kódu jsou z významné části věcí estetiky a osobního vkusu (proto se o nich také vedou nekonečné flamewary). Kdybych chtěl být ošklivý, tak řeknu, že ty zase podléháš iluzi, že odsazování by mělo být odvozeno čistě z technické specifikace jazyka bez ohledu na lidi, kteří ten kód píší a čtou.
Zatím jsem to nikdy nepotřeboval, ale napsal bych to takhle:Já ne, už jen proto, že nemám ve zvyku přidávat hromadu složených závorek jen tak pro okrasu.
Asi nemá cenu zbytečně sklouzávat k osobním útokům…Nevím, jak jsi na to přišel, ale doufám, že se toho budeš držet :).
Proč by to tak mělo být?Těkžo se mi vysvětluje věc, která mi připadá tak jednoduchá a samozřejmá. Měl jsem za to, že se shodujem v tom, že ti nevyhovuje sémantika céčkovského switche a omezuješ ji na určitou podmnožinu (zjednodušuješ) a takto zjednodušeně ji vnímáš. A toto vnímání vtiskáváš i do formátování. Když mi pomůžeš specifikovat, co je na tom nejasné, tak zkusím nějak reagovat.
Kdybych chtěl být ošklivý, tak řeknu, že ty zase podléháš iluziAno, to už zní ošklivě. Máš důvod být ošklivý?
Netbeans? Bouchnu tabulátor, udělá se tabulátor. Dám backspace a maže to po jednom znaku místo celýho tabulátoru 
Pokusim se to najít, myslel jsem že je to hardcoded feature 
Rozhodně někdo smazal konfiguraci, takže to má celej ČVUT zase v defaultu 
Přeformátovat odsazení cizího zdrojáku jde i při odsazování mezerami.Jenže to znamená zásah do souboru, změnu prakticky všech řádků…˙Šířka tabulátorů je oproti tomu čistě věc zobrazení a nemusím do souboru nijak zasahovat. Někdo odsazuje o 2, normální lidi o 4, extrémista i o 8… každému vyhovuje něco jiného (liší se i podle jazyka). S tabulátory si to každý nastaví podle svého a přitom můžou všichni editovat ten samý soubor. Když na to špatně uvidím, zvýším si šířku tabulátoru, udělám potřebné změny a odešlu je (měním jen některé řádky). Ale když dostanu po někom zdroják s odsazením o 2 mezery a bude se mi to špatně číst (záleží na jazyku, někde je to OK), tak to budu muset nějak přetrpět nebo to přeformátovat, ale pak budou v nové verzi změněné všechny řádky, což dělá jednak bordel ve verzovacím systému a jednak tím budu otravovat ty, kterým odsazení o 2 mezery vyhovovalo. Totéž platí pro 8 nebo 3 (i takoví exoti se najdou).
Odsazení, podle toho, jestli mi vyhovuje odsazení o 2,4, 8, či jiný počet udělám bez ohledu na to, zda je odsazováno mezerami nebo tabulátory.
To bude mať autor pôvodného kódu radosť, že mu niekto rozrýpal odsadzovanie aké jemu vyhovuje. Nehovoriac o následnom merge cez VCS, ktoré kvôli odsadeniu nebude fungovať, takže bude musieť mergovať ručne.
Tedy programátor odsazující tabelátory pracuje stylem „nevadí, že se víc nadřu bez jakéhokoli smyslu“.
Alebo nevadí mi, že pri zmenšení odsadenia musím 4x (alebo 2x, 3x, 8x, 6x ...) ťuknúť do backspace namiesto 1, že. Inak o zobrazovanie tabulátorov a medzier a ich správne mixovanie (taby na indent, medzery na zarovannie) by sa mal starať editor pokiaľ sa nemýlim (príloha).
Při luštění cizích zdrojáků jste nuceni překousnout tolika věcí, že odsazování je to nejmenší
Škoda, že neviem práve vyhrabať štúdiu, ktorá hovorí presný opak.
Alebo nevadí mi, že pri zmenšení odsadenia musím 4x (alebo 2x, 3x, 8x, 6x ...) ťuknúť do backspace namiesto 1, že.Většina editorů co jsem kdy v životě používal tohle implementuje pomocí shift+tab.
Škoda, že neviem práve vyhrabať štúdiu, ktorá hovorí presný opak.Tak si jí vycucej z prstu stejně jako kdokoli, kdo mohl takovou studii vyplodit (nejspíš, pokud to myslel vážně, tak se v ní píše úplně něco jiného, než n mezer odsazení je čitelných, zatímco m ne).
nemyslel jsem to nijak zle. Dvě jsou relativně málo, ale někdy se to celkem dá a i jsem si na to zvykl (Pascal). Liché číslo mi přijde takové divné a 4 jako akorát.
Výhoda tabulátora je práve v tom, že na odsadzovanie textu bol navrhnutý a vie zarovnať stĺpce.Vážně umí zarovnat sloupce? V některém z běžně používaných editorů? A vážně byl navržen na odsazování kódu? Tomu moc nevěřím.