• Как в c# в TextBox вывести текст с параметрами {0}?

    tomnolane
    @tomnolane
    профессиональный разработчик
    доп.
    в c# (версии 6) есть такая возможность (чтобы не цифры использовать):
    string bla = "первое слово";
    string bla2 = "второе слово";
    textBox1.Text = string.Format($"({bla}, {bla2})"); //знак $ нужен для того, чтобы сказать, что тут именованные переменные нужно брать
    Ответ написан
    Комментировать
  • Почему возникает ошибка при считывание JSON?

    Stalker_RED
    @Stalker_RED
    MaxKorz уже указал где ошибка.
    На будущее, открывайте консоль (f12), там будет сообщение об ошибке, если на него нажать, даже покажут где именно.LO49uwW.png
    Ответ написан
    3 комментария
  • Как ускорить XAMPP под Windows?

    sayber
    @sayber Куратор тега PHP
    Да, я программирую на PHP и еще асинхронно!
    PHP на windows работает намного медленнее.
    Это неоспоримый факт.

    Как вариант, в Win10 включить Ubuntu Server и на нем поднять nginx/php/...
    Это если хотите работать под виндой.

    Но я бы лучше остался на linux
    Ответ написан
    5 комментариев
  • SQL Server Profiler - как разобраться в том что он показывает?

    Audit Login/Logout - индикация начала/завершения сеанса взаимодействия пользователя с сервером(во время создания/завершения connection-сессии).
    SQL:BatchStarting/BatchCompleted - индикация времени начала/завершения выполнения пакета. Под пакетом понимается набор одной или более T-SQL инструкций, передаваемых СУБД для исполнения в момент времени.
    RPC: Completed(Remote Procedure Call) - индикация успешного клиентского подключения извне и выполнения процедуры/пакета.

    Для анализа запросов достаточно отслеживать SQL:BatchStarting/Completed и RPC:Completed. Пользуйтесь фильтрами(имя пользователя, приложение), отбирайте наблюдаемые вхождения T-SQL перед началом трассировки.

    В вашем случае Entity Framework отправляет SQL-Batch на сервер; обращайте внимание на CPU - загрузка процессора сервера БД, Reads - количество чтений, Writes - записей , Duration - продолжительность операции в миллисекундах(10^-3). При выгрузке результатов трассировки в БД(очень удобная опция для анализа большого количества операций) или внешний источник секунды уже будут с приставкой "микро" или же 10^-6. Под RPC:Completed у вас выполняются регламентные команды SQL-сервера по установке/разрыву соединения.

    Полезные ссылки:
    SQL Server Tech Documentation - со стр. 878 инфа по профайлеру
    Batches
    Ответ написан
    Комментировать
  • Есть ли функции с управляемым контекстом?

    tomnolane
    @tomnolane
    профессиональный разработчик
    *тут взрыв мозга*
    можно короче, и по сути - без размышлений?
    п.с. лучше покажите код которые сейчас, и что хотите в итоге - хотя бы словами в самом коде, если хотите чтобы вам помогли

    upd

    чем код "проще" && меньше && без заморочек, тем он = лучше.
    Как вы описали в комментарии - при нажатии на какую-нибудь клавишу с клавиатуры - меняется значение key очень удобно и прагматичнее. В любом случае, вам нужно задавать || указывать условия для key ... и способов много, как можно реализовать. Хоть используя рандом.
    Не совсем понятно по поводу "смысловой нагрузки" ключа... в коде должны быть только те вещи, которые используются, либо "понапихать" всякого, чтобы для ревёрсиров было тяжелее его понять. Key (если нужен) можно задавать хоть через switch или по timer'у или через if и по сути, это не так важно, нежели действительно его потребность.

    я бы сделал (для себя) примерно так:
    if (Input.GetKeyDown (KeyCode)) {
    KeyFlag=true;
    }
    else if (Input.GetKeyUp (KeyCode)) {
    KeyFlag=false;
    //или через switch
    
    if(KeyFlag==false) {
     // тут код, когда <b>key</b> = false
    }
    else {
      // тут код, когда <b>key</b> = true
    }

    просто, не заморочено и легко понять/отлаживать.
    Ответ написан
    3 комментария
  • Как добавить в коллекцию типа определенного класса из консоли?

    tomnolane
    @tomnolane
    профессиональный разработчик
    class Program
    {
        static void Main()
        {
    
            List<string> list = new List<string>();
    
            for (int i = 1; i < 6; i++)
            {
                Console.WriteLine("Введите " + i + " число:"); 
                list.Add(Console.ReadLine()); // ввод тут
            }
    
        }
    }


    А если тип LIst выступает класс Phone? Как тогда добавить через Console.Readline()?


    using System;
    using System.Collections.Generic; 
    
    namespace test
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<Phone> list = new List<Phone>();
    
                for(int i = 1; i < 6; i++)
                {
                    Console.WriteLine("Введите " + i + " имя телефона:"); 
                    list.Add(new Phone() { phone_name = Console.ReadLine() });
                }
            }
        }
    
        public class Phone
        {
            private string _phone_name = string.Empty;
            public string phone_name { get { return _phone_name; } set { _phone_name = value; } }
        }
    }
    Ответ написан
    2 комментария
  • При попытке компиляции появляется ошибка - Входная строка имела неверный формат,в чем проблема?

    tomnolane
    @tomnolane
    профессиональный разработчик
    тут (проблема) с пробелами:
    Console.WriteLine("SC.color ={ 0},SC.ves ={ 1},SC.power ={ 2},SC.transmission ={ 3},SC.complete_drive{ 4}", SC.color, SC.ves, SC.power, SC.transmission, SC.complete_drive);

    уберите пробелы:
    Console.WriteLine("SC.color ={0},SC.ves ={1},SC.power ={2},SC.transmission ={3},SC.complete_drive={4}", SC.color, SC.ves, SC.power, SC.transmission, SC.complete_drive);

    (где { 0}, { 1} ... нужно {0}, {1})
    Ответ написан
    1 комментарий
  • Как решить задачку?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    document.write((function(n){
      var html='', i=0;
      while(i++<n) html+=i.toString().repeat(i)+"<br>";
    	return html;
    })(9));
    Ответ написан
    Комментировать
  • Минимальные настройки безопасности Linux на VPS?

    Tyranron
    @Tyranron
    Ряд моментов Вы уже сделали, но я все равно их опишу для полноты списка.

    1. Создать отдельного пользователя и хороший пароль на sudo. Не использовать больше root напрямую. Совсем.

    2. SSH. Отключаем метод аутентификации по паролю. Если Вам не нужны другие методы, то их тоже можно отключить, оставив только publickey. Отключаем возможность аутентификации root'ом. Включаем использование только 2й версии SSH протокола.

    3. Устанавливаем Fail2Ban и настраиваем чтобы после нескольких неуспешных попыток подключения по SSH банило по IP на длительное время. Кол-во попыток и время бана можно тюнить в меру своей паранойи. У меня, например, банит на час после 2х неуспешных попыток.

    4. Iptables. Действуем по принципу "запрещено все, что не разрешено". Запрещаем по умолчанию весь INPUT и FORWARD трафик снаружи. Открываем на INPUT'е 22 порт. В дальнейшем открываем порты/forwarding по мере необходимости. Если у нас предполагаются сервисы на соседних серверах нужные только для внутренней коммуникации (Memcached, Redis, и т.д.), то открываем для них порты только для определенных IP. Просто так торчать наружу для всех они не должны.

    5. Настраиваем автоматические обновления apt-пакетов. Уровень security. То есть так, чтобы обновления безопасности накатывались автоматически, но при этом не выполнялись обновления со сменой мажорной версии (дабы обезопасить себя от "само сломалось").

    6. Устанавливаем ntpd. Серверное время должно быть точным. Также временную зону сервера лучше всего установить в UTC.

    7. TLS (не SSL) используем везде где можем. Через Let's Encrypt получаем бесплатные валидные сертификаты. В конфигах веб-серверов, mail-серверов, и других приложений торчащих наружу (в том числе и OpenVPN), запрещаем/убираем использование слабых шифров. Все ключи/параметры генерируем не менее 2048 бит. Самоподписные сертификаты подписываем с помощью SHA-256 (не SHA-1). Diffie-Hellman параметры (dh.pem) под каждый сервис лучше сгенерить отдельно. Проверяем TLS сервисов через Nmap. Минимальный grade должен быть A, не должно быть warning'ов.

    8. Правильный менеджмент пользователей/групп. Приложения/сервисы не должны запускаться под root'ом (разве что они действительно этого требуют и иначе никак). Для каждого сервиса создается свой пользователь.

    9. Если предполагается upload файлов через PHP (либо другие скриптовые языки), в директории, куда эти файлы загружаются (и которая доступна снаружи), должно быть жестко отключено любое выполнение скриптов/бинарников, что на уровне ОС (x права), что на уровне веб-сервера.

    Это была база.
    Дальше, в меру своей паранойи можно за'harden'ить сервер ещё следующими моментами:
    - SELinux, chroot
    - доступ к SSH только с определенных IP (нужно иметь 3-4 VPN-сервера под рукой)

    UPD И да, все это помнить/настраивать руками каждый раз может быть запарно. Используйте Ansible и автоматизируйте процесс (там родные и YAML, Jinja2 и Python).
    Ответ написан
    10 комментариев
  • Вход под пользователем windows 10 с помощью смартфона?

    @GoldGoblin
    windows 10 умеет разблокироваться когда ты рядом и блокироваться по блютус когда ты далеко. Приложения и костыли не нужны.
    Ответ написан
    2 комментария
  • Как работает технология Inject в Angular 2?

    AMar4enko
    @AMar4enko
    Inject работает на базе reflect-metadata
    Это дополнительная JS-библиотека, точнее Metadata Reflection это одно из API ES7, а reflect-metadata это полифилл
    Ответ написан
    3 комментария
  • Как парсить json на C#?

    @Free_ze
    Пишу комментарии в комментарии, а не в ответы
    Есть достаточно популярная библиотека библиотека Json.NET от Newtonsoft.
    Ответ написан
    5 комментариев
  • Как сделать слайдер на картинке управление мышью?

    Pshkll
    @Pshkll
    Ответ написан
    Комментировать
  • Как делать gui интерфейс в Clion?

    @akass
    Developer
    Qt не костыльный метод, собственно насколько знаю, Qt самый адекватный и актуальный способ делать gui на плюсах.
    Ответ написан
    2 комментария
  • Почему не работают виртуальные поля у моделей?

    @SZolotov
    Asp.net core, MAUI,WPF,Qt, Avalonia
    А как вы получаете данные из базы? По умолчанию EF не поддтягивает данные из связанных таблиц.
    Ответ написан
    4 комментария
  • Что за эффект и как его повторить?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    что то похожее: https://www.youtube.com/watch?v=OhR34cEhHiY
    Ответ написан
    Комментировать
  • Анонимные типы в c# и их особенности?

    @none7
    Этот автор только сильно запутал Вас. Код:
    var instance = new {Name = "Alex", Age = 27}
    Эквивалентен такому коду:
    class Anonymous0001 // ссылочный тип
    {
        public string Name { get; private set; } // из других классов выглядит как read-only свойство
        public int Age { get; private set; }
        public Anonymous0001(string name, int age)
        {
            Name = name;
            Age = age;
        }
    }
    
    class Program
    {
        static void Main()
        {
            var instance = new Anonymous0001("Alex", 27);
        }
    }

    Если будет другая строка new { ... }, то компилятор сгенерирует ещё один класс. Всю остальную ересь просто забудьте. В анонимный тип нельзя добавить какую либо функциональность и от них нет никакого толку. Созданы лишь как часть синтаксического сахара, для упрощения выборки нескольких значений из linq запросов. Вроде такого:
    var a = new System.Collections.Generic.Dictionary<string, int>() { { "vasya", 0 }, { "kolya", 0 }, { "alex", 1} };
    
    int i = 0;
    var result = from item in a where item.Value == 0
        select new { Index = i++, Name = item.Key, Id = item.Value }; // создание объекта анонимного типа
    
    foreach(var res in result) {
        bool first = true;
        foreach (var prop in res.GetType().GetProperties()) {
            if (first) first = false;
            else Console.Write(", ");
            Console.Write("{0} = {1}", prop.Name, prop.GetValue(res, null));
        }
        Console.WriteLine();
    }
    Ответ написан
    Комментировать