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 - fortran1986

Stran: 1 2 3 [4] 5 6 ... 18
46
Hardware / Aký telefón s eSIM?
« kdy: 29. 08. 2021, 12:31:53 »
Ahojte chcel by som si kúpiť telefón s eSIM. Ktorý model by ste mi doporučili? Telefón by mal mať aspoň fullHD+ rozlíšenie (viac výhodou) 6 GB ram alebo viac a 64GB úložisko, alebo viac. Display by mohol mať cca 6,5 palcu. Taktiež batéria aspoň 5000mAh. Chcem len telefón s Androidom na iOS nie som zvyknutý. Doteraz som mal Blackberry potom, Xperie a niekoľko Xiaomi a teraz mám Samsung, ale a už ďalší Samsung nechcem, lebo ma sklamala veľmi slabá výdrž batérie (prakticky každý deň ho musím nabíjať) chcel by som telefón čo mi vydrží aspoň 2 - 4 dni na jedno nabitie. Na hry to nepotrebujem ale ak by to malo vyššiu frekvenciu displeja aspoň 90Hz tak by som nebol proti. Ale neni to podmienka.

Takže by som poprosil nejaké tipy na telefón s Androidom s eSim. Alebo ak máte nejaký zoznam telefónov s eSIM tak poprosím o odkaz. Pretože, tam kde som hľadal, v technických špecifikáciách eSIM nebolo uvedené a doslova každý model som si musel prelustrovať googlom.

Našiel som síce túto stránku https://esim2fly.com/esim-supported-devices/ kde sú uvedené telefóny s eSIM, ale nechce sa mi veriť že tento štandard podporuje len tak málo modelov.

47
Vývoj / C++ using v hlavičke šablóny
« kdy: 17. 08. 2021, 16:35:42 »
Ahojte, občas by som si chcel sprehladniť kód a zabrániť zbytočnému prepisovaniu rovnakého kódu a tak v C++ pomerne veľa používam typové aliasy. Problém je, že v hlavičke šablóny typový alias definovať nemôžem, alebo hej? Uvediem príklad kedy by sa mi hodil typový alias:

Kód: [Vybrat]
template <
typename BeginRecordType,
typename RecordType = BeginRecordType,
typename ...Args
>
using _Table = Table<BeginRecordType, RecordType, Args...>; // už tu by sa mi hodilo definovať typový alias
class Table : public ranges::view_facade<_Table>
{
public:
using QueryList = std::tuple<Args...>;
        // kod triedy...
}

To isté platí aj pre hlavičku template funkcie (alebo metódy), kde by sa mi zase hodil alias na skrátenie názvov typov v pri argumentoch funkcie. Ako tento problém riešiť? Existuje nejaké čisté riešenie (na úrovni jazyka?) alebo to mám nejako ohackovať preprocessorom?

48
...

...

Ďakujem Vám za odpovede.

Nechci se navážet, ale toto je fakt trochu triviální otázka.

Ešte predtým som si o tom niečo hľadal. Akurát internet je plný poloprávd a nepresností. Diskusia je lepšia, tu keď niekto dá nepresné, alebo nesprávne vysvetlenie, tak ho ostatní opravia. A navyše, občas sa tu dozviem, aj ďalšie užitočné informácie, na ktoré ma ani nenapadlo sa pýtať.

49
Je nejaký rozdiel medzi constexpr funkciou a inline funkciou? Alebo je to to isté? A ak je tak aký?

50
Vývoj / Re:C++ Appendovanie parameter packs
« kdy: 07. 08. 2021, 19:09:04 »
Ahojte, any ani variant som nakoniec nepoužil, prepísal som to na tuple a po niekoľko hodinovom googlení a pozeraní príkladov, som sa dopracoval k tomuto riešeniu:

https://pastebin.com/adVfRz8k

Ešte to upravím. walkValues bude niečo spracovávať a spolu s Fetch() bude vracať hodnotu, v reálnom kóde budem do tuple ukladať funkcie.

51
Vývoj / Re:C++ Appendovanie parameter packs
« kdy: 07. 08. 2021, 12:52:38 »
Co třeba něco takového?
Kód: [Vybrat]
...

Ďakujem za príklad dosť mi pomohol, keďže v pokročilejšom používaní šablón zatiaľ vôbec nie som doma, ale trošku som ho upravil pre svoje potreby:

Kód: [Vybrat]
#include <iostream>
#include <vector>
#include <utility>
#if __has_include(<any>)
#include <any>

using any = std::any;
#elif __has_include(<experimental/any>)
#include <experimental/any>
using any = std::experimental::any;
#else
static_assert(false, "The std::any type is required");
#endif

template <typename... Args>
class PackClass
{
private:
    std::vector<any> m_values;
public:

    PackClass(Args&& ...args) :
        m_values{ args... }
    {
    }

    template<typename T>
    PackClass(std::vector<any> values, T value) :
        m_values(
            std::move(values)
        )
    {
        m_values.emplace_back(
            value
        );
    }

    template<typename T>
    PackClass<Args..., T> Append(T value) const
    {
        return PackClass<Args..., T>(
            m_values,
            value
        );
    }

    size_t Count() const
    {
        return m_values.size();
    }

    std::vector<any> ToVector() const
    {
        return m_values;
    }

    auto Fetch()
    {

    }
};

int main()
{
    auto object = PackClass{ 3, std::string("TestString"), 'c' };
    auto obj = object.Append(3.5);
    std::cout << obj.Count() << std::endl;
    auto lastItem = std::any_cast<double>(obj.ToVector()[obj.Count() - 1]);
    std::cout << "Test: " << lastItem << std::endl;
    //auto value = obj.Fetch();
    return 0;
}

  • Parameter pack som premiestnil nad classu keďže typovú informáciu budem potrebovať aj pri spracovaní uložených typov
  • V prvom konštruktore pri m_values som vymenil () za {} nakoľko s tými pôvodnými zátvorkami to nešlo skompilovať ani Clangom (verzia C++ 17) ani MSVC (verzia C++ 17)
  • Teraz budem musieť vyriešiť ešte jeden problém: nejako pomocou fold expressions, prejsť typy parameter packu. Následne hodnotu typu std::any pomocou std::any_cast<cleovy_typ> musím skonvertovať na správny typ. A keďže na cielovej platforme nemám k dispozícii RTTI bohužiaľ nemôžem typy porovnávať takto: if (m_values.type() == typeid(nejakyTyp)) budem tie typy musieť získať nejako cez compiler. S tým teraz bojujem. Asi by som si mal objednať nejakú knihu pokročilom používaní šablón, type traitov a metaprogramovaní v C++, lebo toto je momentálne oblasť C++ v ktorej ešte nemám jasno.

Google je tvůj kamarád:

https://stackoverflow.com/questions/687490/how-do-i-expand-a-tuple-into-variadic-template-functions-arguments

Vďaka za odkaz pozriem. Ja som tých prelúskal, už dosť veľa ale priznávam sa bez mučenia že v metaprogramovaní v C++ mám veľké rezervy. Zatiaľ sa to učím googlením a metódou pokus omyl. Templaty sú omnoho ďalej ako generics na ktoré som zvyknutý z vyšších jazykov.

52
Vývoj / C++ Appendovanie parameter packs
« kdy: 07. 08. 2021, 01:17:16 »
Kód: [Vybrat]
template <typename... Args>
class PackClass
{
private:
    std::tuple<Args...> values;
public:
    PackClass(Args&& ...args) :
        values(args...)
    {

    }

    template <typename T>
    PackClass<Args..., T> Append(T value)
    {
        return PackClass<Args..., T>(/* riešenie problému */...);
    }
};

Dobrý deň prajem, chcel by som mať šablónu triedy, kde do konštruktora chcem mať možnosť nainjektovať argumenty hociakého typu. Tie argumenty, by sa niekam uložili v (mojom prípade je to tuple, ale kludne sa môžu uložiť hocikam inam) a po zavolaní metódy Append by sa vytvorila rovnaká trieda, do ktorej by sa cez konštruktor pridali uložené hodnoty a zároveň by sa k nim na koniec pridala ďalšia hodnota a spolu s hodnotou by sa dosadil ďalší typ medzi template parametre. Robím si fluent interface do ktrého chcem vkladať lambdy (std::function) rôznych typov a na záver ich všetky aplikovať na nejakú hodnotu, ale žiaľ robím to na platforme kde nemám k dispozícii RTTI* ani C++ 20 (mám len 17ku) takže musím sa trochu uskromniť. V mojom prídklade je problém na treťom riadku od spodu kde sa snažím dosadiť tuple, ale neviem ako ho skonvertovať na parametre konštruktoru a pridať tam ďalší paramter

53
CISC tu bude IMHO ešte hodne dlho, minimálne tam kde sa vyžaduje výkon - na desktopoch, herných počítačoch, konzolách, práci s multimédiámi a pracovných staniciach. Síce Intel zaspal na vavrínoch, ale naštastie AMDčko ťahá architektúru ďalej. Škodaže na trhu X86/AMD64 neni toľko hráčov ako v 80tych a 90tych rokoch (popri Inteli a AMD aj Cyrix a NexGen a IBM a NEC) tam kde chýba konkurencia, je bohužiaľ menšia dynamika vývoja.

ARM - RISC Architektúra veľmi šetrná ka životnému prostrediu. Pôvodne vznikla ako CPU pre domáce počítače. v 90tych rokoch ARMy dominovali PDA (StrongARM v Psion Series 5), PocketPC a Handledom, ale najvačšiu slávu získali po roku 2007 vďaka dotykovým mobilným zariadeniam, veľkú reklamu jej urobili Apple svojim iPhonom a Samsung či NVIDIA. Má omnoho lepší pomer cena výkon spotreba. Veľkí hráči ako NVIDIA, Microsoft, Apple, Samsung, Google čím ďalej tým viac presadzujú ARM. Momentálne ARMy vládnu, nie len mobilom, tabletom, set top boxom, IoT zariadeniam (Raspbarry PI, NVidia Jetson, Rock Pi) ale presadzujú sa aj v Laptopoch a čím ďalej tým viac majú potenciál dostať sa aj trh aj plnohodnotných výkonných desktopov a herných konzol. Okrem iOS a Androidu je už na ARMe doma aj Desktopový Linux, Windows 10/11, MacOS. mimochodom ako to dopadlo s kúpou ARMu NVIDI-ou?

RISC V - otvorená RISC architektúra, vraj má byť ešte šetrnejšia a ekonomickejšia ako ARM. Žiaľ zatiaľ je ešte len v plienkach a je veľmi málo rozšírená. Na trhu je zatiaľ len pár developer boardov (SiFive HiFive Unmatched, BeagleV) a dosť veľa microcontrollerov - pre IoT (ESP32-C3, ESP32-C6, Sipeed Maixduino AI, Huawei Hi3861, LoFive RISC-V). Intel po tom ako stráca pozície na trhu X86/AMD64 hľadá nové trhy a dokonca kúpil startup vyvýjajúci RISC V. Huawei vďaka Americkým sankciám (paradoxne aj napriek tomu že ARM je Britská firma) tiež poškuľuje po RISC V a možno sa okrem microcontrollerov raz dočkáme aj telefónu od s RISC V a Harmony OS. Otázka je či má zmysel venovať čas a energiu tejto architektúre, lebo vôbec neni jasné či sa presadí. Žiaľ trh zložený s ľudí a človek nie je "homo economicus" ktorý by si vyberal vždy objektívne najvýhodnejšie riešenie, takže nad rozšírením tejto architektúry zatiaľ visí veľký otáznik. No ekonomický intervencionizmus, sankcie a rôzne obchodné vojny by jej paradoxne mohli pomôcť.

54
Software / Crypto peňaženka na sporenie s časovým spínačom
« kdy: 27. 07. 2021, 22:00:44 »
Viete o nejakej crypto peňaženke na sporenie, ktorá by sa zablokovala na nejaký čas (ktorý si nastavím) a počas toho času by som si nevedel previesť crypto na inú adresu a po ubehnutí času by sa odblokovala? Peňaženka by mala podporovať bežné kryptomeny ako Bitcoin, Ethereum, Cardano, Monero, ZCash Polkadot a Solana, Uniswap, mohla by podporovať aj nejaké stable Coiny a tokeny ako napr PAXG, USDT atď

55
Hardware / Re:PC sestava pro grafickou práci (Adobe)
« kdy: 23. 06. 2021, 20:34:22 »
Nejsem věštec, ale nemyslím si, že by Apple přecházel jen na M1. Možná u mobilních zařízení, částečně u MacBooku, ale že by úplně přešel na M1 či nějaký sh**t AMD, tak toho se opravdu nebojím.

V roku 2021 mu radíte stroj s Intelom?, srsly?

56
Vývoj / Konverzia std::functiohn na function pointer
« kdy: 21. 06. 2021, 19:00:23 »
Ahojte dá sa nejako skonvertovať?

Kód: [Vybrat]
using HttpCallback = std::function<void(HTTPRequest*, HTTPResponse*)>

Kód: [Vybrat]
using HttpCallbackPtr = void(*)(HTTPRequest*, HTTPResponse*)

Potreboval by som použiť lambdu na mieste kde sa dá použiť len klasická funkcia. Objavil som síce spôsob ako to skonvertovať cez std::function.target<>, ale ten by mal fungovať len so zapnutým RTTI, lenže zo zapnutým RTTI, mi zaser linker hádže chybu ako som uviedol v predchádzajúcom diskusnom threade: https://forum.root.cz/index.php?topic=24918.0

Takže by som potreboval buď rozbehnúť kompiláciu s RTTI, alebo nájsť iný spôsob ako skonvertovať std::function

Tuná je úrivok kódu:

Kód: [Vybrat]
using HttpCallbackPtr = void(*)(HTTPRequest*, HTTPResponse*);
using HttpCallback = std::function<void(HTTPRequest*, HTTPResponse*)>;

void registerRoutes()
{
    HttpCallback httpCallback = [](HTTPRequest* request, HTTPResponse* response) -> void {

    };

    auto callbackPtr = httpCallback.target<HttpCallbackPtr>();
    server->registerNode(new ResourceNode("/", "GET", *callbackPtr));

57
Vývoj / Problém pri linkovaní pri so zapnutým RTTI
« kdy: 21. 06. 2021, 18:36:26 »
Ahojte snažím sa skompilovať jednu appku ale v libke esp32_https_server je problém s kompiláciou resp. linkovaním ako zapnem rtti. Pri vypnutom RTTI kompilácia funguje, ale keď ho zapnem, tak mi to na konci linkovania hádže takúto chybu viď obrázok:

http://pluton.cloud/attachment/568dec82-140e-41db-afd0-08bfb42f9fe9/chyba-1.png

Kód: [Vybrat]
Linking .pio\build\az-delivery-devkit-v4\firmware.elf
.pio\build\az-delivery-devkit-v4\libac6\libesp32_https_server.a(WebsocketInputStreambuf.cpp.o):(.rodata._ZTIN11httpsserver23WebsocketInputStreambufE[typeinfo for httpsserver::WebsocketInputStreambuf]+0x8): undefined reference to `typeinfo for std::basic_streambuf<char, std::char_traits<char> >'
collect2.exe: error: ld returned 1 exit status
*** [.pio\build\az-delivery-devkit-v4\firmware.elf] Error 1

Chyba je niekde v tomto *.cpp súbore:

https://github.com/fhessel/esp32_https_server/blob/master/src/WebsocketInputStreambuf.cpp

A tu je k nemu hpp header file:

https://github.com/fhessel/esp32_https_server/blob/master/src/WebsocketInputStreambuf.h

Neviete ma nejako naviesť ako tento problém fixnúť? Potreboval by som mať zapnuté RTTI.

58
Hardware / Re:Pekné krabičky pre elektroniku
« kdy: 18. 06. 2021, 10:23:25 »
Ďakujem Vám za odpovede resp. nasmerovanie.

59
Hardware / Pekné krabičky pre elektroniku
« kdy: 18. 06. 2021, 00:47:11 »
Ahojte neviete o nejakom eshope, v ktorom predávajú pekné štýlové obaly pre elektroniku? Ale fakt by mali byť pekné, aby to nevyzeralo, tak nudne ako niektoré cases pre RPi a Arduino.

Potreboval by som spraviť 10 ks prototypov jedného zariadenia a chcem aby vyzeralo profesionálne.

predstavujem si to nejako takto:

https://xiaomi-store.sk/sk/smart-home/1384-xiaomi-mi-smart-home-hub-6934177710872.html?gclid=Cj0KCQjw5auGBhDEARIsAFyNm9Edstvkn4Spp6mbtBuUahd6_X0taA9S56czNQDlchLuxr9We3VsZtgaAtOqEALw_wcB

Prípadne ďalšia možnosť by bola kúpiť si 3D model a nechať si ho vytlačiť na 3D tlačiarni.

60
Hardware / Re:ESP32 externá anténa
« kdy: 17. 06. 2021, 17:48:46 »
IMHO jde taky o to aby se ta ext. anténa vůbec použila a aby tam nebyly přeslechy apod.
Takže jestli není lepší použít modul s hotovým konektorem?


Nebo desku


Případně modul a k tomu desku/adaptér:


Dobrý deň ďakujem Vám za tipy, ja viem že je na trhu veľa dosiek s anténnym konektorom no keď už mám doma toľko dosiek, chcem len vyskúšať či by sa na tom nedalo komunikovať s Helium sieťou a až potom ak mi to bude fungovať tak si objednám dosky s anténnym konektorom, na 99,99% si ajtak myslím že to nebude fungovať.

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