Задать вопрос
Ответы пользователя по тегу Программирование
  • Верно ли это утверждение?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Не раскрыто понятие "успешный программист" и его связь с любопытством. Так что это утверждение - чушь. Программист - это человек, который умеете переводить конкретную задачу в конкретный код. Что именно при этом делает "компьютер" достаточно понимать в общих чертах, потому что слишком много технологий, который вообще соединяются для того, чтобы ваш код выполнился. Электричество, полупроводники, вот это всё? Поэтому понятие "любопытство" в таких вещах может быть даже вредно, этим занимаются учёные в компаниях. Если для вас программирование вновинку, то вам в первую очередь надо научиться ставить чёткие задачи и учится достигать ими задуманного результата.

    Программирование происходит в голове, а не на компьютере.
    Ответ написан
    1 комментарий
  • Как выполнить полный мониторинг страницы?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    А вы заказчику встречный вопрос - а если страница и вживую грузится с ошибками или загруженные скрипты выдают ошибки, то что тогда? Пусть выдаёт не расплывчатое требование, а жесткое. "Сайт жив" - это не техническое требование, а человеческое ощущение. Кода 200 вполне достаточно. Как исполнитель можете настаивать, что этого достаточно. У вас тоже есть права.
    Основные проблемы в таких "заданиях" - мало кто думает что делать, когда что-то идёт не так. И когда такую хрень пытаются переложить на разработчика, то тут надо таким "заказчикам" напоминать, что они точно так же отвечают за результат, как и вы.
    Ответ написан
  • В случае ошибки, обязательно ли функции что то вовзращать?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Уважаемый Дон. Есть ещё третий вариант. Передать в функцию объект и одним из его свойств назначать, что функция действительно получила конечный результат. И без выставления этого свойства любой ответ признаётся невалидным.
    Все зависит от задачи.
    Ответ написан
    Комментировать
  • Изучение математики через программирование, глупое решение?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Пока задача не решена у неё нет алгоритма решения.
    Бывает, что задача не решается. В этом случае надо доказать, что решения нет.
    Можно быть умным человеком и без знания математики.
    В фильме "Западня" главный герой сказал: "Сюрпризы бывают всегда".
    Бумага иногда помогает.
    Ответ написан
    Комментировать
  • Какая из областей программирования, предположительно, в будущем не сильно измениться?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Думаю, что в ближайшее время не изменятся требования к кандидатам при устройстве на работу.
    Ответ написан
    Комментировать
  • Как узнать WinAPI функцию?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    >> Без подобного понимания я вообще застрял в обучении, и приходится, мягко говоря, туго.
    Кто-то обещал, что будет легко??? Мы тут все окукливаемся и не жалуемся. Привыкайте ))) Добро пожаловать в профессию.

    Ну а по поводу функций, сами они, конечно, не найдутся, но читаете документацию в соответствующем разделе и достигаете результата.

    >> Но опять же,что в поисковой строке на MSDN вводить? X которая делает Y?
    Обычно да. Только нужно иметь верную догадку, что Y делается именно X-ом.

    >> Стандартный ответ будет-читай MSDN
    Ну вы так сразу на всех не ополчайтесь. Обычно такой ответ означает, что вы перешли границы, потому что никто не любит решать задачу за вас. Имейте совесть не просить сделать что-то за вас. Разбивайте вопрос на части и по одному задавайте. Конкретно. Что хотите, что уже сделали, скрины и т.д. Нужно, чтобы была видна ваша работа, тогда участникам будет вам интересно помогать.

    >> Сейчас учу C++
    Вы и не рассчитывайте, что вот прям сейчас у вас что-то и получится ))) Обучение - процесс длительный и итерационный. Разве что с опытом он начинает идти быстрее.

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

    P.S.
    Посоветую из личного опыта - заведите блокнот бумажный/электронный, не важно. Записывайте в него то, что вы узнали и обязательно потом перечитывайте его!!!
    Ответ написан
    Комментировать
  • Перспективы embedded разработки?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Программирование на "низком" уровне не всегда низкоуровневое. Но лично для себя я вижу проблему интернета вещей/роботов/умных домов в том, что как разработчик я надолго должен оказаться привязан к проекту одной вещи. Я, например, не могу представить себе, чтобы я при программировании, условно, кофеварок мог легко закончить этот "проект" и переключиться, например, на робота на сборочном конвейере автомобилей. Как правило люди в этой сфере должны отдать много лет проекту (взять, например, медицинское оборудование, так люди там вообще пожизненно завязаны). В WEB/desktop ситуация немного другая - сегодня сайт, завтра утилита или конвертер. При должном усердии задачи, сферы приложения знаний и люди сменяют друг друга и не скучно работать. Но это исключительно МОЁ мнение, может быть вы видите работу в IT в принципе по другому и вам будет нравится то, что лично не нравится мне.
    Мнение других людей - это неприятие их положения на вашем месте. Только и всего.
    Нужно научиться уверенности в своём выборе, тогда мнение других людей не будет вас волновать.
    Ответ написан
    Комментировать
  • Как свернуть .bat файл в трей?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Bat - не единственный способ запускать приложения. Есть ещё powershell. Не силён в PowerShell, но вот обсуждают, как с помощью PowerShell сделать tray icon: https://stackoverflow.com/questions/22154683/power...
    Ответ написан
    Комментировать
  • Какой язык программирования удобен для создания контрольно/аварийных систем и систем автоматизации и для визуализации процесса (HMI)?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Посоветую всё-таки начать с декомпозиции задачи, т.к. сбор данных - одно, визуализация - другое. Не факт, что вам вообще сильно нужно программирование, т.к. если сможете загнать данные в какой-то формат (или БД) без программирования, то отобразить их сможете даже в Excel через источники внешних данных. Посоветую пока не углубляться в программирование, а постараться решить задачу малыми усилиями.
    На странице https://www.siemens-pro.ru/components/s7-300.htm достаточно много информации. Меня немного повеселила такая инфа в одном из документов (видать очень давно разрабатывают эти контроллеры, что в общем-то характеризует их весьма положительно):

    1cac292a9271443ea8bca4e809d00940.png

    Ну а если без шуток, если у вас есть доступ к контроллерам siemens, то вроде как не проблема снимать с них показания и складывать их в БД MSSQL (может даже бесплатный MySQL). Главное получить данные с контроллеров. Эксперименты с отображением можно отложить на потом.
    Ответ написан
    1 комментарий
  • Правильно ли я понимаю суть программирования?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Программирование — умение кодировать алгоритмы, предназначенные для исполнения процессором, на языке

    Не только! Ещё и умение автоматизировать деятельность заказчика. Это вам нужен разворот на 180. Заказчика не интересуют инструкции CPU.
    Программа рождается в голове программиста не в виде машинных кодов или синтаксиса, а в виде последовательности действий, которые приводят к желаемому результату. Непосредственно само программирование с пониманием архитектуры процессора или сетевой работы является ремеслом , которое ничего общего не имеет с романтикой и называется кодированием (но в кодировании есть своя романтика).
    Ответ написан
    4 комментария
  • Как вернуть "любовь" к программированию?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Можно попробовать что-то вообще с нуля. Мой пример: никогда не занимался музыкой, в смысле вообще. Потихоньку осваиваю музыкальную/нотную грамоту, жму на клавиши на фортепиано. Помогает отвлечься.
    Ответ написан
    Комментировать
  • Как запустить скрыто .exe файл через батник?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Такое на подойдёт?
    stackoverflow.com/questions/23057448/open-program-...
    Start a program in Minimized window from batch file? : www.computerhope.com/forum/index.php?topic=63635.0
    Ответ написан
    Комментировать
  • C#, требуется отправить сырой HTTP(S) запрос?

    AlexXYZ
    @AlexXYZ Автор вопроса
    O Keep Clear O
    Разобрался!
    Маленькая тонкость - сервером выступает ElasticSearch.

    Действительно, решение через
    new Socket()
    правильное. Но! Нужно ООООЧЕНЬ внимательно следить за тем, что пишется в заголовках, а особенно за заголовком "Content-Length: NNN":
    1. Обязательно его вставлять, даже если он не указан!
    2. Правильно считать длину тела запроса. Не по символам, а по байтам.

    Вот переработанный пример кода MS из совета Петр, который уже нормально заработал:

    private void btnRequest_Click(object _sender, EventArgs e)
            {
                /* Текстовое поле, из которого я беру текст вида:
    GET http://HOST:9200/_search HTTP/1.1
    Host: HOST:9200
    
    {
    ....
        "highlight" : {
            "fields" : {
                "*" : {}
    
            }
        }
    }
               */
                string str = request_text.Text; 
                byte[] bytes = new byte[100024];  // Примерное число, которое надо поменять, если требуется! Мне для экспериментов подошло. В дальнейшем можно будет сделать какой-нибудь ByteStream
    
                // Connect to a remote device.
                try
                {
                    string str_first = str.Split(new char[] { '\r', '\n' })[0];
                    string[] arr_str_first = str_first.Split(' ');
                    string[] arr_str_address = arr_str_first[1].Split('/');
                    Uri uri = (new Uri(arr_str_first[1]));
                    string new_str_first = arr_str_first[0] + " /" + arr_str_address.Last() + " " + arr_str_first[2];
    
                    // разделить запрос на две части - заголовки и тело:
                    string str_headers = str.Substring(str_first.Length + 2, str.IndexOf("\r\n\r\n") - str_first.Length - 2);
                    string str_body = str.Substring(str.IndexOf("\r\n\r\n") + 4);
    
                    int index_substring_content_length = str_headers.IndexOf("Content-Length:");
                    if (index_substring_content_length >= 0)
                    {
                        string tmp = str_headers.Substring(index_substring_content_length);
                        string[] arr_temp = tmp.Split(new char[] { '\r', '\n' });
                        string sub_string_content_length = arr_temp[0];
                        sub_string_content_length = "\r\n" + sub_string_content_length;
                        Regex regex = new Regex(sub_string_content_length);
                        str_headers = regex.Replace(str_headers, "", 1);
                    }
    
                    // Establish the remote endpoint for the socket.
                    IPHostEntry ipHostInfo = Dns.GetHostEntry(uri.Host);
                    IPAddress ipAddress = ipHostInfo.AddressList[0];
                    IPEndPoint remoteEP = new IPEndPoint(ipAddress, uri.Port);
    
                    // Create a TCP/IP  socket.
                    Socket sender = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
                    // Connect the socket to the remote endpoint. Catch any errors.
                    try
                    {
                        sender.Connect(remoteEP);
    
                        Console.WriteLine("Socket connected to {0}", sender.RemoteEndPoint.ToString());
    
                        string raw_request = new_str_first+"\r\n"+str_headers+ "\r\nContent-Length: "+ Encoding.UTF8.GetBytes(str_body).Length+"\r\n\r\n"+str_body;
    
                        // Encode the data string into a byte array.
                        byte[] msg = Encoding.UTF8.GetBytes(raw_request); // + "<Client Quit>");
    
                        // Send the data through the socket.
                        int bytesSent = sender.Send(msg);
                        Console.WriteLine("bytesSent = {0}", bytesSent.ToString());
    
                        // Receive the response from the remote device.
                        int bytesRec = sender.Receive(bytes); 
                        Console.WriteLine("Echoed test = {0}", Encoding.UTF8.GetString(bytes, 0, bytesRec)); // bytesRec));
    
                        // Release the socket.
                        sender.Shutdown(SocketShutdown.Both);
                        sender.Close();
    
                    }
                    catch (ArgumentNullException ane)
                    {
                        Console.WriteLine("ArgumentNullException : {0}", ane.ToString());
                    }
                    catch (SocketException se)
                    {
                        Console.WriteLine("SocketException : {0}", se.ToString());
                    }
                    catch (Exception ex)
                    {
                        Console.WriteLine("Unexpected exception : {0}", ex.ToString());
                    }
    
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
            }


    Вот результат, который было нужно получить в ответе от сервера:
    e9834dff7f9d4bfa849a2f10ae73a9a6.png

    Результат получен.

    P.S.
    Понял, почему не получалось с самого начала. Посмотрев, как Fiddler2 достаточно вольно обращается с синтаксисом запросов в разделе Composer, я и подумал, что и мне так можно. Но, скорее всего, в фоне Fiddler2 всё-таки перерабатывает запрос, стараясь максимально приблизить его к стандарту. Вот пример разницы того, что записано в Composer уменя и что показывает Inspector:

    cbe1feb2544f445e8b99fa03a5f306eb.png
    Ответ написан
  • На базе чего лучше создать HTTP-прокси, передающий на обработку скрипту/плагину тела ответов сервера image/*, и быстро пропускающий остальной трафик?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    ... Добавлю отдельным сообщением, вдруг кто комментарии не очень читает. Есть ещё такая штука Fiddler.core:

    www.telerik.com/fiddler/fiddlercore

    Там можно делать скриптование на JavaScript с помощью .net. Но только у него не совсем бесплатная лицензия: www.telerik.com/purchase/fiddlercore
    Ответ написан
    1 комментарий
  • Как стать крутым Java EE разработчиком?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Надо вступить в банду крутых JavaEE разработчиков. Потом научиться небрежно употреблять крутые слова "виртуальная машина Java", "объектный код", "да я могу собрать WAR из командной строки", и т.д. Потом одеть чёрное очки. И тут вы получаете приглашение от Голливуда. На предложение Oracle вы брезгливо отказываетесь (ну кто будет связываться с этим странным "предсказателем"? Хрень какая-то, кино не снимают). Вас задействуют в главной роли JavaEE разработчика в фильме типа "Координаты JavaEE" где вы успешно ломаете центральный сервер glassfish от Всемирной корпорации зла Oracle используя уязвимости протокола HTTPS. В конце в вас влюбляется голубоглазая блондинка и приглашает Вас в своё уютное гнездышко невинным вопросом - ты не покажешь, как удалённо деплоить приложение на tomcat? И уход в затемнение...
    Ну почему программист должен быть крутым??? Это же не кино! Все очень просто (я, вы и пушка) - Вы, программа, компьютер. Бороться вам надо будет только с самим собой, а точнее со своим незнанием чего-то. И это проклятие профессии в IT. Вам всегда будет не хватать знаний. Здесь нет крутизны. Каждый день вы можете сталкиваться с нерешаемыми на первый взгляд задачами. Очень сложно не спасовать. И иногда будете сталкиваться с фундаментальными вопросами и находить для них необычные решения. И вот тогда вы сами скажете себе "Да я КРУТ".
    На мой взгляд, программист - это немного учёный. Если вы не видели этого, советую посмотреть: Ричард Фейнман: удовольствие делать открытия.
    Ответ написан
    Комментировать
  • Как осуществить перехват запросов к файловой системе?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    Гляньте scriptomatic: https://www.microsoft.com/en-us/download/details.a...
    Там много примеров как настроить watcher на разные события в системе. Google wmi file watcher
    Ответ написан
    Комментировать
  • Как выполнить javascript во внешнем браузере?

    AlexXYZ
    @AlexXYZ
    O Keep Clear O
    А если написать html страницу и вставить туда ваш скрипт?
    Ответ написан