Na webu konference Den IPv6, která se konala 4. června v Národní technické knihovně v pražských Dejvicích, jsou nyní k dispozici všechny prezentace (v PDF) a jejich videozáznamy. Organizátory konference byly i letos sdružení CESNET, CZ.NIC a NIX.CZ.
Byla vydána nová verze 9.1.0 správce sbírky fotografií digiKam (Wikipedie). Přehled novinek i s náhledy v oficiálním oznámení (NEWS). Vypíchnout lze vylepšené vyhledávání nebo podporu Pixel Motion Photos. Nejnovější digiKam je ke stažení také jako balíček ve formátu AppImage. Stačí jej stáhnout, nastavit právo ke spuštění a spustit.
Přihlaste svou přednášku na další ročník konference LinuxDays, který proběhne 3. a 4. října na FIT ČVUT v pražských Dejvicích. Příjem témat poběží do konce prázdnin, pak proběhne veřejné hlasování a následně sestavení programu.
Byla vydána nová verze 2.4.68 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 13 zranitelností.
Apple na své vývojářské konferenci WWDC26 (Worldwide Developers Conference, keynote) představil řadu novinek. Vypíchnout lze novou generaci Apple Intelligence a zbrusu novou Siri, která dostala název Siri AI. Kvůli Aktu o digitálních trzích (DMA) však funkce Siri AI nebudou v systémech iOS 27 a iPadOS 27 k dispozici uživatelům v Evropské unii.
Byla vydána nová verze 1.18.0 distribučního frameworku Flatpak (Wikipedie), tj. technologie umožňující distribuovat aplikace v podobě jednoho instalačního souboru na různé linuxové distribuce a jejich různá vydání. Přehled novinek na GitHubu. Vypíchnout lze podporu rozhraní /dev/kfd pro výpočty na kartách AMD (AMDKFD).
aMule (Wikipedie), tj. multiplatformní klient pro peer-to-peer sdílení souborů pro sítě eD2k and Kademlia, byl po více než pěti letech od vydání poslední verze 2.3.3, vydán v nové major verzi 3.0.0 (GitHub). S novou webovou stránkou a dokumentací.
Byly vyhlášeni vítězové a zveřejněny vítězné zdrojové kódy (YouTube, GitHub) již 29. ročníku soutěže International Obfuscated C Code Contest (IOCCC), tj. soutěže o nejnepřehlednější (nejobfuskovanější) zdrojový kód v jazyce C.
Evropská komise předložila evropský balíček pro technologickou suverenitu, tedy soubor opatření, která mají posílit kapacity EU v oblasti polovodičů, umělé inteligence, cloudu a open source. To Evropě pomůže stát se lídrem v oblasti umělé inteligence, posílit její digitální autonomii a vytvářet podmínky pro udržitelnější digitální budoucnost.
OpenCV (Open Source Computer Vision, Wikipedie), tj. open source multiplatformní knihovna pro zpracování obrazu a počítačové vidění, byla vydána v nové major verzi 5.
for ($ii=0;$ii<10;$ii++)
{ /* nejaka cinnost */ }
Prochazeni polewhile ($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 funkcefunction 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 ;)
); prostě je fajn to používat, ale nemělo by to být to jediné, co člověk umí. Občas potřebuju něco napsat na vzdáleném stroji třeba ve VIMu a když to není nakonfigurované, tak prostě musím vědět, jak se co píše, jak se píše třída v Javě, jak se píše to či ono, co Eclipse třeba sám doplní ;)
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?
V php by se určitě dalo vymyslet, jak to udělat, aby to fungovalo.
Tak to je dobrá hláška ;) ;)
(stable verze)
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
Je celkem jedno jestli tabulátor nebo mezera. Nejhorší je zdroják, kde to programátor kombinuje dle nálady. U něj to vypadá OK, ale když si to otevře někdo, kdo má nastavený tabulátor na jiný počet míst, tak je z toho pěkný guláš
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_countermístoině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.
Zdvojovani standardnich promennych nechapu (proc ne proste i, j?, cc mi nesedi uz vubec). Divnou polohu zavorek taky nechapu, a proc neodsazovat u funkce taky ne. Secteno a podtrzeno - nelibi se mi tvuj styl :)
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.