Задать вопрос
  • В чем суть WinApi?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Вы не так понимаете значение "Win API", давайте расшифрую: "Windows Application Programming Interface" или "Интерфейс программирования приложений ОС семейства Windows". Т.е., во-первых - через этот интерфейс осуществляется взаимодействие любых программ в ОС с самой системой. А что такое ОС? Это прослойка между железом и прикладными программами, которая занимается управлением ресурсами (процессор, память, и т.п.). Давайте уберем Win API - что останется? А ничего вообще не останется - даже ОС (ну может там загрузчик ОС останется или что-то еще совсем низкоуровневое). Тогда, как же прикладная программа может быть запущена? Ну, так же как и все ОС: загрузиться с загрузчика, инициализировать процессор, видеокарту, аудиокарту, клавиатуру, мышку, какие-то дополнительные железки - чтобы все это использовать. Только вот чтобы все это железо использовать - к нему часто нужные драйвера. А некоторые из них проприетарные (т.е. исходников нет). И это только начало. А процессоры-то у нас многоядерные - а программа одна, значит надо реализовывать поддержку нескольких потоков, управление памятью. А если несколько программ хочется запустить? Тогда, надо как-то по очереди давать пользоваться процессором - для этого надо писать управление потоками и памятью, при этом для обеих программ должен быть реализован одинаковый интерфейс. Что-то вроде API. Хмм, кажется где-то было что-то похожее? Ну да ладно. Кстати, если подняться чуть выше в категории - можно обнаружить, что кроме Win API, существует еще Linux API, BSD API - да и вообще в любой ОС есть свой API. И они отличаются - поэтому нельзя напрямую запустить приложение от одной ОС в другой ОС, т.к. приложение банально не будет знать "языка" этой ОС и как дать понять ОС что от неё хочет приложение. Так что любая ОС - это просто менеджер ресурсов ЭВМ, можно сказать "фреймворк", а API - это "язык", на котором приложение может общаться с этим фреймворком. Всякие стандартные и не стандартные библиотеки и прочее - это еще один уровень абстрагирования от "низкуровневого" ОС API. Над библиотеками делается какой-то еще один уровень абстрагирования и его опять называют фреймворком, а там и еще сверху часто бывает что-то. Так что получается, что фреймворк сидит на фреймворке и фреймворком погоняет. Ну и при этом львиная часть ресурсов ПК уходит на все эти абстрактные слои между фреймворками. Поэтому даже в 2017 году, после 27 лет развития браузеры по-прежнему тормозят.
    Ответ написан
    Комментировать
  • Архитектура чата. Как правильно?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    1. При старте приложения подключиться к сокет-серверу и сохранить идентификатор сокета в переменную
    2. Принимать/передавать данные по мере поступления
    3 ....
    4. При выходе из приложения закрыть сокет.
    Ответ написан
  • Как определить что закрылось приложение? Firefox например?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Как понять что FF закрылся?

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

    Так никто и не заставляет использовать самое простое решение. Напишите тогда плагин для ФФ, который будет делать нужные вам вещи при закрытии ФФ. Или внесите изменения в исходный код ФФ и добавьте нужный функционал. Ничего сверхсложного там нет.
    Ответ написан
    Комментировать
  • Javascript onclick = function - почему такая форма записи?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    мы должны писать сначала function () {...}, а не сразу написать тело функции? Знаю, что это связано со внутренним устройством джаваскрипта? Почему работает только так?

    Наверно потому что в JS это такая форма записи функции. Изучите такие понятия как "функция", "процедура", "компиляция", "выполнение", "интерпретация". Определение функции - это компиляция кода в некоторый бинарный вид (промежуточный код, байт-код, машинный код и т.п. - в зависимости от реализации в конкретном ЯП) и дальнейшее использование этого кода по адресу начала этого кода / указателю.
    Ответ написан
    Комментировать
  • Как правильно разделить выделенный сервер на виртуальные?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Все зависит от выделяемых виртуалкам ресурсов. Например 12 виртуальных ядер и 64 ГБ ОЗУ легко делятся на 12 виртуалок по одному процессору и 4-5 ГБ ОЗУ. Или, например, на 6 виртуалок с физическим ядром и двумя виртуалными и 8-10 ГБ ОЗУ.

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

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

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Использовать программный KVM: Input Director (юзабельных альтернатив нету, к сожалению).
    Ответ написан
    Комментировать
  • Есть ли программа для пакетной обработки, которая уменьшает не на % качества, а до минималки килобайт?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    IrfanView умеет пережимать картинки до требуемого размера.
    Ответ написан
    Комментировать
  • Замена клавиатуры на ноутбуке HP Pavilion 15-af104ur?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    В сервис мануале есть описание разборки ноута с описанием, фотографиями (не всегда, правда) и номерами деталей. В крайнем случае можно обратиться в ТП и там уточнить.
    Ответ написан
    Комментировать
  • Как уменьшить шум вентиляторов, не уменьшая воздушный поток?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Никак. Если вентилятор шумит - он и будет шуметь, как его не крути. Только замена - например на Noctua.
    Ответ написан
    2 комментария
  • Свойства border, как сделать?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    4 элемента, у каждого только две границы.
    Ответ написан
    1 комментарий
  • Не могу понять почему так увеличивается переменная цикла?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    А что не так с результатом? Он именно такой какой и должен быть.
    console.log( // Печать в консоли
        i,   // Текущий индекс
        ++i   // Увеличить текущий индекс, вернуть результат
    );
    Ответ написан
    Комментировать
  • Каким ПО пользуетесь при создании документации?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Вики - в редмайне, иксвики, докувики и прочее.
    Ответ написан
    Комментировать
  • Как через сокет заставить сервер выполнить метод?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Послать серверу команду через сокет - например числовой идентификатор метода.
    Ответ написан
    Комментировать
  • Как выглядит на практике передача параметра-объекта (вместо множества параметров) в конструкторе объектов?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    api.jquery.com/show/#show-options
    var selectedEffect = $( "#effectTypes" ).val();
    
    // Most effect types need no options passed by default
    var options = {};
    // some effects have required parameters
    if ( selectedEffect === "scale" ) {
        options = { percent: 50 };
    } else if ( selectedEffect === "size" ) {
        options = { to: { width: 280, height: 185 } };
    }
    
    // Run the effect
    $( "#effect" ).show( selectedEffect, options, 500, callback );
    Ответ написан
    Комментировать
  • Как настроить яркость экрана?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Используйте f.lux.
    Ответ написан
    Комментировать
  • Что значит глобально доступный объект приложения?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Доступен из любого файла исходного кода/модуля/подсистемы для чтения/записи/выполнения/изменения. Например:
    var globalVar = 123;
    function(){
        var localVar = 789;
    }
    Ответ написан
    1 комментарий
  • Нужно дать процессу SeDebugPrivilege, можете подробней рассказать как это сделать на C#?

    VoidVolker
    @VoidVolker Куратор тега C#
    Dark side eye. А у нас печеньки! А у вас?
    Ответ написан
    Комментировать
  • Можно ли на python написать полноценный браузер?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вполне можно за несколько лет написать с нуля нечто очень похожее на современный браузер. Питон для этого подходит очень плохо в силу своих особенностей, а в браузере важна высокая скорость работы многих сложных участков кода. Для написания браузера имеет смысл использовать компилируемые в нативнй код ЯП с развитыми оптимизаторами. Если цель изначально учебная - то еще можно присоединиться к какому-нибудь OpenSource проекту.
    Ответ написан
    Комментировать
  • В чем проблема, код проходит 4/6 теста?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    function duplicateCount(text){
    
        text = text.toLowerCase();
        var len = text.length
            , chars = Object.create(null)
            , char
            , count = 0
        ;
        
        for(i=0; i<len; i++){
            char = text[i];
            if(chars[char] == undefined){
                chars[char] = false;
            } else {
                chars[char] = true;
            }
        }
        
        for(c in chars){
            if(chars[c]){
                count++;
            }
        }
        
        return count;
    }
    Ответ написан
    Комментировать
  • GUI на PHP - реально?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Да, вполне реально. Самый простой вариант - использовать традиционный HTML, JS, CSS с рендерингом в браузере/браузерном движке. Для этого отлично подойдет NWJS. Только учтите, что у такой прогрммы будут повышенные системные требования (семерка, от гигабайта-двух памяти, как минимум двух ядерный процессор) и она будет очень медлительной и ресурсоемкой - как и любой браузерный движок. Более сложный вариант - для GUI использовать WinForms / WPF, а с PHP его можно соединить через сокеты, веб-сокеты, HTTP.
    Ответ написан
    Комментировать