• Актуальна ли книга С# 6.0 если уже есть 9.0?

    Griboks
    @Griboks Куратор тега C#
    Пффф... Продолжение фразы "покупать справочник" в принципе не имеет смысла. Вот ваш справочник навсегда. Вот расширенная версия, если вам что-то будет непонятно.
    Ответ написан
    Комментировать
  • Охлаждение процессора или че с ним не так(5600x)?

    xez
    @xez
    TL Junior Roo
    Вообще, 70 градусов - многовато, но абсолютно не критично.
    Скорее всего либо плохо установлен куллер или намазана термопаста; или куллер не тащит.
    Можно купить новый куллер хороший и это должно помочь.
    А можно забить ничего не делать - у вас ПК в сборе - на него должна быть гарантия (да и 70 градусов процессор не убьет).
    Ответ написан
  • Возможно ли программно написать часы без использования библиотек?

    mixatronik
    @mixatronik
    mixatronik.ru
    Библиотека - это набор функций написанных на каком-то языке программирования. Если кто-то их написал, то сможет и другой. Всё можно, но непонятна сама постановка задачи. Что значит "написать часы"? Выводить на экран значения системного времени? Или самому считать секунды, складывать их в минуты и т.д.? Всё равно к чему-то привязываться нужно.
    Ответ написан
    Комментировать
  • Как разобрать и достать нужные значения из Expression?

    @kttotto
    пофиг на чем писать
    Ответ написан
    Комментировать
  • Почему Typescript считает аргумент функции корректным?

    @Sun_Day
    Насколько я помню, это известная проблема в тайпскрипте. Здесь нет такой точности типов на уровне дизайна языка, но то что вы ожидаете есть во Flow.
    Обсуждалось здесь:
    https://github.com/Microsoft/TypeScript/issues/12936
    Почти 5 лет, да, взгляните на количество ишьюс). Все обсуждение не читал, руки не доходят, но вроде подвижки есть.
    Ответ написан
    Комментировать
  • Должен ли исполнитель разворачивать проект на сервере если этого не было указано в тз?

    Sanes
    @Sanes
    Не должен.
    Другое дело, что это не должно быть для вас проблемой. Разработчик должен уметь разворачивать окружение.
    Ответ написан
    6 комментариев
  • Как понять достоин ли ты более лучшей зар.платы или ещё не дорос и не надо высовываться даже?

    opium
    @opium
    Просто люблю качественно работать
    Чувак о каком достоин может быть речь если тебе не хватает грубо говоря на Доширак чтобы не умереть с голоду?
    Тебе повышения зп процентов на 50 чтобы не умереть вот и все, о каком достоинстве может идти речь?
    Или может ты их какого то знатного рода, тогда зачем ты работаешь за еду.
    Я понимаю когда там программист получает 200к и задаётся вопросом может я достоин получать 600к

    В таком случае речь идёт о выживании, либо поднять зп на текущем месте либо устроиться на новую работу и тут думать даже не о чем
    Ответ написан
    21 комментарий
  • Нужна помощь с тех. заданием. Что гуглить?

    Хотят консольное приложение, которое отправляет данные веб-сервису через вебсокет.
    Веб-сервис хотят, который принимает данные из консольного приложеня через вебсокет.
    Azure функцию хотят, которая обрабатывает информацию из веб-сервиса. Использовать базу данных ms sql server, и linkToDb для взаимодействия с базой данных.
    Ответ написан
    Комментировать
  • Стоит ли учить WordPress в 2021 году?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Парень, тебе вообще нет смысла что-либо учить в ИТ.

    Ты два года назад спрашивал что учить.
    Ты год назад хотел что-то учить (Angular 8 — какие ресурсы для обучения посоветуете?)

    Зачем ты снова спрашиваешь, все равно ничего не будешь делать, если для тебя даже посмотреть 240 часов видяшек за год - нереальная проблема.
    За два года люди из джунов становятся мидами, а ты до сих даже не определился что учить.
    Ответ написан
  • Стоит ли учить WordPress в 2021 году?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Стоит ли в 2021-м управлять карьерными самосвалами? Или сразу садиться за штурвал моторного катера? Вы сравниваете разные вещи с разными областями применения.
    Ответ написан
    1 комментарий
  • Как сделать, чтобы конструктор при определённых условиях не компилировался — а не сваливал на runtime?

    @Mercury13 Автор вопроса
    Программист на «си с крестами» и не только
    Вот действующий код.
    Хоть он на 20, простейшими define’ами (consteval → constexpr, constinit → пустота) можно собрать его и на 17.
    #include <iostream>
    #include <array>
    #include <string>
    
    enum class FromRawMem { INST };
    enum class NoValue { INST };
    
    #define consteval constexpr
    
    
    class Char4
    {
    public:
        using CppArray = std::array<char, 4>;
        constexpr explicit Char4(NoValue) : fBuf { { 0, 0, 0, 0 } } {}
        consteval Char4(const char (&x)[5]) : fBuf { { x[0], x[1], x[2], x[3] } } {}
        constexpr Char4(const Char4&) = default;
        Char4(FromRawMem, const char* data) { fBuf.asInt = *reinterpret_cast<const uint32_t*>(data); }
        constexpr const CppArray& toAr() const { return fBuf.asAr; }
        CppArray& toAr () { return fBuf.asAr; }
        constexpr std::string_view toSv() const { return { fBuf.asAr.data(), 4 }; }
    
        /// @return  byte-order dependent integer value
        /// @warning
        ///    DO NOT save toRawInt() as Intel, Motorola or any numeral system (decimal etc).
        ///    You MAY save it as raw memory, or use it for optimization.
        constexpr uint32_t toRawInt() const { return fBuf.asInt; }
        constexpr const char* data() const { return fBuf.asAr.data(); }
    private:
        union {
            std::array<char, 4> asAr;
            uint32_t asInt;
        } fBuf;
    };
    
    constexpr inline bool operator == (Char4 x, Char4 y) { return x.toRawInt() == y.toRawInt(); }
    constexpr inline bool operator != (Char4 x, Char4 y) { return x.toRawInt() != y.toRawInt(); }
    constexpr inline bool operator == (Char4 x, std::string_view y)
            { return y.size() == 4 && x.toRawInt() == *reinterpret_cast<const uint32_t*>(y.data()); }
    constexpr inline bool operator != (Char4 x, std::string_view y)
            { return !operator == (x, y); }
    constexpr inline bool operator == (std::string_view x, Char4 y)
            { return operator == (y, x); }
    constexpr inline bool operator != (std::string_view x, Char4 y)
            { return !operator == (y, x); }
    
    
    /// Size of enum class, no generic implementation.
    template <class Ec>
    constexpr size_t enumSize();
    
    namespace detail {
        /// Jut does not compile if arguments contain assignments
        constexpr int enumDummy(...) { return 0; }
    
        template <typename T, std::size_t...Is>
        consteval std::array<T, sizeof...(Is)>
        make_array(const T& value, std::index_sequence<Is...>)
        {
            return {{(static_cast<void>(Is), value)...}};
        }
    
        template <std::size_t N, typename T>
        consteval std::array<T, N> make_array(const T& value)
        {
            return make_array(value, std::make_index_sequence<N>());
        }
    }
    
    #define DEFINE_ENUM_SIZE(Name) \
        template <> constexpr size_t enumSize<Name>() { return static_cast<int>(Name::NN); }
    
    #define DEFINE_ENUM_N(Name, ...)  \
        enum class Name { __VA_ARGS__ };   \
        template <> constexpr size_t enumSize<Name>() { \
            enum Internal { __VA_ARGS__ , NNNNNN };  \
            detail::enumDummy(__VA_ARGS__);  \
            return NNNNNN; }
    
    
    enum class DummyElem { INST };
    enum class IncompleteArray { INST };
    enum class FillArray { INST };
    enum class PairwiseTempInit {INST };
    
    
    namespace detail {
        namespace array {
    
            template <auto K, class V>
            class KeyValue {
            public:
                static constexpr auto index = K;
                V && v;
                consteval KeyValue(V && aV) : v(aV) {}
            };
    
            // checkOneForRepeat
            template <class Ec>
            consteval void checkOneForRepeat() {}
    
            template <class Ec, Ec Only>
            consteval void checkOneForRepeat() {}
    
            template <class Ec, Ec First, Ec Second, Ec ... Rest>
            consteval void checkOneForRepeat()
            {
                static_assert(First != Second, "Repeating array keys!");
                checkOneForRepeat<Ec, First, Rest...>();
            }
    
            // checkForRepeat
            template <class Ec>
            consteval void checkForRepeat() {}
    
            template <class Ec, Ec Only>
            consteval void checkForRepeat() {}
    
            template <class Ec, Ec First, Ec Second, Ec ... Rest>
            consteval void checkForRepeat()
            {
                checkOneForRepeat<Ec, First, Second, Rest...>();
                checkForRepeat<Ec, Second, Rest...>();
            }
    
            template <class Ec, Ec ... args>
            consteval void checkKeys()
            {
                checkForRepeat<Ec, args...>();
            }
    
        }
    }
    
    template<auto K, class V>
    consteval auto kv(V && v) { return detail::array::KeyValue<K, V>(v); }
    
    
    template <class T, class Ec>
    class EcArray
    {
    public:
        static constexpr auto Size = enumSize<Ec>();
        using CppArray = std::array<T, Size>;
        using Elem = T;
        using iterator = Elem*;
        using const_iterator = const Elem*;
        constexpr CppArray& toAr() { return fBuf; }
        constexpr const CppArray& toAr() const { return fBuf; }
        constexpr Elem* data() { return fBuf.data(); }
        constexpr const Elem* data() const { return fBuf.data(); }
        constexpr size_t size() const { return Size; }
        constexpr iterator begin() { return fBuf.begin(); }
        constexpr iterator end() { return fBuf.end(); }
        constexpr const_iterator begin() const { return fBuf.begin(); }
        constexpr const_iterator end() const { return fBuf.end(); }
        constexpr const_iterator cbegin() const { return fBuf.begin(); }
        constexpr const_iterator cend() const { return fBuf.end(); }
    
        constexpr EcArray() = delete;
        constexpr EcArray(NoValue) {}
        constexpr EcArray(const EcArray&) = default;
        constexpr EcArray(EcArray&&) = default;
    
        EcArray& operator = (const EcArray&) = default;
        EcArray& operator = (EcArray&&) = default;
    
        template <class U>
        constexpr EcArray(NoValue, const U&& x) : fBuf {x } {}
    
        template <class ... Args>
        consteval EcArray(Args&& ... x)
            : fBuf { x... }
            { static_assert(sizeof...(Args) == Size, "EcArray size mismatch"); }
    
        template <class U, Ec K, class V, class ... Args>
        consteval EcArray(
                PairwiseTempInit, U&& temp,
                detail::array::KeyValue<K, V> first,
                Args&& ... rest)
            : fBuf { detail::make_array<Size, T>(temp) }
        {
            static_assert(sizeof...(Args) + 1 == Size, "EcArray pairwise size mismatch");
            detail::array::checkKeys< Ec, K, (std::remove_reference_t<decltype(rest)>::index)... >();
            initPairwise(first, rest...);
        }
    
    private:
        CppArray fBuf;
    
        consteval void initPairwise() {}
    
        template <Ec K, class V, class ... Args>
        consteval void initPairwise(
                detail::array::KeyValue<K, V> first,
                Args&& ... rest)
        {
            fBuf[static_cast<size_t>(K)] = T { first.v };
            initPairwise(rest...);
        }
    };
    
    
    DEFINE_ENUM_N( Letter, A, B, C )
    
    extern const EcArray <Char4, Letter> names2;
    
    //const EcArray <Char4, Letter> names { "alph", "brav", "char" };
    
    constinit const EcArray <Char4, Letter> names2
        { PairwiseTempInit::INST, Char4 { NoValue::INST},
          kv <Letter::A> ( "alp1" ),
          kv <Letter::B> ( "bra1" ),
          kv <Letter::C> ( "cha1" ) };
    
    
    int main()
    {
        std::cout << "Hello World!" << std::endl;
        return 0;
    }
    Ответ написан
    Комментировать
  • Ссылка на музыку ве без привязки по IP?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    Как ты декодируешь плейлист в музыку?
    Ответ написан
    1 комментарий
  • Можно ли считать стаж работы при разработке своего проекта?

    Да, можно, считай
    Если что, скажешь Влатька разрешил
    Ответ написан
    Комментировать
  • Можно ли перевезти комп в чемодане в поезде?

    @maximsemin23
    Ну монитор точно оберни. Что значит везти без корпуса? Просто детали по отдельности? Тогда каждую в пакет, а пакет в твердую коробку
    Ответ написан
    Комментировать
  • Как сделать графический интерфейс на Java, а логику на C#?

    @rPman
    Не нравится WFP, попробуй WinForms вдруг будет по душе?
    Java не лучшее место для создания UI, удобным я бы это не назвал

    Моста не будет, точнее любые средства создадут еще больше неудобств

    p.s. попробуй java mono
    Ответ написан
    Комментировать
  • Стоит ли платить налог при 100к в месяц?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Точно никто не ответит на данный вопрос.
    Есть мнение, что точно оформляться стоит, когда оборот в месяц достигает 600т.р.
    В принципе 100 тысяч это тоже хороший стабильный доход, поэтому уже можно. До 2млн/год можно как самозанятый. Если больше, то ИП. Если по твоему виду деятельности есть патент, тогда однозначно надо регать ИП + патент и не задумываться.

    В случае с PayPal есть слухи, что они могут забанить, если заподозрят предпринимательскую деятельность через их аккаунт. Это по сути - регулярные поступления на счёт от третьих лиц. Ни подтвердить, ни опровергнуть не могу. Сам предпочитаю через палку деятельность не вести. Только прямые переводы банк-банк.
    Ответ написан
    1 комментарий
  • Какие есть препроцессоры javascript?

    DevMan
    @DevMan
    coffeescript может и устарел, но последний релиз был всего год назад. и если вас устраивает его синтаксис и плюшки, можно и нужно его спокойно использовать.
    и дело не в устаревании, а в популярности (выстрелил он благодаря рельсо-хайпу, который упал).

    другое дело - сам жс за это это время подрос.
    Ответ написан
    9 комментариев
  • Можно ли перепрограммировать готовые контроллеры скуд и каким способом?

    15432
    @15432
    Системный программист ^_^
    Покупаете программатор ST-Link или J-Link и перепрограммируете, делов-то.

    Но вам придется создать для него собственную прошивку, на это могут уйти месяцы.
    Ответ написан
    Комментировать