Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - Martin Sivák

Stran: [1] 2 3 ... 14
1

To netuším. Ale určitě máte smlouvu s městem na odvoz odpadků, které si platíte, ne? Buď přímo, nebo vám to cáluje město z daní. A pokud to nezaplatíte, tak by i nějaký ten exekutor mohl přijít.

Každopádně toto byl příklad toho, jak málo místní diskutéři vědí o čem mluví. A z větší části zde promlouvá přání než skutečné pochopení reálií.


Představte si, že tu krabici mohu vyhodit i ve městě, kde odpady ani daně neplatím. Dokonce i v zahraničí. A jasně jsem Vám tu dal odkaz na paragraf ohledně odložení věci nízké hodnoty (třeba krabice).





2
Asi by stálo za to upřesnit, že se v případě právnické osoby ...

Což nejsem.

Čemu nerozumíte na obratu "vy se dle práva vlastnictví té krabice nemůžete vzdát"?
Tak například vyhodit ji nemůžete. (Musíte předat právo na vlastnictví společnosti na odpady. Jsou na to dokonce takové formuláře.)

Formulář? Pro vyhození krabice? Ano, odpad je teoreticky pořád mým majetkem, ale oni to ve spalovně už vyřeší.

A mimochodem, vzdát vlastnictví se mohu snadno:

NOZ § 1050 (1) ... Byla-li movitá věc, která pro vlastníka měla zřejmě jen nepatrnou hodnotu, zanechána na místě přístupném veřejnosti, považuje se za opuštěnou bez dalšího.


3
Podobně legrační je to v případě, když si koupíte ten telefon. Tak se stáváte "majitelem" nejenom toho telefonu, ale i té krabice, ve které ten telefon byl zabalen. A vy se dle práva vlastnictví té krabice nemůžete vzdát. Takže nejde jen tak tu krabici "vyhodit".

Cože? Proč bych nemohl tu krabici oddělit od telefonu a zacházet s ní úplně jinak? Vyhodit, darovat, rozstříhat.. nebo nechápu co se snažíte říct.

Nahradit firmware je samozřejmě legální. Dokonce je v EU povolen reverse engineering za účelem interoperability (ale je vhodné to dělat jako clean room design). Trošku problém je s dnešním software-defined světem. Protože ten firmware řídí nabíjení, rádia a všechno ostatní. A to má vliv na bezpečnost a dodržení všech možných norem.

Takže napsat ten nový firmware bude pekelně drahé. Však můžeme sledovat jak "snadné" to je u Maců s M1/M2 CPU.

4
Distribuce / Re:Proč vychází tolik jader pro RHEL/Alma?
« kdy: 30. 07. 2025, 13:37:53 »
Pokud se nepletu, tak u windows se zranitelnosti zverejnuji az v okamziku, kdy jsou k dispozici zaplaty.

Embargo date je obvykle domluvené napříč produkty. Takže ve chvíli, kdy se ta informace zveřejní v CVE databázi to prostě musí RHEL vydat.

Windows specifické chyby asi mohou mít embargo dlouhé podle potřeby Microsoftu. Ale linux není jen RHEL.

5
Hetzner má dost šílené ověřování důvěryhodnosti klienta. Něco se jim nelíbí a vůbec Vám účet nezaloží (důvod samozřejmě nezjistíte). A ještě Vám následně řeknou, že nemá smysl to zkoušet znovu.

https://docs.hetzner.com/general/others/fraud-prevention-faq/

Takže dejte pozor na VPN, včetně IPv6 tunelů.


6
Software / Re:Sériový terminál s ovládáním RTS, DTR,…
« kdy: 16. 06. 2025, 17:09:37 »
moserial https://help.gnome.org/users/moserial/stable/intro.html.en má tlačítka pro RTS a DTR.

Některé věci se mi na něm nelíbí, ale na řádkové protokoly celkem funguje.

7
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 12. 06. 2025, 14:46:00 »
Ale porad si myslim, ze to neni nijak slozity jazyk, pouze jsou v nem zaludnosti.

C je syntakticky jednoduchý jazyk. Ale není jednoduchý na použití.

V porovnání s veškerou konkurencí kromě čistého ASM mu chybí jakékoliv pomůcky pro efektivní práci. Není skoro žádná standardní knihovna. Člověk si to prostě musí odedřít s malloc/free, pointery a polem. A pořád u toho dávat pozor.

Někdy je to nutné, ale většinou ne.

8
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 11. 06. 2025, 13:03:33 »
Kód: [Vybrat]
uint32_t *p_u32 = 0x00000040;
*p_u32 = 0x12345678; // zapiš hodnotu 0x12345678 na adresu 0x00000040

Toto je naprosto legitimní C-kód, sic platform specific.

To není tak úplně pravda. Tohle je legální jen s "volatile". Jinak bude optimalizátor provádět psí kusy.

9
Vývoj / Re:No code mobilní apka
« kdy: 11. 06. 2025, 11:16:43 »
Pokud web, tak by stálo za to zvážit PWA. Jediná (velká) nevýhoda.. uživatelé na ně nejsou zvyklí a nenajdou je v app store.

10
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 11. 06. 2025, 11:14:41 »
Když píšete vlastní datovou strukturu v Rustu stylem jako ve standardní knihovně, tak používate unsafe Rust a kompilátor vám s tím moc nepomůže (naopak tam jsou občas větší špeky než v C - to je aspoň můj subjektivní názor).

Jen pokud nutně potřebujete speciální pointery.

On je trošku problém, že se v Rustu snaží hodně lidí psát jako by to bylo C (protože na něj z C přešli). Jsou případy, kdy to může být nutné, ale většina lidí nepíše nový typ datové struktury nebo nový async executor každý den.

(A)Rc a Weak by mělo pro většinu účelů s referencemi bohatě stačit.

Jo, pokud píšete no_std embedded kód bez heapu, tak to začíná být zajímavější. To přiznávám. Ale to bylo i to C.

Abychom se vrátili k tématu. C je těžké a občas dává programátorovi pocit, že to má pod kontrolou, i když něco přehlédl. Rust je těžký, protože za to přehlédnutí programátorovi vynadá. A oba jazyky dávají v "unsafe" režimu možnosti jak udělat něco nedovoleného.

Možná bychom to mohli zobecnit na.. programování je těžké a nemusíme si přidělávat práci ještě použitím nevhodného jazyka. Základy domu taky nekopu lžící a použiju bagr.

11
Sítě / Re:Metronet končí, ke komu přejít?
« kdy: 11. 06. 2025, 09:50:53 »
Zůstal jsem a podmínky se zatím nezměnily. Takže taky v pohodě.

12
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 11. 06. 2025, 09:43:40 »
Praveze C umoznuje psat tak ci onak. Je to o tom jak si programator projekt zorganizuje.

Programátor si může přidat komentáře a rozdělit soubory. Jenže překladač z toho tu sémantiku nepozná. Neví jaký je záměr. V Rustu můžeme (no spíš musíme) překladači říct, jak dlouho daný pointer žije. V C++ existuje alespoň unique_ptr / shared_ptr. V C to u pointeru není jak vyjádřit.

Což omezuje možnosti automatické analýzy a optimalizace. Takže to musí hlídat programátor a tím dochází k chybám, protože lidi dělají chyby.

13
Software / Re:Algoritmus pro doporučování zboží v e-shopu
« kdy: 11. 06. 2025, 09:34:01 »
Ake klucove slova a algoritmy mam hladat, ked chcem implementovat odporucania tovaru pre maly eshop (100-1000) produktov?

Nechcem do toho tahat externe sluzby, proste chcem mat privacy pod kontrolou vo vlastnej databaze (Mariadb, alternativny Redis).

Google mimomentalne vyhadzuje len AI recomandation engine, ako keby nic ine ako AI nejestvovalo.

https://en.wikipedia.org/wiki/Apriori_algorithm

14
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 11. 06. 2025, 08:52:26 »
...Rust Vás jen donutí je explicitně pojmenovat a vyřešit.
Jo tak proto to pri kompilaci sebe sama hlasi kazdej jeden radek kodu ze je vadnej ... teda nez ta kompilace zbuchne, protoze to samosebe zkopilovat neumi.

Zjevne kvalitka ....

Protože bootstraping překladače je něco, co děláme všichni každý den. Bootstraping gcc jsem dělal přesně dvakrát v životě. A taky to vyžadovalo binárky, pak statický build a pak teprve finální build s optimalizacemi a knihovnami.

A Rust navíc má zdokumentované proč to tak je. Kompilujete překladač s kódem, který teprve bude stabilní (v té nové verzi). Jelikož to Rust hlídá, tak to za normálních okolností nedovolí. Proto je tam pro bootstrap speciální proměnná, která ty nightly-only kontroly vypne.

https://rustc-dev-guide.rust-lang.org/building/bootstrapping/what-bootstrapping-does.html#complications-of-bootstrapping

15
Vývoj / Re:Je jazyk C skutočne ťažký?
« kdy: 11. 06. 2025, 08:45:45 »
A hádáte se zbytečně. C totiž je těžké. Nejde jen o různé pasti s undefined behavior. Popravdě jste tu zatím všechny ukázky založili na jediné oblasti, čísla se znaménkem.

Hlavní důvod proč je C těžké, je neexistence knihovny standardních datových struktur a masivní použití (často netypovaných void) pointerů.

- C nemá strukturu pro asociativní pole (ať už hash nebo strom)
- C neumí pohlídat přetečení bufferu
- C neumí pohlídat use-after-free

Takže aby programátor neudělal logickou chybu, musí držet v hlavě celý datový model aplikace a vědět, komu patří který pointer, kdo je zodpovědný za uvolnění atd.

Proto vznikají články jako už zmíněný https://floooh.github.io/2018/06/17/handles-vs-pointers.html , proto máme valgrind (a taky glib nebo Qt/QML pro C++).

Ano, možnost toto všechno řídit ručně umožní vyždímat i poslední kousek výkonu. Tedy možná, protože dnešní procesory jsou tak složité, že optimalizace programátorem naopak stav často zhorší.

Naprostá většina aplikací toto nepotřebuje. Naprostá většina aplikací potřebuje spolehlivou logiku a datový model víc, než optimalizaci na HPC nebo absolutně nejnižší možnou latenci.

C je jen o malý schůdek nad assemblerem. A kolik kódu jste za poslední dekádu napsali v ASM? Obojí se hodí, až když uděláte profiling a zjistíte, že Vás opravdu omezuje funkce na násobení matice nebo něco podobného (https://www.laws-of-software.com/laws/knuth/ ).

Ale na zbytek aplikace je mnohem vhodnější použít něco, kde se můžete soustředit na to CO to má dělat místo na to, JAK to je implementované na nízké úrovni.

C++ má spoustu podobných pastí, ale alespoň má STL, takže máte smart pointery a nemusíte si psát věci jako Vector nebo iterátory pořád dokola. Rust zase vyžaduje pochopení lifetimes pro jakoukoliv složitější strukturu a je přísný při překladu.

Stran: [1] 2 3 ... 14