Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
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.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
Na čem pracují vývojáři webového prohlížeče Ladybird (GitHub)? Byl publikován přehled vývoje za duben (YouTube).
Provozovatel čínské sociální sítě TikTok dostal v Evropské unii pokutu 530 milionů eur (13,2 miliardy Kč) za nedostatky při ochraně osobních údajů. Ve svém oznámení to dnes uvedla irská Komise pro ochranu údajů (DPC), která jedná jménem EU. Zároveň TikToku nařídila, že pokud správu dat neuvede do šesti měsíců do souladu s požadavky, musí přestat posílat data o unijních uživatelích do Číny. TikTok uvedl, že se proti rozhodnutí odvolá.
Společnost JetBrains uvolnila Mellum, tj. svůj velký jazykový model (LLM) pro vývojáře, jako open source. Mellum podporuje programovací jazyky Java, Kotlin, Python, Go, PHP, C, C++, C#, JavaScript, TypeScript, CSS, HTML, Rust a Ruby.
Vývojáři Kali Linuxu upozorňují na nový klíč pro podepisování balíčků. K původnímu klíči ztratili přístup.
V březnu loňského roku přestal být Redis svobodný. Společnost Redis Labs jej přelicencovala z licence BSD na nesvobodné licence Redis Source Available License (RSALv2) a Server Side Public License (SSPLv1). Hned o pár dní později vznikly svobodné forky Redisu s názvy Valkey a Redict. Dnes bylo oznámeno, že Redis je opět svobodný. S nejnovější verzí 8 je k dispozici také pod licencí AGPLv3.
Proto Larry Finger nedávno představil novou verzi svého návrhu na mechanismus, který by Linuxu umožnil provozovat bezdrátové adaptéry v souladu s právními požadavkyPředpokládám, že si výrobci HW najdou jinou výmluvu, oblíbené jsou třeba smlouvy s třetími stranami.
Jde o ne-NULL hodnotu, která se tváří jako normální ukazatel, ale způsobuje chybu při každém pokusu o zrušení odkazu na ni [dereferencing].
Nejsem si jistý, jaký je oficiální český výraz pro deferencing, asi bych napsal použití (nebo klidně dereferencování, ať si obrozenci prskají), ale zrušení to nebude zcela určitě.
Referencing má význam spíš "odkazovat se na něco". Dereferencovat pointer znamená prostě použít hodnotu, na kterou se odkazuje. V daném kontextu to znamená, že
char* p = kmalloc(...); char c = *p;
způsobí chybu.
x=x+1;
), takže možná proto mají lidé problém pochopit ukazatele :)
x=!x+1
. Jiste sam citete, ze leve x je misto v pameti, kdezto prave x je hodnota.
Nejsem expert na jazyky, ale me tento jev ucili pod pojmem implicitni dereference. Mozna ze mluvime o teze veci.
i = deref(i) + 1
- to přeci nedává smysl, ne? Buď je levé i
adresa, když je třeba ho dereferencovat, nebo pravé i
dereferencovat vůbec nejde, ne? Taky nemůžu napsat p_i = *p_i + 1
(nebo můžu, ale bude to nesmysl). Buď to, nebo je chápání operátoru přiřazení autorem poněkud divné. Nebo mě jen možná mate vysoce abstraktní sémantika places v Lispu, kde se fakt jen šoupe s obsahem přihrádek. i = i;
a i = 1;
. Přiřazovátko je typu (proměnná)=(hodnota). V prvém případě musím vyhodnocovat adresu i, v druhém nemusím. Tento krok navíc, který uživatel nemusí zapisovat, se nazývá implicitní dereference. Pokud by tomu tak nebylo, byl by příkaz 1 = 1
v pořádku, což jistě není. C je tímto prolezlé, tudíž práce s ukazateli a explicitní dereference (a reference) se v učebnicích vysvětluje, kdežto implicitní derefernce se bere za samozřejmost.
Do stejné kapitoly patří implicitní type casting. Např. int i; long int j; i + j;
V tomto případě programátor nemusí nic řešit. V C by snad i prošlo, kdyby jeden z nich byl float. Avšak v jazycích, které umožňují parametrický polymorfimus (např. C++), by již podobné výstřelky mohly vyjít pěkně draho.
Implicitní derefencování striktně rozlišuje mezi hodnotou a proměnnou. Proměnnou považuje za ukazatel do paměti, kde hodnotu ukazatele, adresu, nelze programátorsky změnit (něco jako const * int
, jenže tady dochází k dvojí dereferenci).
Pokud mluvíte o Lispu, tak je třeba mít na paměti, že se jedná o funkcionální jazyk. A takové jazyky a zvláště ty, které se snaží o referenční transparentnost, si mohou dovolit mnoho zjednušení a předpokladů, co se týče vyhodnocování výrazů.
"Někteří výrobce zjevně věří, že by mohli " vyrobce -> vyrobci.Díky, opraveno.
Jsem pro "dereferencovani", popisovačů souborů => file descriptoru, nízkoúrovňové komunikaci => low-level komunikaci, jmenný prostor => namespace, nové systémové volání => novy system call, příznaky => flagy, atd. atd.Dereferencování už je probíráno výše - bohužel jsem tam nepochopil pravý význam. Za ostatními výrazy si však stojím a nebudu je psát anglicky, když pro ně existují výstižné a jednoznačné překlady. V případech, kde by to nemuselo být zcela zřejmé, uvádím původní výraz do závorky (nebo naopak - ponechávám původní výraz a do závorky uvádím popisný český překlad).
btw, "jmenný prostor" ma tiež niečo do seba
namespaceAfaik je jmenný prostor v češtině terminus technikus
jako by nekdo prekladal printf() na vytisknif(), struct na struktura, exit() na konec()Což však nedělám
Tiskni
Sdílej: