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

    tomnolane
    @tomnolane
    профессиональный разработчик
    Стоит ли идти в IT индустрию в 20 лет если твои навыки и знания равны 0?
    1) если обращаетесь к сообществу - разговаривайте на его языке (нормальном русском или на английском). Это касается и при разговоре с работодателями. (это не нотация, а пожелание)
    2) у вас есть портфолио с готовыми работами (не типа "Hello world") и Н-проектов на гитхабе? к примеру хотя бы так
    3) в 20 лет все мы маленькие Наполеоны, желающие, чтобы солнце крутилось вокруг нас, а не мы вокруг солнца. Но для работодателей (и вообще, кто дает деньги) 20-лет автоматом говорит, что человек ещё "зеленый", хотя это может и не так. Докажите это!
    4) "знать-прочитать" != увидеть результат. Посмотрите глазами "работодателями": вы(работодатель) - даете (условно) 250 долларов за простенькую программу. Через 10 мин у вас 50 заявок (вы только разместили объявление) от индусов, готовых это сделать и за 10 долларов. Зачем вам искать фрилансера, у которого нету сертификата, диплома, работ на гитхабе, портфолио, готового (без торга) сделать за 250 долларов? а?
    5) не нужно знать 30 языков и уметь писать "Hello wolrd" на них. Лучше знать отлично 1-2 и уметь писать своих "танчиков"
    Ответ написан
    4 комментария
  • Какие книги и курсы по C# необходимо изучить каждому новичку?

    tomnolane
    @tomnolane
    профессиональный разработчик
    рекомендую ознакомиться со всеми ссылками, которые я привожу
    Изучаю C# по видеукурсам — какая лучше литература?
    Ответ написан
    Комментировать
  • Как создать WPF окно в Dll?

    tomnolane
    @tomnolane
    профессиональный разработчик
    стандартно... подключаете dll (add references)
    подключаете пространство имен using в вашем xaml.cs

    в любом удобном методе создаете новый экземпляр класса окна... далее SHOW(); ... профит...
    ------------------------------------------------------------------
    условно так:
    1) подключили dll
    2) в основном xaml.cs
    using MyWindowInDLL;
    
    ....
    ...
     public MainWindow()
            {
                InitializeComponent();
                var wind = new MyWindowInDLL.SuperWindow();
                wind.Show();
            }
    Ответ написан
    4 комментария
  • Страницы нет, но сервер возвращает "200", как в этой ситуации понять, что страницы все-таки нет?

    tomnolane
    @tomnolane
    профессиональный разработчик
    3a42bbeb01de4099b5dc0464d9b3331a.PNG
    страница есть... почему-же её нет?

    если указать
    string url = "https://XN--80APMGLWL.XN--P1AI/в/Москва/Мебельная_фурнитура/стр_11210";

    то тогда страницы действительно нет, и (у данного сайта) statusCode будет 302 (редирект на https://офирмах.рф/404.htm )

    UPD
    1) измените request.Method с HEAD на GET
    2) полный код:
    string url = "https://XN--80APMGLWL.XN--P1AI/в/Москва/Мебельная_фурнитура/стр_11210";
                int statusCode;
                string html;
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
                    request.AllowAutoRedirect = false;
                    request.Method = WebRequestMethods.Http.Get;
                    request.Accept = @"*/*";
                    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                    statusCode = (int)response.StatusCode;
                    
    
                    using (StreamReader stream = new StreamReader(response.GetResponseStream(), Encoding.UTF8))
                    {
                        html = stream.ReadToEnd();
                    }
                    response.Close();
    
    
                    if(!html.Contains("card"))  Console.WriteLine("страницы не существует");
                    else Console.WriteLine("страница существует!");
    
                }
                catch (WebException ex)
                {
                    if (ex.Response == null)
                        throw;
                    statusCode = (int)((HttpWebResponse)ex.Response).StatusCode;
                }
    
                //Console.WriteLine(url);
                //Console.WriteLine(statusCode);
                Console.ReadKey();


    profit
    Ответ написан
    Комментировать
  • Как освободить ресурсы Control'а не вызывая конструктор?

    tomnolane
    @tomnolane
    профессиональный разработчик
    1) Control = null;
    2) grid1.Children.Remove(Control);
    3) //если WPF Control.Visibility = Visibility.Hidden;
    //если WindowsForm
    Control.Visible = false;
    Ответ написан
    Комментировать
  • Каким образом кто-то дублирует мой сайт?

    tomnolane
    @tomnolane
    профессиональный разработчик
    ctrl+c, ctrl+v ...

    не важно как дублируют (или чем или через что) - это нигде не запрещено. Тем более у вас внизу указано:
    20a92a8c02394fb999c6dc5f0da4d16c.PNG
    и "ЭТИ" и указывают у себя вверху:
    414fd64addd84ed5995784d24be9c9fd.PNG
    они это могу сделать в любом месте на сайте (в т.ч. и цветом шрифта основного background'а чтобы сливалось и было не видно), т.к. вы не прописали что можно, как можно и т.д. Это первое. Второе - у вас есть сертификат (с печатью и подписью от хостера) что именно вы является владельцем thesimsclub.ru ??? Если нет - то ваши правила деюро не имеют силы. Если вы являетесь и можете подтвердить - тогда ваши правила указанные на видном месте на сайте - обязательны к применению... НО... это по факту вряд ли кого-то остановит.. только обращаться в суд или роскомнадзор (последнее сомнительно) чтобы обязать владельцев thesimsclub.ru.vnomera.com, findtart4.ru, 26whore.date принять ваши правила (если они копируют контент тем самым нарушают ваше авторское право)
    ответа так и не поступило

    и не поступит.. они не обязаны (пока что на данном уровне)
    влияет ли это негативно на SEO

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

    UPD
    образец как выглядит сертификат на домен:
    eb9d9141095046a6a88b3f85d3de7bdd.png
    Ответ написан
    4 комментария
  • Что должна возвращать функция в catch блоке?

    tomnolane
    @tomnolane
    профессиональный разработчик
    1) не обязательно в catch делать то, что функция должна возвращать:
    public static object Points(int a, int b)
            {
                int result  = 0;
                try
                {
                    //делаю что-то и падаю
                    return result;
                }
                catch(Exception ex)
                {
                    Console.WriteLine(ex.StackTrace); //выведи мне в Console описание ошибки
                } 
                return result;
            }

    2) есть такая шутка, которая называется finally
    int result  = 0;
                try
                {
                    throw new Exception(); 
                    return result;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }
                finally
                {
                    result = -1;
                }


    которая выполниться в любом случае (в т.ч. и когда функция падает)

    Что должна возвращать функция в catch блоке?

    1) Информацию об ошибке
    catch (Exception ex)
                {
                    Console.WriteLine(ex.StackTrace);
                }

    2) либо присвоить значения выходного объекта (в вашем случае это string ..судя по примеру)
    catch 
                {
                    string result = "Ошибка";
                }

    3)можно и то и другое
    4) можно ничего не делать в catch (называется "заглушка")
    catch {}
    и после него return то, что нужно ретюрнуть
    Ответ написан
    Комментировать
  • Имеется ли ограничение на использование VK API c одного IP?

    tomnolane
    @tomnolane
    профессиональный разработчик
    нету.

    То есть, смогу ли я посылать 6 запросов в секунду, используя 2 аккаунта, но с одного компьютера?

    не 6, а не более 3-ёх для каждого аккаунта в секунду. (суммарно 6 если сложить кол-ва запросов двух аккаунтов. п.с. у вас это звучит как-то двусмысленно)

    API считается только по аккаунтам
    Ответ написан
  • Ошибка выдаваемая компилятором на олимпалном сайте?

    tomnolane
    @tomnolane
    профессиональный разработчик
    UPD
    ОТВЕТ (правильная функция вычисления палидрома)
    bool checkPalindrome(string inputString)
            {
                if (string.IsNullOrWhiteSpace(inputString))
                {
                    return false;
                }
                else
                {
                    char[] arr = inputString.ToCharArray();
                    Array.Reverse(arr); 
    
                    if (inputString == new string(arr))
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    } 
                } 
            }

    а теперь что у вас:
    ca0b9f2917f44eedbb57d37e60561133.PNG
    у меня тоже падает при вводе слова var h = checkPalindrome("aaaabcaaaa");
    1) у вас массив str.ToCharArray(1, inputString.Length);начинается заполняется не с 0 индекса, а с 1-го!! от сюда array[0] у вас имеет значение null
    2) inputString.Equals( null) <- не годно, годно так: string.IsNullOrWhiteSpace(inputString) т.к. строка может содержать пробелы (много штук) и тогда строка точно не нуллъ будет

    вот так работает:
    static bool checkPalindrome(string inputString)
            {
                bool flag = true;
                string str = inputString;
                char[] array = str.ToCharArray(0, inputString.Length);
                if (string.IsNullOrWhiteSpace(inputString))
                {
                    return false;
                }
                else
                {
    
    
                    for (int i = 0; i < array.Length; i++)
                    {
                        while (array[i] == array[i + 1])
                        {
    
                            if (array[i] == array[-i]) //aaaabcaaaa
                            { 
                                return true;
                            }
                            else
                            { 
                                return false;
                            }
    
                        }
    
    
    
                    }
                    return flag;
                }
            }


    3) код неверный - он не вычисляет палиндром (точнее не верно вычисляет)
    Ответ написан
    Комментировать
  • Изучаю C# по видеукурсам - какая лучше литература?

    tomnolane
    @tomnolane
    профессиональный разработчик
    мои ответы, где (возможно) получите ответ на свой вопрос
    Нехватает знаний, язык c#?
    Если я пишу код на основе других, это плохо?
    и доп: тык


    Так вот, мне лучше сначала изучить книгу от Шилдта и смотря и учась программировать по видеурокам или сразу можно читать Троелсена?

    1) установить IDE (к примеру Visual Studio)
    2) смотреть видео уроки и тут же делать
    3) по любой книге - делать тоже самое, читаете и тут же в Visual Studio пробуете
    4) потом придумываете себе задачу (не глобальну, хотя бы создание калькулятора)- и пытаетесь сделать

    человек воспринимает лучше информацию, когда он: видит её (результат), может "пощупать"(сам своими ручками делает) и когда читает (всё вместе). Когда я начинал (только по книге Троелсена ) - не видя, не делая самим примеры в Visual Studio... т.е. только читая, а вообще что это такое и зачем оно надо... мой мозг сопротивлялся и не хотел запоминать полученную информацию. Что такое List или рефлексия?? Зачем? А когда стал смотреть видео курсы - я 1) понял, где это всё 2)как это выглядит 3) зачем это (почти понял)
    и потом снова стал читать книгу... и когда (наконец) 1-раз сел за visual studio и создал новый проект... я завис. Я не знал, что делать-то! Я всё забыл... боялся вообще что-то делать) хоть английский хорошо знаю - всё незнакомое, куча настроек, что нажимать...
    И пришлось пересматривать курсы заново.
    Так вот,
    1) смотрите курсы -тут же делаете в программе
    2) читаете книгу (время придёт, когда нужно будет) - тут же делаете в программе
    3) когда два пункта выполните - ставите задачу: как постить в ВК на стену (или фейсбук). Вводите в яндекс "постинг вконтакте c#", ищете код (или видеоурок) - копируете вставляете, получаете ошибку - и тратите кучу времени на доделывания (читаете документацию API ВК и там же регистрируетесь как разработчики), читаете про WebRequest и WebResponse, ага... получили ответ в виде json... "как распарсить json c#" - в яндекс, устанавливаете/скачиваете через Nuget библиотеку newtonsoft.json, и т.д. Чем чаще будете гуглить - тем быстрее "создатите" свой первый велосипед (пока не думайте о производительности или стилистике кода). Только так вы реально поймёте - как работать и с чем "это едят".

    п.с. 2 пункт не обязателен, но важен
    Ответ написан
    6 комментариев
  • Почему форма не скрывается?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в-первом случае - вы создаёте новый объект типа Form1 и его же скрываете. От сюда и эффекта ноль. Т.е. вы создали другой объект и его скрываете. Не главную форму...
    во-втором случае - происходит рекурсия - т.е. объект (типа Form1) создаёт сам себя по образу и подобию "оригинала", потом второй объект создаёт сам себя по образу "оригинала" и т.д., пока буффер памяти не переполнится.

    ОТВЕТ:
    Чтобы скрыть форму (текущую, в которой вы работаете) - достаточно
    this.Hide();
    Ответ написан
    Комментировать
  • Private недопустим для данного элемента?

    tomnolane
    @tomnolane
    профессиональный разработчик
    вот полностью работающий код (п.с. на форме должно быть у вас 3 кнопки, 3 label и 1 timer, названия у всех по умолчанию + у всех кнопок - события click должно быть (также по умолчанию) и событие Tick у timer)

    public partial class Form1 : Form
        {
            int m = 0;
            int s = 0;
            int ms = 0;
            public Form1()
            {
                InitializeComponent();
    
                // интервал - с какой частотой будет обновляться таймер (п.с. 2 раза в секунду = 500 миллисекунд
                timer1.Interval = 500;
    
                // называем кнопки
                button1.Text = "Пуск"; 
                button2.Text = "Пауза";
                button3.Text = "Сброс"; 
    
                // присваиваем label'ам "текст"
                label1.Text = "0"; // минуты
                label2.Text = "00"; // секунды
                label3.Text = "000"; // миллисекунды
    
                button2.Enabled = false; //  кнопку "приостановить" - "замораживаем" 
                button3.Enabled = false; //  кнопку "сброс" - "замораживаем" 
            }
    
            private void button1_Click(object sender, EventArgs e)
            { 
                // если таймер включен
                if (timer1.Enabled)
                {
                    timer1.Enabled = false; // останавливаем таймер
    
                    button1.Text = "Пуск"; // переименовываем кнопку
                    button2.Enabled = false;  // кнопку "приостановить" - "замораживаем" - т.е. делаем неактивной
    
                }
                else //если таймер выключен, тогда его запускаем
                {
                    // обнуляем значения (понадобится после второго и последующего запуска)
                    m = 0;
                    s = 0;
                    ms = 0;
    
                    timer1.Enabled = true; // запускаем таймер
                    button1.Text = "Стоп"; // переименовываем кнопку
                    button2.Enabled = true; // кнопку "приостановить" - "размораживаем" - позволяем делать её кликабельной 
                }
            }
            private  void timer1_Tick(object sender, EventArgs e) // то, что делает таймер, когда она запущен
            {
                 
                if (s < 60) // если секунды меньше 60
                {
                    s++; // увеличиваем секунды 
                    label2.Text = s.ToString(); // записываем в лабел2 где секунды (предварительно int переделав в string) 
                    // п.с. компилятор справа налево "читает"
                }
                else // если секунды равны 60 или более, то
                {
                    m++; //увеличиваем минуты
                    label1.Text = m.ToString(); // записываем в лабел для минут
                }
    
                label3.Text = DateTime.Now.Millisecond.ToString(); // записываем в лабел3 для миллисекунд текущие миллисекунд по времени 
            }
    
            private void button2_Click(object sender, EventArgs e)
            {
                if (timer1.Enabled) { timer1.Stop(); button2.Text = "Продолжить"; button3.Enabled = true; }
                else { timer1.Start(); button2.Text = "Пауза"; button3.Enabled = false; }
            } 
    
            private void button3_Click(object sender, EventArgs e) //кнопка "сброс" времени
            {
                timer1.Enabled = false; 
    
                // присваиваем первоначальные значения
                button1.Text = "Пуск";
    
                // обнуляем значения
                m = 0;
                s = 0;
                ms = 0;
    
                label1.Text = "0";
                label2.Text = "00";
                label3.Text = "000";
    
                button2.Enabled = false; //  кнопку "приостановить" - "замораживаем" 
                button3.Enabled = false; // тоже самое с кнопкой "сброс"
            }
    
           
        }

    7ba241471aa84f21a8df1aa09eff6268.PNG
    думаю разберётесь
    п.с. писал по проще - без рефакторинга

    п.с.с.
    Private недопустим для данного элемента

    весь ваш код неправильный и говорить о private преждевременно, да и (как я увидел и понял, что в книге должно было быть) -он никакой роли тут вообще не играет
    И что за странный способ выводить цифры через label, а не masked textbox?

    на вкус и цвет... п.с. я тоже всегда вывожу в label
    Ответ написан
    Комментировать
  • Как достать параметры gid?

    tomnolane
    @tomnolane
    профессиональный разработчик
    $res = json_decode($json); 
    foreach ($res->response as $array) 
    { 
        echo $array->gid. '<br />'; 
    }
    Ответ написан
    1 комментарий
  • Сколько ждать подтверждения на приложение в ok.ru?

    tomnolane
    @tomnolane
    профессиональный разработчик
    ответ тут
    п.с. доп. инфо
    п.с.с. и если вам отказывают в выдаче прав - то письмо об этом тоже присылают
    Ответ написан
    Комментировать
  • Unknown column 'POP' in 'where clause' что за ошибка?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Mysql пишет: "я не знаю POP в (where) поле clause"
    т.е. вы делаете запрос в БД где хотите выбрать в поле clause значения, которые (равны) называются POP
    и он пишет: sorry I dont know wtf is POP
    напишите пример запроса сюда (запроса в БД)
    п.с. для всех - кто в будущем планирует задавать аналогичные вопросы: сразу в теле вопроса пишите свой код (часть кода, где появляется ошибка) и код вставляйте сюда:
    4b36892d9f5b479f86d4dce4f3ca6c8a.PNGОТВЕТ
    $sql = "SELECT * FROM section_song WHERE section='".$category."'";
    Ответ написан
    3 комментария
  • Разработка своих асинхронных функций, какой шаблон верный?

    tomnolane
    @tomnolane
    профессиональный разработчик
    всегда пользуюсь так:
    //для метода, который ничего не возвращает
    public async Task Blabla()
    {
        await Task.Run(()=>{
    
         //тут я что-то выполняю
    
         });
    }

    //для метода, который возвращает тип string (для примера)
    public async Task<string> Blabla()
    {
        return await Task.Run(()=>{
    
         return "я возвращаюсь!!!";
    
         });
    }

    и всё.

    просто. работает. читабельно.

    upd.
    Петр - мэрси, напомнили)

    upd2
    Славка: вот тут ответ на то, где TaskCompletionSource применяется на практике
    Ответ написан
    1 комментарий
  • Правильно ли я размышляю по поводу ref и out?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Правильное ли мое утверждение в этом коде, что a,b - ref по дефолту в CLR ?

    нет.
    Ключевое слово ref используется для передачи аргумента по ссылке, а не по значению.
    Эффект передачи по ссылке в том, что все изменения вызываемого метода отражаются на значении переменной аргумента, используемой в вызове метода. Например если вызывающий объект передает выражение локальной переменной или выражение доступа к элементу массива и вызванный метод заменяет объект, на который ссылается параметр ref, то локальная переменная или элемент массива взывающего объекта теперь ссылаться на новый объект.
    (источник)
    вы передаёте (в примере) в static void Add значение, а не ссылку на это значение.

    если не используете ref - то переменная будет менять своё значение (если к ней что-то добавите/отнимите и т.д.).
    условно:
    int a = 1;
    a = a*5+9; // a=14;


    Если будете использовать ref - то, "значение" будет меняться по ссылке

    static void Method(ref int i)
            { 
                i = i + 30;
            }
    
            static void Main()
            {
                int val = 1;
                Method(ref val);
                Console.WriteLine(val); 
                // Output: 31
            }
    Ответ написан
    Комментировать
  • Как установить на весь экран virtualbox (kali linux)?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Ответ написан
    Комментировать
  • Как сделать "глубокий" массив с разными типами данных в C#?

    tomnolane
    @tomnolane
    профессиональный разработчик
    в вашем случае, (лично я) использовал бы примерно так:
    Dictionary<string, string[]> wordDictionary = new Dictionary<string, string[]>();
    wordDictionary.Add("YANDEX", new string[] {'yandex1','yandex2'});
    wordDictionary.Add("GOOGLE", new string[] {'google1','google2'});


    или так

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication5
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<UserInfo> my_list = new List<UserInfo>();
    			my_list.Add(new UserInfo { name = "Вася", age = 19, male = true});
    			my_list.Add(new UserInfo { name = "Маша", age = 23, male = false});
    
                Dictionary<string, UserInfo> dic = new Dictionary<string, UserInfo>();
                dic.Add("YAndeX", my_list[0]);
                dic.Add("GooGle", my_list[1]);
    
                foreach (var temp in dic)
                {
                    Console.WriteLine("Key: " + temp.Key + " Value: Age" + temp.Value.age + " Name: " + temp.Value.name + " is male: " + temp.Value.male);
                }
                Console.ReadLine();
            }
        }
    
        class UserInfo
        {
            public string name { get; set; }
            public int age { get; set; }
            public bool male { get; set; }
        }
    }


    --------------------------------------------------------

    надеюсь вам поможет:
    1) массивы для знакомства
    2) кортеж
    3) класс Dictionary< TKey, TValue >
    using System;
    using System.Collections.Generic;
    
    namespace ConsoleApplication1
    {
        class UserInfo
        {
            // Метод, реализующий словарь
            public static Dictionary<int, string> MyDic(int i)
            {
                Dictionary<int, string> dic = new Dictionary<int,string>();
                Console.WriteLine("Введите имя сотрудника: \n");
                string s;
                for (int j = 0; j < i; j++)
                {
                    Console.Write("Name{0} --> ",j);
                    s = Console.ReadLine();
                    dic.Add(j, s);
                    Console.Clear();
                }
                return dic;
            }
        }
    
        class Program
        {
            static void Main()
            {
                Console.Write("Сколько сотрудников добавить? ");
                try
                {
                    int i = int.Parse(Console.ReadLine());
                    Dictionary<int, string> dic = UserInfo.MyDic(i);
    
                    // Получить коллекцию ключей
                    ICollection<int> keys = dic.Keys;
    
                    Console.WriteLine("База данных содержит: ");
                    foreach (int j in keys)
                        Console.WriteLine("ID -> {0}  Name -> {1}",j,dic[j]);
                }
                catch (FormatException)
                {
                    Console.WriteLine("Неверный ввод");
                }
    
                Console.ReadLine();
            }
        }
    }
    Ответ написан
    Комментировать
  • PHP Instagram API: как обойти лимит в кол-ве отдаваемых изображений?

    tomnolane
    @tomnolane
    профессиональный разработчик
    Vit - верно подметил, посмотрите это:
    github /mgp25/Instagram-API
    возможно вам поможет (п.с. сам пользуюсь для постинга)
    Ответ написан
    6 комментариев