Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Byla vydána (𝕏) nová verze 2025.2 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.
Dánské ministerstvo pro digitální záležitosti má v plánu přejít na Linux a LibreOffice [It's FOSS News].
V úterý Google vydal Android 16. Zdrojové kódy jsou k dispozici na AOSP (Android Open Source Project). Chybí (zatím?) ale zdrojové kódy specifické pro telefony Pixel od Googlu. Projekty jako CalyxOS a GrapheneOS řeší, jak tyto telefony nadále podporovat. Nejistá je podpora budoucích Pixelů. Souvisí to s hrozícím rozdělením Googlu (Google, Chrome, Android)?
Byla vydána (𝕏) květnová aktualizace aneb nová verze 1.101 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.101 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
V Brně na FIT VUT probíhá třídenní open source komunitní konference DevConf.CZ 2025. Vstup je zdarma, nutná je ale registrace. Na programu je celá řada zajímavých přednášek, lightning talků, meetupů a workshopů. Přednášky lze sledovat i online na YouTube kanálu konference. Aktuální dění lze sledovat na Matrixu, 𝕏 nebo Mastodonu.
Vyloučení technologií, které by mohly představovat bezpečnostní riziko pro stát, má umožnit zákon o kybernetické bezpečnosti, který včera Senát schválil spolu s novelami navazujících právních předpisů. Norma, kterou nyní dostane k podpisu prezident, počítá rovněž s prověřováním dodavatelů technologií pro stát. Normy mají nabýt účinnosti od třetího měsíce po jejich vyhlášení ve Sbírce zákonů.
Open source platforma Home Assistant (Demo, GitHub, Wikipedie) pro monitorování a řízení inteligentní domácnosti byla vydána v nové verzi 2025.6.
Po Red Hat Enterprise Linuxu a AlmaLinuxu byl v nové stabilní verzi 10.0 vydán také Rocky Linux. Přehled novinek v poznámkách k vydání.
Bylo vydáno Eclipse IDE 2025-06 aneb Eclipse 4.36. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.
for ($ii=0;$ii<10;$ii++) { /* nejaka cinnost */ }Prochazeni pole
while ($cc=each($nejake_pole)) { /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }Vysledky a vybery z databaze
$q="nejaka query"; if ($ares=mysql_query($q)) while ($arow=mysql_fetch_assoc($ares)) { /* nejaka cinnost s polem $arow */ }Zazita sablona pro funkce
function DruhFunkce_NazevFunkce(...) { $ret=false; /* pokud jsou parametry OK, pak cinnost jejimz vysledkem je prepsani $ret; */ return $ret; }Jak je to u vas? Mate nejake takove zazite zvyky? :)
Tiskni
Sdílej:
$sql_chocolates = "SELECT cacao, nameOfChocolate, isDia FROM chocolates WHERE cacao>70"; $data_chocolates = mysql_query($sql_chocolates); if (mysql_num_rows($data_chocolates)) { while ($chocolates = mysql_fetch_array($data_chocolates)) { echo "Name of chocolate is ".$chocolates['nameOfChocolate']." and contains ".$chocolates['cacao']." % of cacao. And it is ".getNotIfNot($chocolates['isDia'])." good for diabetics."; } };) ;) Je to trošku vykonstruovaný příklad, tak se omlouvám za funci getNotIfNot, ale ... řekněme, že vrací string "not", pokud je parametrem false ;)
Nechtěl bych teda po vás ten kód číst.
proto nevim, proc bych na ne mel menit nazorNo snad protože jsem to řekl já, ne?
Moje_Funkce() MojeFunkce() mojeFunkce()ale vzdy a v kteremkoli jazyce (uz jen C, BASH, ojedinele PHP) pouzivam zapis
moje_funkce()a nevidim jedinou vyhodu u tech prvnich trech.
kdo odsazuje mezerami, je hovado...
Já si zase nemyslím nic lichotivého o člověku, pro něhož je to, že někdo preferuje jiný coding style než on, důvodem k nadávkám…
kdo odsazuje mezerami, je hovado...Odsazuj si čím chceš. Já třeba taky odsazuji tabulátorem. Akorát, že místo \t se vloží mezery
U forcyklů: i,j,k,l (jiný zvyk to komplikuje ostatných pro čtení), ii je fakt nepřehledné a jednoduše se přehlídne.
U foreach cyků: $result as $key => $value
U mysql dotazů $query, $result, $row
Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.
E.g. nerad bych s vámi na nějakých kódech. Do
Zkracování vede jen ke zmenšení přehlednosti, sice se argumentuje leností, ale když umíte psát všemi deseti tak ta expresivita názvu opravdu převáží.
To se nedá takhle generalizovat. Když půjdu do extrému, opravdu si nemyslím, že označení řídící proměnné cyklu outermost_cycle_counter
místo i
nějak přispěje přehlednosti programu. A i jinak jsou pro mne příliš dlouhá jména proměnných (víc než nějakých 10 znaků) většinou spíš otravná, a to i když je nemusím psát, ale jen číst. Navíc to zvyšuje riziko nutnosti zalomit řádek a tím zdroják dále znepřehlednit.
opravdu si nemyslím, že označení řídící proměnné cykluA co teprv, když člověk zjistí, že to outermost není outermost, ale potřebuju přidat ještě jeden vnější cyklus, nebo naopak zjistím, že vnější cyklus nepotřebuju atd.outermost_cycle_counter
místoi
nějak
$name
a $salary
. Pri obyčajnom for-cykle samozrejme premenné i, j, k, l.
Znovupoužívanie generických konštrukcií sa častokrát nevyplatí - či už môže dôjsť k chybe pri recyklovaní premenných, zlému skopírovaniu pri copy&paste (napríklad iterujem od 1 po n, kde by som mal od 0 po n-1) alebo rôznych iných.
Samozrejme netreba šetriť na názvoch funkcií/metód a skutočne popísať čo robia! Nie je nič horšie ako keď sa pozeráte na signatúru int doMagic(bool x, int bbz, int* pols)
. Z tohto zápisu nie je vôbec jasné, čo by to malo robiť.
Mojím pravidlom je snaha písať všetky názvy premenných, metód, tried, atď. anglicky. Tak ako ja neviem čo znamená premenná $koleTapja
, tak niekto nemusí vedieť, čo robí funkcia upecHovno(bool sAlobalom)
.
boolean hodnotaPodleKtereSeRozhoduji = …; Trida o = …; … if (hodnotaPodleKtereSeRozhoduji) { o.setAbcdTrue(); } else { o.setAbcdFalse(); }místo:
boolean hodnotaPodleKtereSeRozhoduji = …; Trida o = …; … o.setAbcd(hodnotaPodleKtereSeRozhoduji);?
V onech 97% kodu programu je totiz vykon uplne irelevantni (resp. je jedno, jestli zabere 10 nebo 1000 instrukci).Jo, zvláště když takový program 90% svého času nedělá nic jiného než jen furt něco volá (zrovna přiřazování asi bude dost frekventovaná akce a to vůbec nehledím na možnost, že může být v cyklu). A navíc se to musí fakt luxusně debugovat. V jakém duševní stavu musí člověk být aby implementoval přiřazování do proměnné voláním, to fakt nechápu.
Nehlede na to, ze kvuli setteru se stackframe velmi pravdepodobne budovat nebudePokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.
Pokud je to makro, tak ne. Pokud je to standardní volání implementované instrukcí call (a ne jmp) tak jo.
Java HotSpot strašně rád inlinuje. Takže to ve výsledku není ani call, ani jmp ale prosté přiřazení. Ve strojáku ze všech těch geterů a seterů nakonec zůstane jen práce s registrem (případně adresou).
c = a + b
c = add(a,b). V mém případě to tipuju buď na nějakou mentální degenerativní poruchu nebo malou hladinu alkoholu v krvi.
Já zas především nechápu na co kvůli jednomu blbému přiřazení (jedna instrukce) budovat celý další stackframe.1) "Celý další stackframe" není nic tak hroznýho.
this
.
setAbcdTrue()
bude volat setAbcd(true)
.
A reknes proc? Proc by mela metoda (napr.) setVisible() okno zobrazovat i schovavat?Nic takového jsem neřekl.
setVisibleTrue()
a setVisibleFalse()
.
Protoze metoda by mela delat jednu vecAle vždyť to ta metoda dělá jednu věc - nastavuje viditelnost okna. To, že vevnitř to řeší tak a tak je navenek jedno.
Myslim, ze je docela zrejme, ze implementace skryti a zobrazeni okna budou pravdepodobne dost odlisne ...Proč by měly být (výrazně) odlišný? Windows manager taky pravděpodobně udržuje u každého okna všelijaký informace včetně
boolean visible
.
Enum
– stav, na který se má změnit.
function chytraFunkce($prepinac) { if($prepinac == true) { ... ... spousta kodu ... ... } else { ... ... spousta kodu ... ... } }
V takovém případě více méně* souhlas, jenže ono to často vypadá takhle:
function chytraFunkce($prepinac) { ... ... spousta kodu ... ... if($prepinac == true) { …trochu kódu… } else { …trochu kódu… } ... ... spousta kodu ... ... }
nebo tam dokonce ani ten vnitřní if (…)
není a jednoduše předáváš ten $přepínač
někam dál.
Pokud je v ifu jenom část metody, nešlo by upravit životní cyklus objektu, vyčlenit společné části a rozdílnost fáze v podmínce řešit polymorfismem?
setVisible()
může nastavit vnitřní proměnnou a zavolat update()
a tam (ne)musí být if potřeba podle vlastností backendu. Zkrátka ten if by měl (imho) být co možná nejníž.
java.awt.Component.setVisible(boolean)
než show()
a hide()
.
arrayItem1
, arrayItem2
a arrayItem3
, ... :)
iteration1
, iteration2
... iteration44563
. Bude to pak přehlednější a lépe se to bude refaktorovat. :))
new ImplementationA()
a nahrazovat za new ImplementationB()
? A co mockování (např připojení k databázi) v testech? Nebylo by lepší vytvářet instance na jednom místě? Třeba v IoC kontejneru nebo ServiceLocatoru?"int i,j,k;
.
if
, while
a Auto extends DopravniProstredek
dočteš hnedka z kraje. Názory, které tu prezentuju jsou (bohužel) spíš taková avantgarda, o výuce programování ve školách radši nemluvě.
Právě tak jsem se to snažil podat - je užitečné mít reflex "když vidím public atribut, tak to se mnou škubne a zamyslim se" reflex "když vidím public atribut, změním ho na private a dopíšu setter/getter" je k ničemu.
Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.
Upřímně řečeno lepší by to bylo naopak. Atributy psát vždy jako private a k nim (třeba automatické, triviální) get/set metody a v případě opodstatněného použití jej předělat jako public.Vůbec nejlepší by bylo, kdyby Gosling tolik nečetl manuál k C++ a Javu udělal více podle Smalltalku. Tam jsou všechny členské proměnné v Java terminologii
protected
a metody public
, což je taková úroveň oprávnění, kterou obvykle programátor potřebuje.
Verim, ze i na takove GOTO se najde use case, ve kterem je vhodne a tedy se neda obecne oznacit a priori za spatne.Dobrým příkladem jsou linuxové moduly, kde se používají skoky pro zjednodušení kódu při inicializaci tak, aby se v okamžiku, kdy něco nevyjde, nemusleo složitě řešit to, co už bylo inicializováno/naalokováno a co ještě ne. Ne že by to nešlo řešit bez skokú, ale buď by to znamenalo držet si stav (což zabíra zbytečně paměť) nebo použít vnoření, která se ale mohou při větším množství stát velmi, velmi nepřelednými a člověk pak při čtení kódu vypadá jak ten zlý pes ze Simpsonů
int moje_promenna_kterou_jsem_si_definoval_po_prednasce_z_programovani_ktera_na_me_udelala_velky_dojem_1;
int <dtto>_2;
while ($cc=each($nejake_pole))
{ /* nejaka cinnost s $cc["key"] a/nebo $cc["value"] */ }
nějakou zvláštní výhodu oproti této:
foreach ($cc as $key => $value)
{ /* nejaka cinnost s $key a/nebo $value */ }
(používám právě tuto druhou cestu a rád bych věděl, jestli ta první není v něčem lepší)? $cc
má být u druhé konstrukce $nejake_pole
, ale to snad každý pochopí.
$r__db_connection = mysql_connect($s__host, $s__user, $s__pass); mysql_select_db($s__database, $r__db_connection); $r__products = mysql_query("SELECT ...", $r__db_connection); for ($i__row = 0; $i__row < mysql_num_rows($r__products); $i__row++) { $a__product = mysql_fetch_array($r__products); $s__product_name = $a__product['product_name']; } // mysql_close, unset a atd... exit(0);
Naviedol ma na to pan Herout pomocou jeho knihy Ucebnice jazyka C (ked som sa pred 6timi rokmi tento jazyk ucil). …zvysuje tento navyk u mna prehladnost a efektivitu. …dokazem sa vyvarovat niektorym chybam.
Jsem jediný u koho tyto bojové výkřiky ve stylu
vyvolávají jemný úsměv na tváři a jediný co si myslí, že se tu zas řeší leda tak kraviny? To je snad úplně jedno jak to píšeš, ne? Pokud nejsi pako a nebo fakt v nějaké ovlivnění smyslů, tak snad dovedeš rozumně pojmenovat nějaké proměnné a pokud není pako (a nebo též nějak ovlivněn) ten co to po tobě bude číst, tak to snad bude i schopen pochopit. Jestli je to už jazyk interpretovaný nebo překládaný a nebo silně tipovaný nebo slabě tipovaný a nebo rudý nebo růžový.
tipovanýNo dobře. Jdu spát.
Divnou polohu zavorek taky nechapu, a proc neodsazovat u funkce taky ne.Tohle je to poslední, co by se mělo řešit. Běžně se používají různé styly, každému vyhovuje něco jiného.