Poslední příspěvky

Stran: 1 2 [3] 4 5 ... 10
21
Vývoj / Re:Je jazyk C skutočne ťažký?
« Poslední příspěvek od Pavel Tišnovský kdy Dnes v 10:52:52 »
Jenom takova technicka - k cemu je v C potreba operace posunu na signovane datove typy?

Taky jsem se chtěl zeptat. S tím se zase tak často člověk nesetká. S unsigned posuny ano, ale se signed?
Arithmetic right shift se dá použít na rychlé dělení konstantami 2, 4, 8, 16... signed čísel. I na současných CPU je integer dělení velmi drahá operace v porovnání s bit shiftem. Nelze přitom použít operátor dělení konstantou a doufat, že to překladač optimalizuje, protože integer dělení na signed integerech dává jiné výsledky než bitový posun. Výsledek operace (-1 / 2) je 0 a výsledek operace (-1 >> 1) je -1. Pokud se překladač rozhodne vygenerovat z operace dělení konstantou bitový posun, musí generovat extra kód, který tohle handluje.

Takže když chci extra rychlý kód pro dělení signed integerů konstantou a jsem smířen s tím, že to nedává identické výsledky jako operace dělení v C, je arithmetic right shift jediná varianta.

jj já vím, co ta operace dělá. ale právě kvůli té problematické -1 (tedy samé jedničky v registru) to je IMHO vždycky způsob, jak se skutečně střelit do nohy. Vlastně právě i kvůli tomu, když píšu testy na kód se signed hodnotami, tak tam vždycky vrážím právě i -1, co to udělá.

docela bych řekl, že kdo toto potřebuje v praxi, tak prakticky vždycky by to měla být unsigned hodnota. Nějaký průchod polem dělením intervalu atd. - nezáporné indexy atd. Akorát unsigned je dlouhý slovo, tak jsme líní to psát...
22
Hardware / Re:BD-RW blokuje Ultra HD?
« Poslední příspěvek od pruzkumbojem kdy Dnes v 10:50:08 »
Neni to region. UK has same region. A koupil jsem Alze cesky UHD disk a taky nic.
navic to jen cuka diskem a zadne chybove oznameni o regionu.

Co se tyde MakeMKV atd, jo, ale to fungovalo na starsi versich firmware. Pionner loni uvedl nejakou novou verzi firmware, ktery explicitne detekuje flashovani na LibreDrive. zprava ze stejneho fora, neni jasne, jak se situace po roce zmenila.
(PS. a videl jsem nabidky 25-100 USD, to uz rovnou clovek muze risknout hw z ebay.

23
Vývoj / Re:Je jazyk C skutočne ťažký?
« Poslední příspěvek od linuxak kdy Dnes v 10:41:05 »
Jenom takova technicka - k cemu je v C potreba operace posunu na signovane datove typy?

Taky jsem se chtěl zeptat. S tím se zase tak často člověk nesetká. S unsigned posuny ano, ale se signed?
Arithmetic right shift se dá použít na rychlé dělení konstantami 2, 4, 8, 16... signed čísel. I na současných CPU je integer dělení velmi drahá operace v porovnání s bit shiftem. Nelze přitom použít operátor dělení konstantou a doufat, že to překladač optimalizuje, protože integer dělení na signed integerech dává jiné výsledky než bitový posun. Výsledek operace (-1 / 2) je 0 a výsledek operace (-1 >> 1) je -1. Pokud se překladač rozhodne vygenerovat z operace dělení konstantou bitový posun, musí generovat extra kód, který tohle handluje.

Takže když chci extra rychlý kód pro dělení signed integerů konstantou a jsem smířen s tím, že to nedává identické výsledky jako operace dělení v C, je arithmetic right shift jediná varianta.
24
Vývoj / Re:Je jazyk C skutočne ťažký?
« Poslední příspěvek od Pavel Tišnovský kdy Dnes v 10:23:43 »
Jenom takova technicka - k cemu je v C potreba operace posunu na signovane datove typy?

Taky jsem se chtěl zeptat. S tím se zase tak často člověk nesetká. S unsigned posuny ano, ale se signed?
25
Sítě / Re:LTE - Internet v odlehlé končině
« Poslední příspěvek od Jirka Nepovim kdy Dnes v 10:19:44 »
Gosh.. to je ryzi zlato tenhle thread....
26
Sítě / Re:Vodafone (exUPC) vs. PODA (GPON) Internet
« Poslední příspěvek od 🇺🇦 GPU kdy Dnes v 09:01:05 »
Tak někdo musí seedovat ty torrenty.
27
Software / Re:Synchronizace dvou pracovních PC
« Poslední příspěvek od jjrsk kdy Dnes v 08:55:02 »
Nevim teda estli to chapu uplne spravne, ale pokud pouzivas nejaky balickovac, tak asi neni zasadni problem semotamo udelat diff, a doinstalovat co chybi. Horsi to bude s odebiranim, protoze to jaksi uz vyzaduje telepatii.

Samozrejme se daji do jiste miry pouzivat i brutalnejsi zpusoby. Trebas proste naprasaka rsync pres celej disk, kde budes za spravne povazovat ty novejsi/neexistujici soubory. Coz samo opet bude znamenat problem s odebiranim cehokoli.

Jak tu zaznelo, vsechny nastroje k tomu urctene vyzaduji, aby sis nejdriv napsal nejakej predpis a teprve pak se to nainstaluje. Nepredpoklada to ze budes neco instalovat rucne. Ackoli nektere umi to, ze kdyz uz to nainstalovano je, tak to poznaji.

28
Software / Re:Synchronizace dvou pracovních PC
« Poslední příspěvek od kopevi2 kdy Dnes v 08:51:00 »
Taky by mě zajímalo, jak to udělat. Já to kdysi řešil přes nomachine (dneska asi x2go) a noťas jsem měl jako tenkýho klienta. Měl jsem ale přípojku 1Gb na kolejích s veřejnou IP, elektrika v ceně :-). Bylo to slušně použitelný na běžnou práci jako počítání, kontrola Fluentu apod...
29
Software / Re:Synchronizace dvou pracovních PC
« Poslední příspěvek od Zopper kdy Dnes v 07:47:37 »
... adresare mam uz tak nejak vymysleny a to pres NAS kam delam rsync a pak zpet. Problemem jsou lokalni upravy jako pracuji na jednom ze zraizeni a potrebuji nahodit tool nahodim a prcuji jenze ho nemam na druhem zarizeni.
Unison, syncthing, atd, tady myslím nepomůžou, otázku chápu tak, že na soubory už má NAS, ale chce řešit instalaci nástrojů. Jinak řečeno, tohle je spíš téma managed deployment - Ansible Playbooks, a tak dál.

Všechny tyhle věci, které znám, ale vyžadují, aby ta instalace probíhala stylem "upravím playbook a pustím ho na obou strojích." Neznám nic, co by umělo "tady si to nainstaluju ručně a ono se to zreplikuje na druhou stranu."

Já občas potřebuju deploynout nějaké věci do pár VM po jeho smazání a znovuvytvoření, a zatím si na to udržuji celkem jednoduchý bash skript ve stylu if not installed foo: install foo. Ale dost zvažuju přechod právě na Ansible, byť to znamená nějakou další závislost, co se tam musí prvně dostat.
30
Vývoj / Re:Je jazyk C skutočne ťažký?
« Poslední příspěvek od Jiří Havel kdy Dnes v 06:27:26 »
Já bych tomu třeba říkal polovičatost.
Zbrane nebo obsluhy? :)

Ale skutečnost, že nechává signed jako nedefinované mi přijde polovičaté. To máš stejné, jako kdyby byla nedefinovaná třeba konstrukce for jenom kůli tomu, že nějaký obskurní procesor nemá loopy. To není neznalost. To je jednoznačně  chyba na straně C. Nemá to zkoušet vůbec rozlišovat signed a unsigned, a pak bych to bral. Takhle říká, že si to bere na starost, a přitom kecá.

Jeden z důvodů, co jsem slyšel, je možnost více optimalizovat. Kompilátor může například předpokládat, že když k intu přičtete kladnou konstantu, tak výsledek bude vždy větší, než původní hodnota.

Za cenu toho, že to občas bude počítat blbosti. Optimalizace jak stehno.
Já bych se toho samotného nedefinovaného chování zastal. Ono to umožňuje i řešit přetečení jako tvrdou chybu (-ftrapv). Přiznejme si, že při přetečení i v jiných jazycích obvykle nechceme wrap, ale je to něco co jsme neplánovali.

Ale tady zase nastupuje ta zmiňovaná polovičatost. Protože C nám nedává funkce pro ty výjimečné případy, kdy potřebujeme ten wrap.
Stran: 1 2 [3] 4 5 ... 10