• Запрос на удаление, что нём не так?

    @alexalexes
    DELETE FROM joom_user_usergroup_map -- m - забудьте про алиасы в делетах, пока работаете в MariaDB !
    WHERE NOT EXISTS (SELECT * FROM joom_users u WHERE u.id = joom_user_usergroup_map.user_id -- будьте добры указывать имя таблицы полностью, которую обрабатывает delete
    );
    Ответ написан
    3 комментария
  • Можно ли через VBA сделать отправку уведомлений на почту?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    На VBA можно написать вообще все, что угодно.

    Вот пример кода, отправляющего письмо:
    strMailReceiver = "pechkin@derevnya.ru"
    strMailServer = "10.7.1.6"
    
      Set objEmail = WScript.CreateObject("CDO.Message")
    
      objEmail.From = """Dyadya Fedor"" pes-i-kot@derevnya.ru"
      objEmail.To = strMailReceiver
      objEmail.Subject = "Figvam narisuem"
      objEmail.Textbody = strMailBody
    
      ' Send with SMTP server (1 - use local SMTP)
      objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    
      ' Specify SMTP server
      objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = strMailServer
    
      objEmail.Configuration.Fields.Update
      objEmail.Send
    Ответ написан
    2 комментария
  • Как лучше сохранять результаты логирования приложения NET?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Добавлю, что есть еще такая замечательная штука, как "сборщик логов" - то, что надо, если хочется собирать логи с нескольких разных источников. Например FluentD, Graylog, Nagios Log Server, NXlog, Elastic Stack: Elasticsearch, Kibana, Beats & Logstash, LOGalyze.
    Ответ написан
    1 комментарий
  • Как лучше сохранять результаты логирования приложения NET?

    @d-stream
    Готовые решения - не подаю, но...
    Serilog для .net - это как log4j для java.
    Если очень хочется универсальноентерпайзности - можно посмотреть в сторону log4net

    Собственно любой из помянутых логгеров умеет и в .txt и в .xml и в .json, а так же гадить в udp (syslog/graylog) и в другие известные коллекторы типа эластика/прометеуса/etc

    p.s. да и по-большому счёту логика и идеология работы у них сходна
    Ответ написан
    Комментировать
  • Как изменить атрибут html элемента через css селектор?

    miraage
    @miraage
    Старый прогер
    HTML аттрибуты нельзя менять через CSS. Только через JS.
    Ответ написан
    Комментировать
  • Как лучше сохранять результаты логирования приложения NET?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Nlog

    Кмк, он немного переусложнён.
    Я бы посмотрел в сторону стандартного Microsoft.Extensions.Logging или Serilog (но из кода всё равно обращаться к M.E.L.Abstractions)

    SQLite

    Зачем? Какую проблему ты хочешь решить применяя для логов полноценную субд, с которой к тому же не будут нормально интегрироваться другие инструменты для просмотра логов?

    На линуксе уже есть встроенная служба для логов - syslog, ей и пользуйся.

    Хотя опять же зависит от того, что за приложение и что за логи.
    Ответ написан
    2 комментария
  • Как лучше сохранять результаты логирования приложения NET?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    1. Про NLog давно не слышал - больше про Serilog (стильно, модно, молодежно)
    2. Если это системное какое-нибудь приложение, то лучше используй системный журнал, либо пиши в файл отдельный
    3. Если есть внешний сервер логов (ELK стек, Graylog и т.д.), то отправляй туда (посмотри в сторону агрегаторов логов, )
    4. Если это контейнерное (докер, например) приложение, то логируй в stdout/stderr, а потом собирай логи у самого контейнера. Также, докер можно настроить на формат хранения логов и место хранения (можно локально хранить, а можно и отправлять по сети)

    P.S. фреймворк по большей части не важен, но рекомендую связку Microsoft.Extensions.Logging + Serilog:
    - Первый - предоставляет интерфейс для логирования
    - Второй - бэкэнд логирования
    Ответ написан
    8 комментариев
  • Что делать если в компонентах Windows нет WSL и Hyper-V?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Удивительно, да? Сначала ставим "сборку от Васяна" где порезано все по мнению Васяна "лишнее" - а потом начинаем, как бы это лишнее включить.

    А никак.

    Ставьте нормальную сборку, ключей в тырнете завались.
    Ответ написан
    Комментировать
  • Как пробросить порты системы за nat сетью?

    @AlexVWill
    Начал было писать вариант решения, но потом понял что много писанины получится, а варианты могут быть разные, и до меня уже писали. На Хабре лежит неплохая статья по этой теме, можно попробовать реализовать, особенно по варианту 4, только когда оба клиента подключаются к ssh, или вообще сделать ssh vpn туннель, короче, надо пробовать...
    Ответ написан
    Комментировать
  • Проблема с изучением C#?

    freeExec
    @freeExec
    Участник OpenStreetMap
    Это просто мало банальной практики. Примерно как в математике, мало уметь складывать и умножать, надо нарешать пулл задач, чтобы мочь применять свои знания на практике.

    И потом, система компонентов Unity это не совсем то ООП.
    Ответ написан
    7 комментариев
  • База по разработке ПО с плагинами на C++?

    vabka
    @vabka
    Токсичный шарпист
    Существуют ли книги - я не знаю, но фундаментально ничего не изменилось:

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

    Таким языком может быть lua - очень популярный вариант. Можно даже какой-нибудь свой язык для плагинов придумать - вот Minecraft вообще для плагинов стопку json-ов предлагает писать.

    Из нового ещё появился webassembly: он удобен тем, что разработчик плагина может выбрать в принципе любой язык, и запускаться он сможет на любой платформе.
    Ответ написан
    Комментировать
  • Как понять строчку namespace System.Windows.Forms?

    vabka
    @vabka Куратор тега C#
    Токсичный шарпист
    Не нужно путать неймспейсы из C# с модулями из других языков.
    Неймспейс проще всего воспринимать просто как приставку к названию всех типов, которые внутри неймспейса будут.
    А using - подсказка компилятору, чтобы он попробовал эту приставку добавить ко всем именам, которые он ещё не смог разрешить.
    Ответ написан
    Комментировать
  • Как понять строчку namespace System.Windows.Forms?

    GavriKos
    @GavriKos
    Никто не мешает мне определить свой System.Windows.Forms с блекджеком и своими классами. Он будет дополнять и расширять существующий.

    К тому же, не везде System.Windows.Forms существует.
    Ответ написан
    3 комментария
  • Какой роутер выбрать с wi-fi 6 и openvpn клиентом?

    @Drno
    Кинетики, из новых
    Микротики - для продвинутых

    Но хотелось бы по уточнению насчет ВПН - какой протокол и как планируется исользовать.
    Потому что если Вы собрались выжимать 900мб\с через опенВПН посредством роутера, да к тому же по вифи - это нереально)
    Ответ написан
    5 комментариев
  • Как получить случайные числа в C++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    srand вызывайте только один раз где-нибудь в начале программы. А потом сколько угодно раз используйте rand.

    srand устанавливает состояние генератора псевдослучайных чисел. В качестве seed вы там используете количество миллисекунд, которое целую миллисекунду одинаковое, поэтому состояние генератора у вас в каждой функции rand_offer одно и то же - поэтому числа и генерируются одни и теже. sleep(1) лечит проблему потому, что следующий вызов посчитает другое значение count_ms.
    Ответ написан
    Комментировать
  • Тяжелый вирус, как удалить?

    @Drno
    Загрузочная флешка + туда Strelec образ.. попробовать из под него почистить
    но скорее всего там достаточно сильно уже повреждены системные файлы винды
    Ответ написан
    Комментировать
  • Тяжелый вирус, как удалить?

    @kalapanga
    1) Самое первое что нужно было сделать при обнаружении признаков заражения это лишить компьютер доступа в сеть! Вы же продолжаете сидеть в интернете, давая возможность зловреду тащить всё новую и новую гадость к Вам на комп, сливать Вашу инфу в сеть и искать в локальной сети ещё цели для атаки.
    2) Устанавливать антивирусы после заражения - пустая трата времени. Годятся только загрузочные диски/флешки с антивирусами изготовленные на другой машине.
    3) Судя по описанию ситуации на Вашей машине, уже проще и быстрее переустановить систему.
    Ответ написан
    Комментировать
  • Тяжелый вирус, как удалить?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Никак. Там нечего спасать - все сьедено мышами.

    Можно конечно на другой машине создать загрузочную флэшку с Dr.Web например, бутануться с нее и проверить комп, но проще будет забрать с него все данные, полный формат (не быстрый!) и новая установка.
    Ответ написан
    Комментировать
  • Как загнать в dictionary key как null?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Напиши обертку
    var dict = new Dictionary<MyNullableInt, string>();
    dict[null] = "hello, world!";
    
    Console.WriteLine(dict[null]); // Output: hello, world!
    
    
    struct MyNullableInt: IEquatable<MyNullableInt>, IEquatable<int?>
    {
        public int? Value { get; set; }
        public bool Equals(MyNullableInt other)
        {
            return other.Value == Value;
        }
    
        public bool Equals(int? other)
        {
            return other == Value;
        }
    
        public static implicit operator MyNullableInt(int? value)
        {
            return new MyNullableInt() {Value = value};
        }
    
        public static implicit operator int?(MyNullableInt value)
        {
            return value.Value;
        }
        
        public override bool Equals(object? obj)
        {
            if (obj is int value)
            {
                return value == Value;
            }
    
            if (obj is MyNullableInt mni)
            {
                return mni.Value == Value;
            }
    
            return false;
        }
    
        public override int GetHashCode()
        {
            return Value.GetHashCode();
        }
    }
    Ответ написан
    3 комментария
  • Почему Telegram банит аккаунт при использовании api спустя 2-3 запроса?

    vabka
    @vabka
    Токсичный шарпист
    И я не спамил запросами, задержка между ними 3-4 сек.

    Телеграм с большим подозрением смотрит на подключения из неофициального приложения и может банить даже за такое.
    Ну и спам с задержкой хоть даже в сутки - всё ещё остаётся спамом.
    Ответ написан
    Комментировать