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 [4] 5 6 ... 12
46
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 06. 12. 2022, 10:27:06 »
Popravdě mám dojem, že se v té teorii typů dost vyžíváte a děláte jí spíš medvědí službu.

Ano, indukční definice typu sudá čísla je pěkná ukázka. A v dalším kódu už pak opravdu můžeme mít jenom krásné garantované sudé číslo a optimalizátor tu informaci může pěkně využít.

Jenže co se stane, když načtete uživatelský vstup a bude tam číslo liché? Nějaký implicitní nebo explicitní parser musí rozhodnout, jestli ta hodnota je v pořádku nebo není a nějak zareagovat. A to je část, co se z ukázek síly funkcionálního programování typicky vypouští.

Vysokoúrovňové informace pro optimalizátor nejsou navíc nezbytně omezeny jen na funkcionální jazyky. Ada a Eiffel mají třeba design by contract (= vstupní podmínky pro parametry), ostatní jazyky budou mít nějaký interface pro next, stream, iterátory nebo cokoliv podobného. (Lazy generátor v Haskellu interně stejně nic jiného nedělá). Dneska s LLVM a LTO se navíc optimalizace často dělají až nad mezikódem.

Pokud se budeme bavit o generických maticích, tak tu informaci o velikosti si to samozřejmě musí nést s sebou, pokud není známá v době překladu. VTable tam být nemusí, protože matice jsou specializovaný případ a stačí číslo. Maximálně, kdyby to bylo tak chytré, že pro některé operace nad specifickými velikostmi použije speciální extrémně optimalizovanou implementaci. Ale opět, v runtime jde o vstup od uživatele, takže tam musí být parser, error handling a nějaký dynamický dispatch.

Pokud by vstupem od uživatele byl samotný typ i s hodnotou (řekněme program "kompot", který správně odpeckuje, pomele, vyrobí etiketu podle počtu a typu vstupního ovoce), tak to interně samozřejmě dynamický dispatch mít bude. Jednoduše pro to, že každé to ovoce (Typ) se zpracovává jinak a náš abstraktní turingův stroj (CPU) neumí nic jiného než skoky dle adres, které si někde přečte.

Procesor s matematickou indukcí ještě nikdo nenapsal a z hlediska strojového kódu to nakonec vždy skončí procedurálně, takže výhoda a nevýhoda těchto jazyků je hlavně ve formální analýze během překladu. Ale ta se dá podpořit i jinak.


Co se typů v Rustu týče, tak borrow checker je move sémantika + escape analysis. Ale lifetime specifier je jednoznačně součást definovaného typu a poskytuje borrow checkeru informace navíc (= něco dle designu musí žít déle než něco jiného). Tuto informaci čistě z kódu neodvodíte, protože algoritmus co tam vývojář napíše, může být z hlediska požadavků typu špatně.

Lifetime pro dokázání správnosti nakládání s pamětí teoreticky nepotřebujete, pokud životnost hlídá jiný mechanizmus jako ref count nebo GC. Ale to má zase runtime implikace.

47
Dostupnost čehokoliv s STM32 je teď hrozná. V mém případě STM32L031K6. A to samé platí i pro nástroje, STLink v3 mají akorát v SOS electronic za dvojnásobek normální ceny a ISOL desku jsem propásl úplně :(

Jenže.. ATmegy před pár lety hrozně zdražily a v poměru ceny k výkonu se vůbec nevyplatilo je používat, protože ARMy (hlavně různé M0+) byly příjemně levné.

Lead time na STM32 je často i dva roky. Snad se to zlepší než vyčerpám zásoby :)

48
Hardware / Re:Měření teploty v bytě
« kdy: 15. 11. 2022, 14:01:38 »
Tak nějak jsem předpokládal, že se bavíme o měření teploty vzduchu v místnosti. Což mi implikuje, že teplota se měří ve stínu a ideálně ve tmě (venku s použitím radiačního štítu, uvnitř někde mimo přímé slunce, okna a parapety).

Ono totiž i nepřímé světlo přidá k měření klidně několik stupňů. Teploměr na parapetu pak bude hlavně měřit dopadající záření a bude úplně mimo.

49
Hardware / Re:Měření teploty v bytě
« kdy: 15. 11. 2022, 13:09:19 »
Smím-li se zeptat, k čemu je měření teploty v místnosti s rozlišením čidla na setiny stupně

Já tedy v otázce viděl desetiny stupně s tím, že půl stupně překousne.

A v grafech jsou sice vidět setiny, ale voltů.

rozdíl nejvyšší a nejnižší teploty v místnosti je klidně 10 K ?

Vy máte v místnosti 10°C gradient? Kolísání jeden dva stupně bych klidně akceptoval, ale rozdíl mezi 20°C a 10°C bych v jednom pokoji rozhodně poznal. Dovedu si to představit u kamen v rohu místnosti, ale jen chvilkově než se ohřejí stěny.

50
Hardware / Re:Měření teploty v bytě
« kdy: 14. 11. 2022, 14:56:57 »
Tak nějak podobně jako petrp2b. Mám síť postavenou na STM32L0 (konkrétně STM32L031K6), RFM12 / RFM69 868 MHz FSK rádiu (ale s rozumným rádiovým formátem paketu, FEC, interleaving, ...).

Na teplotu používám buď už zmíněný Dallas DS18B20+ nebo třeba SMT172 (PWM in, průměrováním se dá teoreticky dostat na 0.1°C v běžném domácím rozsahu teplot).

Na dvě AA baterie běží senzory několik let. S měřením a vysíláním každých 5 minut mi kleslo napětí na baterii z 3.21 V na 3.07 V za skoro přesně dva roky. To je ještě pořád nad nominálním napětím těch dvou AA článků.

Ty výpadky v datech jsou způsobené GSM bránou a serverem. Na senzor jsem za celou tu dobu nešáhl.

Ale ubastlil jsem si to celé sám, včetně protokolu a "RTOS". A naučil se přitom spoustu zajímavých věcí a triků. I cesta totiž může být cíl :)

51
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 16:16:17 »
To se nevylučuje, sémantická neměnnost neznamená, že se nepřepisuje paměť nebo registry. Jen to je transparentní a vývojáře to nemusí zajímat. Garanci výlučnosti nebo neměnnosti (z pohledu vývojáře) zajištuje překladač.

Jenže na této úrovni už neexistuje sémantická neměnnost. Ty periferie jsou určené ke komunikaci s vnějším světem a tudíž se z principu musí měnit.

Co se řešit dá (a teoreticky musí..) je vlastnictví v daný moment. Například sdílení SPI nebo I2C sběrnice pro komunikaci s externími komponentami. Tam jazyk pomůže, ale nakonec je to stejně tak nízkoúrovňové a citlivé na časování, že programátor musí vědět co dělá.

Typicky třeba flash paměti umožňují přes externí signál přerušit svoji transakci a později pokračovat. A to je věc, co se bez přímého přístupu do registrů periferie dělá špatně i v C/C++ HAL implementacích. Přesvědčit borrow checker v Rustu, že to je opravdu v pořádku, je ještě mnohem komplikovanější. A to nemluvím o uspání, během kterého se nakonfigurovaným periferiím vypne hodinový signál nebo třeba ADC převodníku referenční napětí. V Rustu jedině přes komplet unsafe blok.

Čistě funkcionální a immutable paradigmata jsou teoreticky krásná, ale mnohdy zbytečně omezující. Mohou fungoval jen díky tomu, že někdo tu špinavou práci odvedl na nižší úrovni. Jenže to je právě doména Rustu, tak se mu dá těžko vytýkat, že není "čistý", funkcionální a plně immutable.

Za mě vhodně namíchaná kombinace funkcionálních a procedurálních vlastnosti umožňuje v praxi čitelnější a praktičtější zápis a čtení kódu.

52
Vývoj / Re:Je Rust jazyk budoucnosti?
« kdy: 07. 11. 2022, 12:25:36 »
A proto je “mut” v Rustu zlo.

Jenže přes čistě immutable struktury se na úrovni hardware psát nedá, protože reálně tam pořád jsou nějaké periferie, registry a nějaká mutable paměť na definovaných adresách.

Krom toho mut v Rustu neznamená jen samotnou mutabilitu, ale také exkluzivní přístup a garanci, že změna nic jiného paměťově nerozbije.

V ARM HALech třeba používáte mut pro periferie, u kterých máte právo změny konfigurace.

53
Mohl bych použít toto zařízení?
https://cz.farnell.com/wurth-elektronik/amb8465-m/usb-adaptor-wireless-m-bus-ceramic/dp/1749517

Ale to je zařízení pro Wireless M-bus. Ano, je to na stejném pásmu, ale protokol bude úplně jiný.

Díky @_Tomáš_, ale ta věc od ABB je vysílač a tím nezachytím komunikaci od stávajícího dálkového ovládání.

Což nemusí vadit, pokud ovládací protokol / aplikace zná ty žaluzie.


Na zachycení komunikace stačí libovolná rtl-sdr SDR usb "klíčenka".

54
Jde také o to, že syna opravdu hodně baví focení. Rád se toulá přírodou - třeba i několik dní se spacákem na zádech chodí po horách a fotí tam místní krajinu na jejíž focení se zaměřuje. Následně fotky v rawu upravuje. Dle synova vyjádření je Apple pro toto vhodnější než Win.

Bohužel bývávalo. Měl jsem OS X raději než Windows a Aperture byl jednu dobu opravdu výborný software. Než ho Apple zařízl :/ Konkurenční Adobe Lightroom mi nikdy nevyhovoval, to už jsem raději používal Bibble Pro na Linuxu (dnes se to myslím jmenuje Corel AfterShot Pro).

Dneska mám digiKam, skřípu zubama, ale rozumnou alternativu k Aperture jsem prostě nenašel (filmový pás, kopírování změn z jedné fotky na celou skupinu, efektivní nedestruktivní editace a více verzí z jednoho master snímku).

Jednu věc ale OS X umí skvěle. Správu barev má integrovanou komplet do všech částí systému.

55
Kdysi jsem dostudoval FIT na čistě linuxovém stroji. Byl to občas trošku boj, software na VHDL byl primárně pro Windows. Ale Octave místo Matlabu byla ve cvikách i výhra, protože docházely síťové licence :)

Protokoly do fyziky jsem jako jeden z mála psal v LaTeXu, takže jsem neměl problém s odevzdáváním, jako kolegové co Wordové šablony kopírovali od starších na kolejích. Prostě to vypadalo lépe a určitě jako vlastní práce.

Úlohy do programování (v C / C++) se stejně nakonec ověřovaly na školních počítačích, takže lokální vývoj a před odevzdáním ověření na všech tehdejších školních platformách (vč. Power) dle zadání.

Assember pojede i v softwarově emulovaném qemu. Tam o výkon nejde.

Na FIT VUTBR bych se jiné platformy asi úplně nebál. Je pravda, že kdysi byly nástroje, které jsme tenkrát dostali jen jako binárku. Pamatuju PM2 - pro výuku paralelních systémů (hroznej krám) a pak simulátor od Kunovského na diferenciální rovnice, ale ten jsme měli jen na hraní.

56
Hardware / Re:Proxmark3 - klonování čipů pro domovní dveře
« kdy: 22. 07. 2022, 10:17:44 »
Niektore su aktivne, niektore su naozaj primitivne. Zalezi na tom, co to je za kartu, resp. aka "aplikacia" je na tom cipe.

Najcastejsie pouzivane vstupne karty prilozenim k citacke naozaj len oznamia svoje ID. Cela bezpecnost je zalozena na nadeji, ze ID karty nekoliduje s niecim inym - inou kartou pre iny system - a na dlzke ID.
Dalej su karty s krypto cipom, ktory po prilozeni k citacke urobi podpisovu operaciu a na strane citacky musi byt certifikat danej karty s verejnym klucom na overenie.
Myslim, ze som kdesi cital aj o komplikovanejsej aplikacii, kde najprv karta overi, ktora citacka je v blizkosti a potom robi krypto operaciu (teda neda vystup hocijakej citacke ale len tym z prednastaveneho zoznamu)

Ty čipy z principu vždycky jen odpovídají na požadavky čtečky. Nemají jak čtečku identifikovat.

Mifare DESfire (a Ultralight C) provádí handshake s přihlášením.

A ano, je spousta systémů, které jsou založeny jen na 4B ID původní Mifare Classic s nulovým zabezpečením. Nebo dokonce na ještě primitivnějším RFID 125 kHz tagu, kde se opravdu jen pošle ID a není tam vlastně ani nic, co by se dalo nazvat protokolem.

57
Hardware / Re:Proxmark3 - klonování čipů pro domovní dveře
« kdy: 21. 07. 2022, 17:48:44 »
Teoreticky by dvere mohly pouzivat aktivni karty. ... Uz jen pro to, ze by ty karty nejspis potrebovaly baterku stejne jako klic od auta. A byly by vyrazne drazsi.

Ty karty jsou aktivní, obsahují kryptografický čip. Jsou napájené paraziticky z rádiového pole čtečky.

Klíč k lepšímu zámku stojí kolem 100 Kč. Cena za jednu Mifare Classic / DESfire EV1 bývala i nižší, ale prodejci přístupových systémů na těch kartách mají hrozně vysoké marže (oproti velkoobchodu).

58
Hardware / Re:Proxmark3 - klonování čipů pro domovní dveře
« kdy: 21. 07. 2022, 17:35:29 »
Mifare je výrobce, má spoustu různých typů karet.

Mifare Classic mají jak UID (4 nebo 7B), tak zapisovatelnou oblast chráněnou heslem. Jenže ta kryptografie byla slabá a není dnes problém heslo zjistit skoro v reálném čase (max desítky vteřin). Existují metody jak to zabezpečení vylepšit na offline i online úrovni. Třeba počitadlem vstupů s kryptografickým podpisem ze strany terminálu.

Také se používají Mifare DESfire (teoreticky prolomitelné) a DESfire EV1 (zatím bezpečné).

Existují i "jízdenkové" Mifare Ultralight (nezabezpečené, write only bity na procvaknutí) a Ultralight C (zabezpečené, jednodušší než DESfire EV1 a bezpečné).


HID je pak konkurenční výrobce karet iClass. Tam tu bezpečnost tolik neznám.


Proxmark 3 je jinak moc pěkná hračka ;)

59
Desktop / Re:jak řešíte zvuk v případě více monitorů
« kdy: 01. 07. 2022, 16:30:30 »
Na Fedoře pustím `pavucontrol` a změním výstupní zařízení pro konkrétní aplikaci. Přesměrování si řeší pulseaudio / pipewire a aplikace nic nepozná. Je tam pochopitelně malý výpadek zvuku, musí se znovu naplnit buffery atd.

60
Sítě / Re:Divná elektřina v bytě rozbíjí síť
« kdy: 29. 05. 2022, 22:07:21 »
Proudový chránič se nezesiluje. Ten vyletí, když něco probíjí (max 30 mA přes zem). Může teda být starý a vadný, to jo. Ale to bych spíš tipoval na tu troubu.

To rozhození sítě je pak něco jiného. Nepřiděluje to wifi AP třeba IP adresy i těm switchům? A vyletí ten switch co je připojený napřímo k wifiAP a ten druhý ne? Není to reakce na ztrátu linky?

Stran: 1 2 3 [4] 5 6 ... 12