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í.
Společnost OpenAI oznámila [𝕏], že ukončí aplikaci Sora pro generování krátkých videí pomocí umělé inteligence. Podrobné informace a harmonogram pro aplikaci a API budou brzy zveřejněny.
Evropská směrnice NIS2 přináší nové požadavky v oblasti kybernetické bezpečnosti, které se promítají také do správy doménových jmen. Do českého právního řádu je směrnice implementována prostřednictvím nového zákona o kybernetické bezpečnosti. Jedním z praktických důsledků této legislativní změny je posílení požadavků na dostupnost a správnost kontaktních údajů držitelů domén. Správce registru domény .cz, sdružení CZ.NIC, je v
… více »Jonathan Thomas oznámil vydání nové verze 3.5.0 video editoru OpenShot (Wikipedie). Zdrojové kódy OpenShotu jsou k dispozici na GitHubu. Ke stažení je i balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo na spouštění a spustit.
Byla vydána (𝕏, Bluesky) nová verze 2026.1 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem 8 nových nástrojů v oficiálním oznámení na blogu.
Vláda jmenovala novým zmocněncem pro digitalizaci a strategickou bezpečnost prvního náměstka ministra vnitra Lukáše Klučku. Ten ve funkci nahradil poslance Roberta Králíčka poté, co Králíček na tento post vládního zmocněnce rezignoval. Klučka chce do roka digitalizovat všechny státní služby tak, aby vyhověly zákonu o právu na digitální služby, přičemž dosavadní plán Fialovy vlády počítal s dokončením digitalizace až někdy v roce
… více »Byl vydán Mozilla Firefox 149.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 bezplatnou vestavěnou VPN s 50 GB přenesených dat měsíčně, zobrazení dvou webových stránek vedle sebe v jednom panelu (split view) nebo možnost přidat poznámky k panelům (Firefox Labs). Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 149 bude brzy k dispozici také na Flathubu a Snapcraftu.
Byly vydány nové verze 5.3.0 a 6.0.0 svobodného multiplatformního programu pro skicování, malování a úpravu obrázků Krita (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Obě verze vycházejí ze stejného zdrojového kódu – rozdíl je v použitých verzích Qt a KDE Frameworks. Krita 6.0.0 je první vydání postavené na Qt 6 a stále je považovaná za experimentální. Má lepší podporu Waylandu. Přináší podporu protokolu Wayland
… více »<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.
Tiskni
Sdílej: