• Как был создан ассемблер?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Assembler
    Седой и строгий
    Не совсем понятно, что именно вас интересует. Однажды люди притомились писать программы машинным кодом и придумали для каждого опкода процессора мнемокод. Так появился язык ассемблера. Потом люди притомились вручную переводить из мнемокодов в опкоды и написали для этого программу.
    Ответ написан
    7 комментариев
  • Как был создан ассемблер?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Есть догадки, что была какая-то интегральная схема которая считывала данные из памяти, в виде последовательности ASCII кодов,

    Нет. Ты или что-то недочитал или сильно много перечитал.

    Самые первые ЭВМ были стендами с переключателями и лампочками. И чтобы их программировать надо было знать систему команд. То бишь соответсвие положения переключателя со смыслом который она делает. Например 0101 (переключалели вверх-вниз дважды) к примеру несет смысл сложить числа в ячейках 1 и 2 и сохранить результат в ячейке 1. И чтоб не парится сильно - ввели обозначение ADD &1, &x2. Разумеется синтаксис я придумал просто для пример.
    Ответ написан
    3 комментария
  • Как обработать запрос с формы на сервере?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для этого очень давно придумали https://en.wikipedia.org/wiki/Common_Gateway_Interface
    Фактически это тот же самый cli но на стероидах: перед тем как вызвать бинарник и передать ему на stdin строку с закодированным постом, надо установить несколько обязательных переменных окружения

    В составе РНР до сих пор поставляется бинарник php-cgi, который сам всё раскодирует, а так же, в качестве бонуса, сформирует все нужные заголовки ответа.

    Пара ссылок:
    https://stackoverflow.com/questions/4030147/how-to...
    https://www.oreilly.com/openbook/cgi/ch04_02.html
    Ответ написан
    Комментировать
  • Как запускать exe автоматически при попадании на ПК?

    @pavelsha
    PsExec - Windows Sysinternals
    https://yandex.ru/search/?clid=2186621&text=psexec...

    Для компьютеров, которые работают в рамках домена Active Directory, есть другие способы повесить на какое-либо событие запуск скрипта или приложения, которые находятся где-то удаленно.
    Ответ написан
    Комментировать
  • Как запускать exe автоматически при попадании на ПК?

    @res2001
    Developer, ex-admin
    В такой постановке вопроса ответ - никак.

    Что бы любая программа запустилась, либо ОС должна знать, что ее надо запустить в какой-то момент, либо пользователь должен ее запустить руками.
    Для автозапуска можно использовать несоколько веток реестра, как пользовательских так и системных, так же можно использовать каталог sturtup в меню пуск (в вин10 его нет в явном виде в меню, но его можно найти в файловой системе) или же добавить Параметры->Приложения->Автозагрузка (это действие, по идее, добавляет записи вреестр).
    Еще вариант - добавить старт приложения в шедулер, повесив его на какой-либо подходящий триггер.
    После внесения соответствующих изменений и перезагрузки (или наступления триггерного события) приложение запустится.

    Так же можно запустить приложение удаленно, таких вариантов довольно много. Из встроенных средств можно использовать: wmic или powershell. Тот же psexec (о котором писал pavelsha ) и т.п. Но программа должна быть доступна на удаленном компьютере, по указываемому пути. Т.е. вы должны сначала скопировать программу на удаленный комп, а потом уже удаленно ее запускать. Как вариант - указывать сетевой путь, доступный удаленному компьютеру. Но нужно не забывать, что в случае сетевого пути, потребуется авторизация на сетевом ресурсе ... Проще скопировать локально.

    Кстати, редактировать реестр можно и удаленно. Для этого есть средства из коробки. Например команда reg add - умеет это делать. Но и тут есть своя специфика.
    Ответ написан
    Комментировать
  • Как решить быстрое закрытие программы?

    Casper-SC
    @Casper-SC
    Программист (.NET)
    Вот так можно написать класс сканер, который получает данные асинхронно. Использовать его можно таким образом в любом типе приложений. Например, в WPF приложение не будет зависать, если, скажем, запустить сканирование по клику на кнопке.

    Обрати ещё внимание на метод с Task.Factory.StartNew и параметром TaskCreationOptions.LongRunning. Для сканирования папок, думаю использовать стоит.
    using System;
    using System.Collections.Generic;
    using System.Threading.Tasks;
    
    namespace ConsoleApp
    {
        class Program
        {
            static async Task Main(string[] args)
            {
                try
                {
                    // Создаём экземпляр класса
                    var scanner = new Scanner();
                    // Вызываем асинхронный метод Scan, метод работает
                    // какое-то время, возвращает результат.
                    var data = await scanner.Scan();
                    foreach (var item in data)
                    {
                        // Выводим на консоль.
                        Console.WriteLine(item);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex);
                }
            }
        }
    
        public class Scanner
        {
            public Task<List<string>> Scan()
            {
                return Task.Run(async () =>
                {
                    var results = new List<string>();
    
                    for (int i = 0; i < 10; i++)
                    {
                        // Делаем правильную задержку (имитация долгой работы для примера).
                        await Task.Delay(250);
                        // Собираем данные
                        results.Add(DateTimeOffset.Now.ToLocalTime().ToString());
                    }
    
                    return results;
                });
            }
    
            public async Task<List<string>> ScanVersion2()
            {
                return await Task.Factory.StartNew(async () =>
                {
                    var results = new List<string>();
    
                    for (int i = 0; i < 10; i++)
                    {
                        // Делаем правильную задержку (имитация долгой работы для примера).
                        await Task.Delay(250);
                        // Собираем данные
                        results.Add(DateTimeOffset.Now.ToLocalTime().ToString());
                    }
    
                    return results;
                }, TaskCreationOptions.LongRunning)
                    .Unwrap() // Без этого возвращается Task<List<string>>, а не List<string>
                    .ConfigureAwait(false);
            }
        }
    }


    Стоит почитать книгу "Конкурентность в C#. Асинхронное, параллельное и многопоточное программирование"
    Скриншот сделан с видео: https://youtu.be/lh8cT6qI-nA?t=1123

    612185e7a4563153795281.jpeg
    Ответ написан
    1 комментарий
  • Указание переменных через window?

    @0ffff0
    Когда пишем подобный учебный скрипт, можно не объявлять переменные через var, let или const, а назначать как свойство объекта windows, чтоб не путаться где какая переменная доступна и где чья область видимости, когда объявляем переменные на лету, работать будет, но перегружает глобальную область.
    Поэтому лучше сразу создать свой специальный объект
    Ответ написан
    5 комментариев
  • Указание переменных через window?

    alvvi
    @alvvi
    export default apathy;
    Вызовы типа
    window.property = 'string'
    window.function = () => 'hey there'

    это по сути объявление глобальных переменных, которые будут доступны всем скриптам. Используется на практике в случае, где данные операции/свойства необходимо объявить на сервере.

    Например, таким образом можно записать в объект window свойство с каким-нибудь JSON-конфигом из PHP или другого серверного языка или просто передать информацию из серверного языка в качестве переменной.

    Использовать такой подход для объявления переменных в остальных случаях крайне не рекомендуется. В данном случае преподователь вам дает скорее вредный нежели полезный пример, подобный код можно написать без глобальных переменных/свойств глобального объекта.
    Ответ написан
    Комментировать