Задать вопрос
  • Как языки, исполняемые на ВМ, пишут в консоль?

    pluffie
    @pluffie Автор вопроса
    Стыдно за старые вопросы
    Прошло уже два года а то и больше. Ответ на вопрос я, конечно, теперь уже знаю. Для таких же пытливых, каким был я, распишу всё в деталях.

    На самом низком уровне (из тех, что имеет смысл рассматривать в данном вопросе) лежит ОС, на долю которой выпадает управление буквально всем и, в частности, стандартным вводом/выводом.

    Начиная с этого момента, за винду в рамках данного ответа не ручаюсь и говорить буду только про POSIX.

    По сути та консоль с текстом, которую видит пользователь, это обычная программа (в некоторых случаях модуль ядра), которая называется эмулятором терминала. Задача эмулятора - запустить другую программу как дочерний процесс, перенаправлять все нажатые клавиши ей в stdin и выводить на экран то, что она пишет в stdout и stderr (обычно с поддержкой управляющих последовательностей ANSI и прочей мишуры).

    Любая программа не может работать с файлами, коносолью и вообще с чем-либо, минуя ОС. stdout является обычным файлом, в который можно писать ровно так же, как и в любой другой. Запись в файл, обычно, происходит в несколько этапов: сначала открываем его, тем самым получая дескриптов, потом вызываем сисколл (например write), который запишет текст в этот дескриптор.

    Отвечая на первый вопрос: stdout открывать не надо и искать его тоже не надо: это "виртуальный" файл, который автоматически открывается для каждой программы с дескриптором 1.

    Отвечая на второй вопрос: данные в stdout записываются ровно так же, как и в любой файл.

    Эта информация универсальна, потому что так или иначе любой вывод текста в консоль сводится к этому механизму.

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

    Сами по себе виртуальные машины обычно реализованы как интерпретатор/JIT-компилятор (а иногда даже AOT-компилятор!) байт-кода. Обычно под вывод не выделяют отдельную инструкцию. В виртуальных машинах часто присутствует механизм, позволяющий взаимодействовать с нативным кодом (то есть кодом на низкоуровневых языках, собранным в бинарник), так называемый native function interface. Этот механизм, конечно, работает во многом усилиями языка, на котором реализована ВМ, и именно он позволяет взять и вызвать функцию, которая под капотом уже вызывает соответствующий сисколл.

    Объяснение, конечно, относительно детальное, но всё ещё сильное упрощённое. Надеюсь, интересующимся я помог.
    Ответ написан
    Комментировать
  • CSS не меняет цвет ссылок. Как поменять цвет ссылки?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    а ничего, что у .nav-item и .nav-tem:hover одинаковый цвет прописан?
    Ответ написан
  • Как сделать так чтобы элементы дошли до определённого края и перешли на другую строку?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Всё элементарно
    https://jsfiddle.net/qv1w4coj/5/
    Ответ написан
    Комментировать
  • Как научится правильно верстать?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    я не знаю как правильно назвать тот или иной класс

    Так, чтоб было понятно, за что он отвечает.

    нужно ли для всех тегов писать классы

    Нет. Без контекста, ответить что-либо более осмысленное я не смогу.

    не понимаю зачем нужен container и wrapper

    Если ты не понимаешь, зачем тебе что-либо нужно, то тебе это не нужно

    Я забросил вёрстку и начал изучать JavaScript. Но после изучения основ я вернулся к проблеме что не умею верстать.

    Авось поможет

    Уже пробывал не сразу верстать весь макет, а разделять его на части и начал с хедера то есть с шапки и так где то 10 макетов но на макетах разные шапки и не везде их получается сверстать.

    Задавай себе вопросы, когда пишешь код.
    Нужна шапка. Что подразумевается под шапкой? Панель с кнопками для навигации сверху сайта.
    <nav></nav>
    Что в ней должно быть? Название сайта и ссылки на страницы.
    <nav>
      <span>My site</span>
      <a href="page1.html">Page1</a>
      <a href="page2.html">Page2</a>
    </nav>

    Тег a подчёркивается. Я так хочу? Нет.
    a {
      text-decoration: none;
    }

    Проблема решена, но теперь a вообще нигде не подчёркивается. Я хочу так? Нет.
    nav a {
      text-decoration: none;
    }

    Теперь a не подчёркивается, если оно находится в элементе nav. А если я создам ещё один такой элемент, но для немного других целей, и там подчёркивания понадобятся?
    <nav class="main-navbar">
      <span>My site</span>
      <a href="page1.html">Page1</a>
      <a href="page2.html">Page2</a>
    </nav>

    .main-navbar a {
      text-decoration: none;
    }

    Теперь я хочу выровнять все элементы по вертикали но не знаю как :(. Тут тебе на помощь придёт твой личный Оракул (правда я больше предпочитаю всевидящую утку). Просто задай ему вопрос "Как это сделать?", и он моментально выдаст ответ.

    Не знаю может это мне не дано или я делаю что то не так. Я не могу решить эту ОГРОМНУЮ проблему.

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

    Хочется изучать что то новое но я застрял на этой вёрстке и не могу двигаться дальше.

    Как то, что ты не умеешь верстать, мешает тебе изучить, допустим, историю Танзании?
    Ответ написан
    1 комментарий
  • Почему не могу сделать блоку высоту 100%?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Ответ выше правильный, да и ваш код должен работать.

    @media screen and (min-width: 768px) and (max-width: 991)

    Вы точно тестируете в разрешении меньше 991px и больше 768px?
    Ответ написан
    Комментировать
  • Как повесить rgba здесь?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    #overlay {
        /*...*/
        z-index: 99;
    }
    Ответ написан
    Комментировать
  • Как включать / выключать функцию одной кнопкой?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Функцию нельзя включить и выключить, её можно лишь вызвать. Можно использовать две функции:
    function createContent() { ... }
    function deleteContent() { ... }

    Ещё есть вариант с переменной:
    const content = function () {
        var isCreated = false
        const this.change = function () {
            if(isCreated) {
                isCreated = false
                ...
            } else {
                isCreated = true
                ...
            }
        }
    }
    Ответ написан
    1 комментарий
  • Vim удаляет авто-отступы при переносе строк. Что делать?

    pluffie
    @pluffie Автор вопроса
    Стыдно за старые вопросы
    Оказалось, что всё очень просто (спасибо, англичане)
    :inoremap <Return> <Space><BS><Return>
    Ответ написан
    Комментировать
  • Какие есть способы реализации системы внешних скриптов?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Можно писать скрипты на Lua и подгружать их используя соответствующие библиотеки
    Ответ написан
    Комментировать
  • Как вывести содержимое файла имея только команды echo и ls?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Варианты выше правильные. Если вывести содержимое не получается, то может нужно изменить права доступа к файлу?
    chmod 777 -text.txt-
    echo $(<./-text.txt-)

    Если есть исключительно echo и ls (без chmod), тогда невозможно(имхо).

    UPD: Забыл что chmod делают от рута. Поэтому он не подходит.
    Ответ написан
    Комментировать
  • Emacs не сохраняет файлы. Что делать?

    pluffie
    @pluffie Автор вопроса
    Стыдно за старые вопросы
    Решил сам. Проблема была в удалении лишних пробелов, форматировании файла перед сохранением.
    На прошлом девайсе из-за этого не возникало проблем.
    Ответ написан
    Комментировать
  • Как удалить рамку у input?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Вожно это поможет
    * {
        outline: none;
    }

    Я не профессионал в вебе, но у меня такое решение работало. И я в курсе, что оно может убрать лишнее.
    Ответ написан
    1 комментарий
  • Как переделать код без функции на код с функцией?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Не благодари.
    void str_func(char S[128], char C[128])
    {
      int result = 0;
          for (int i = 0; i < strlen(S); i++)
          {
              for (int j = 0; j < strlen(C); j++)
              {
                  if (S[i] == C[j])
                      result++;
              }
          }
          cout << "Количество символов => " << result;
    }

    Синтаксис вызова функции:str_func("предложение", "набор символов");
    Ответ написан
    Комментировать
  • Что выбрать новичку: Python, C++ или все же GOlang?

    pluffie
    @pluffie
    Стыдно за старые вопросы
    Я считаю что плюсы, потому что сейчас они достаточно востребованы, а Go насколько я помню, продолжение обычного Си от гугла. Учи плюсы, и скорее всего ты убьёшь двух зайцев.
    Ответ написан
    Комментировать