Задать вопрос
  • Как сделать проверку на SqlConnection и передавать его в другие WinForms?

    1. При попытке подключиться с неправильным паролем, должно выпасть исключение в месте, где ты вызываешь метод Open()

    SqlException
    A connection-level error occurred while opening the connection. If the Number property contains the value 18487 or 18488, this indicates that the specified password has expired or must be reset.


    2. У SqlConnection есть свойство State, которое описывает, в каком состоянии находится соединения.
    ConnectionState - это не просто enum, а enum с флагами, так что соединение может находиться сразу в нескольких состояниях одновременно (в теории)
    На самом же деле оно может быть только Closed, Connecting, и Open.

    Источники:
    https://learn.microsoft.com/en-us/dotnet/api/syste...
    https://learn.microsoft.com/en-us/dotnet/api/syste...
    https://learn.microsoft.com/en-us/dotnet/api/syste...
    Ответ написан
    Комментировать
  • Вопрос о тестах. Что вы об этом думаете?

    Проблема такого теста в том, что он тестирует сразу две вещи:
    1. Что работает api
    2. Что работает Model::factory()->make()->toArray(), которая генерирует аргументы для вызова api

    От этого возникают следующие проблемы:
    1. Без изменения кода api у тебя тест может неожиданно начать падать и наоборот.
    Например ты поменял названия параметров. Тест зелёный, тк фабрика генерит параметры, а клиенты все теперь 400-е ошибки получают.
    Контракт получается незафиксированный.
    2. Ты не можешь при таком подходе нормально проверить негативный сценарий и граничные значения.
    Чтобы их проверить - тебе всё также придётся отказаться от Model::factory()->make()->toArray() и составлять параметры руками.

    Вообще, api-тесты часто пишут вообще без привязки к коду - при помощи сценариев для postman например.
    Ответ написан
    Комментировать
  • Если один из собеседников в Telegram заблокирует другого, автоудалится ли в этом случае вся переписка у обоих собеседников?

    Инициатор при блокировке переписки сразу может и удалить всю переписку с обоих сторон - это же сразу предлагает телега сделать, и можно сделать потом.
    Ответ написан
    4 комментария
  • Аутентификация. Отсебятина или единообразие?

    Вы не первый, у кого такой вопрос возник.

    https://habr.com/ru/post/506092/

    Возможно, тут заимствование не из английского шло
    Ответ написан
    Комментировать
  • Как вырасти из простого инженера в управленца?


    Есть цель занять руководящую должность.
    Пробовал больше работать и брать больше обязанностей, этот совет часто дают. Но за последние полтора года
    похвалы типа: "Молодец, хороший мальчик" не получил.

    А вы своему руководству об этой своей цели пробовали рассказывать?
    Опять же - если конкретно в вашей компании с вертикальным ростом всё сложно (например нельзя продвинуться выше, пока твой собственный же начальник не уволится или не перейдёт на другую должность), то остаётся только менять компанию.
    И в следующий раз уже заявлять о своей цели.
    Во многих крупных негосударственных компаниях имеются механизмы по обучению руководителей.

    + Менеджмент - это вообще не "взять на себя больше ответственности и больше, продолжая оставаться инженером"
    Таким образом ты будешь оставаться инженером, хоть и очень хорошим.

    Это больше про умение поставить измеримую и достижимую цель/задачу, которая поможет достичь какой-то другой более глобальной цели (увеличить прибыль например) и про распределение имеющихся ресурсов (например человеко-часов и разных бюджетов)
    Ответ написан
  • Как перенести разметку текста из html файла в приложение wpf?

    Если там прям css+html, то я бы попробовал WebView2. Тогда никакой проблемы с картинками и стилями не будет.

    Ещё можно попробовать какой-нибудь HTML Text Block:
    https://blogs.u2u.be/diederik/post/A-Rich-HTML-Tex...

    Последний вариант - спарсить HTML при помощи AngleSharp и динамически нагенерить нужную разметку в XAML.
    Ответ написан
    4 комментария
  • Не хожу на работу, но меня не увольняют и не платят зарплату, как быть?

    Меня же должны уволить за прогулы, но не уволили.

    Чтобы уволить за прогулы - надо ещё письменно эти прогулы зафиксировать, с подписями свидетелей прогула, а потом тебе этот выговор вручить.

    То что ни разу зп не платили - это вопрос. И странно что вам 3 месяца об этом ни hr ни кто либо ещё не сказал.

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

    И как мне быть, чтобы эти засранцы меня уволили наконец.

    Отправьте заявление на увольнение по собственному желанию заказным письмом на юридический адрес этой компании (не самого банка, а именно той, куда трудоустроены).
    Ответ написан
  • Не работает цикл, что делать?

    Цикл работает ровно так, как ты и написал:
    while True: # условие 
         b = random.randint(1, 2) # тело
    
    # а эти if-ы уже идут после цикла, но тк цикл вечный - до сюда выполнение не дойдёт
    if b == 1:
        print("Поздравляем! Вы получили 1 btc :)")
        btc = btc + 1
        sp(0.1)
    
    if b == 2:
        print("Не повезло :( попробуй подождать")
        btc = btc * 1
        sp(0.1)


    В итоге он мне пишет приветствие, которое я написал ранее и застывает.

    Ещё возможно, что он ждёт, что ты что-то напишешь в консоли:
    print("Привет! Чтобы начать майнить напиши 'да' ")
    a = input()
    Ответ написан
    Комментировать
  • Как компилятор переводит ЯП в инструкции?

    1. Под инструкциями понимается машинный код (читай ассемблер). Найти их все можно в руководствах к архитектуре процессора. Вот пример от интела: https://www.intel.co.uk/content/dam/www/public/us/...

    2. А про то как работают компиляторы ты можешь узнать из множества статей и из книги с драконом.
    Всё-таки всю теорию в рамках ответа на вопрос сложно будет рассказать.
    img.php?dir=8ddac593b0fb9b80034790b02081e2a5&file=1.png
    Ответ написан
    2 комментария
  • Есть ли бесплатные api для распознавания адреса по фото?

    Прикол geoguessr в том, что там ограниченный набор локаций, которые повторяются.
    Можно тупо заучить все точки и их отличительные черты.

    В общем случае задача практически нерешаемая и таких апишек вроде нет.
    Вроде Google Lens умеет определять достопримечательность по фото, но он вроде ещё геолокацию пользователя берёт.
    Ответ написан
    Комментировать
  • Какие есть аналогичные программы песочницы sandboxe способные запустить аллоды онлайн?

    Любая ВМ, которая умеет пробрасывать видеокарту внутрь.
    Тебе нужно будет ещё вторую видеокарту иметь для этого.
    Ответ написан
    2 комментария
  • Как поменять порядок битов в байте C?

    Только при помощи битовых масок и сдвигов, если в ассемблер не упарываться:
    int8_t byte = 0xAA; // 0b10101010
    int8_t result = 0;
    result = result | ((0x80 & byte) >> 7);
    result = result | ((0x40 & byte) >> 5);
    result = result | ((0x20 & byte) >> 3);
    result = result | ((0x10 & byte) >> 1);
    result = result | ((0x08 & byte) << 1);
    result = result | ((0x04 & byte) << 3);
    result = result | ((0x02 & byte) << 5);
    result = result | ((0x01 & byte) << 7);
    // result = 0b01010101
    Ответ написан
  • Обязательно ли добавлять службу и в builder и в app?

    AddCors - добавляет службу в IServiceCollection.
    UseCors - говорит аспнету, что нужно ещё добавить соответствующий middleware в конвеер обработки запроса.

    Так что да, обязательно.
    Если вызвать только AddCors - служба будет добавлена в контейнер, но никак не будет использоваться.
    Если вызвать только UseCors - во время конструирования конвеера возникнет исключение, тк aspnet не сможет получить необходимые зависимости.
    Ответ написан
    1 комментарий
  • Почему следующая программа возвращает правильное значение типа только в 3-м случае?

    почему первые два возвращают System.Object и как это можно исправить?

    Потому-что dynamic под капотом - это на самом деле Object и куча рефлексии.
    List<dynamic> - это на самом деле List<object> (можешь загнать в sharplab и убедиться в этом)

    Исправить это можешь только отказавшись от dynamic (а лучше вообще забыть о его существовании. Крайне сломанная фича, которая путём говнокода позволяет в некоторых случаях сэкономить строчки)

    Например, если нельзя трогать ClientViewModelNew и ClientViewModelOld, то можно попробовать так:
    public interface IClientViewModel {
      public string EXa { get; set; }
    }
    
    public class ClientViewModelNewWrapper: IClientViewModel {
      private readonly ClientViewModelNew _internal;
      public ClientViewModelNewWrapper(ClientViewModelNew obj) => _internal = obj;
      public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
    }
    
    public class ClientViewModelOldWrapper: IClientViewModel {
      private readonly ClientViewModelOld _internal;
      public ClientViewModelNewWrapper(ClientViewModelOld obj) => _internal = obj;
      public string EXa { get => _internal.EXa; set => _internal.EXa = value;}
    }
    Ответ написан
  • Можно ли защитить изображения на сайте?

    Закон об интеллектуальной собственности и так защищает от этого - если вы явно не разрешали, значит запрещено.
    Вам остаётся только искать нарушителей и подавать на них в суд.
    Ответ написан
    Комментировать
  • Есть ли где-то статистика по количеству активных https сайтов?

    Гугл, опираясь на свою статистику с хромом, говорит, что 95%+ сайтов используют https (что не удивительно. Ведь хром очень сильно ругается, если решишь зайти на http)

    Но эта статистика не учитывает интранет, где http всё ещё более чем оправдан.
    Ответ написан
  • Как присвоить значения переданным переменным из C#?

    Поправил ваш код, чтобы он работал:
    #define sizeof_var( var ) ((size_t)(&(var)+1)-(size_t)(&(var)))
    
    extern "C" bool __declspec(dllexport) someFunction(std::string source, int64_t* num, int 64_t* num2) {
        std::vector<char> bytes(source.begin(), source.end());
        bytes.push_back('\0');
        char* c = &bytes[0];
        *num = *c; // ???
        *num2 = sizeof_var(c);
        return true;
    }


    Мне кажется, вы хотите чего-то странного.
    Расскажите подробнее, зачем вам это.
    Вполне возможно, что для этого не нужно использовать pinvoke
    Ответ написан
    Комментировать
  • В каких браузерах и устройствах работает push уведомления FCM?


    FCM от google поддерживает отправку только на гугловские устройства и браузеры или не только?

    В те браузеры, которые поддерживают веб пуши.
    В Safari на iOS они не поддерживаются.
    Так что тебе имеет смысл для iOS делать приложение
    Ответ написан
    Комментировать
  • В чем практический смысл тестирования?


    Какие тесты нужно было сделать, чтобы предотвратить этот баг?

    Такие дефекты, обычно, отлавливаются при помощи ручного тестирования.

    Но искать визуальные баги в тексте в играх - это очень дорогое занятие, тк нужно сценарии прогонять на десятках разных конфигураций (разрешение экрана/масштабирование интерфейса/язык)
    => поиск такого бага до выпуска новой версии будет занимать много времени => это будет очень дорого.
    Что вообще не соотносится с его критичностью.

    Ещё можно попробовать скриншотное тестирование - может быть будет дешевле в плане человеческих ресурсов, но всё равно очень дорого в плане железных ресурсов и не гарантирует надёжность (скриншотные тесты известны своей нестабильностью), да и не очень популярны они в играх (ибо инструментов нет), и из-за обилия анимаций они будут очень сложны в поддержке.

    А так да - тут скорее архитектурная проблема и дизайнер не учёл, как должно работать переполнение строки в этом случае.


    Так в чем практический смысл тестирования? Где оно нужно, когда даже крупнейшие компании допускают явные баги на главном экране игры (а там про команды с миллионными бюджетами).

    Ты не учитываешь множество других, более критичных дефектов, которые не попали в релиз как раз благодаря тестированию.

    Игры тут не самый лучший пример, тк их тестирование несколько отличается от тестирования обычного ПО своей количественной (очень много чего может сломаться) и качественной (много что сложно проверить) сложностью, а также количеством различных граничных значений.
    + в играх есть рандом, который может в неожиданных местах всё сломать.
    Ответ написан
    Комментировать
  • Не правильное время в Manjaro?

    В общем тут была ошибка в американском формате дат.
    Автор, видимо, написал 08/12/2022, держа в голове 8 декабря.
    Но в американском формате это получилось 12 августа
    Ответ написан
    2 комментария