Oficiálně byl vydán Android 16. Detaily na blogu a stránkách věnovaných vývojářům.
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.
Kdysi dávno jsem zde pokládal návrh na anketu Jaký používáte styl programování?
. Bohužel buďto zapadla, anebo obsahovala odkaz na příslušnou stránku wikipedie (odkazy v anketě tuším ničily layout stránky). Buď jak buď, anketa se nekonala.
Z již zmíněného dokumentu plyne, že se rozlišuje 5 hlavních stylů, přičemž poslední tři mi přijdou hodně obskurní . Jak jsem tak měl možnost vidět zdrojové kódy, tak převládá K&R a BSD styl odsazování, případně třetí varianta - náhodné odsazování.
Já osobně nejraději používám právě prvně jmenovaný, protože mi BSD styl přijde moc rozvláčný. Zde je příklad za všechny (musel jsem trochu přeformátovat, ztratil se mi prázdný řádek).
/* create a new empty operand */ rpcData* newData(void) { rpcData* aux = (rpcData*) malloc(sizeof(rpcData)); memset(aux, 0, sizeof(rpcData)); aux->references = 1; return aux; }
Tiskni
Sdílej:
case
. Tj. asi takto:
int foo(char* p) { int n = 0; while (*p) { switch(*p) { case '(': n++; break; case ')': n--; break; } p++; } return n; }
if ( ) { ... } else { ... }Pri velkych povazujem za vhodne patricne zdoraznit skoro prazdnym riadkom, kde ten if konci:
if ( ) { ... ... ... ... } else { ... ... ... ... }
Sice jsem sotva pára z programátorského ....., ale když už něco náhodou uplácám, pak jedině K&R. Jinak odsazuji, odsazuji, a znovu odsazuji všechno co se jenom odsadit dá a to vždy o dvě mezery. Kdo používá tabulátory je Barbar. S komentářema je to ale u mne bída. :~)
mood = (machine != slackware) ? depressed : euphoria;
int main(int argc, char** argv) { if(argc != 2) { // neco } else { while(1) { } .... switch(c) { case 1: .... break; default: .... } do { } while(1); for(int i = 1; i < 16; i++) { } } }
int ukazka() { if podminka then { udelej_tohle(); udelej_tamto(); } else { udelej_tudleto(); udelej_tamdleto(); } return(0); }
(0)
' je stejně korektní návratová hodnota funkce jako '0
'. Nebo tam klidně můžete napsat '(((0)))
' a bude to pořád totéž…
return (3, 2, 1, 0);
void fce( int cislo, char ** tt ) { if ( cislo >= 6 ) { do_neco( cislo, get_neco( tt ) ); } else { switch( cislo ) { case 'x': zajimave_cislo(); break; case 'a': zajimave_cislo( c ); break; } } }