Задать вопрос
  • Стоит ли учить Boost в 2021 году?

    @res2001
    Developer, ex-admin
    Вполне востребованная библиотека.
    Но учить не стоит. Стоит знать, какие возможности она предоставляет и как ее исопльзовать в своем проекте. Сделать пример с какими-нибудь достаточно сложными компонентами буста, например asio.
    Ответ написан
    Комментировать
  • Что изменить в базе данных?

    @ComodoHacker
    Ошибка первая — не понятно, какую задачу она должна решать. "Получить зачет"?
    Ответ написан
    Комментировать
  • Правильно ли я понимаю что такое Язык программирования?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Нет, неправильно.
    Во первых - язык это не текстовый файл. Это набор правил (синтаксических, семантических), лексем и прочего.
    Во вторых процесс компиляции не так выглядит совершенно. Компилятор никаких переменных не создает. Более того - там еще есть трансляторы, линковщики, валидаторы и прочее.

    Ну и да, на ассемблере компиляторы давно не пишут.

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

    Ну вот это в каком то приближении правильно, правда необязательно на языке ассемблера.
    Ответ написан
    Комментировать
  • В чем идея и как работают шаблоны?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос очень хороший.
    А ответ на него очень простой.

    Шаблоны нужны для отделения логики приложения от логики отображения.
    Разделив их, мы получим сразу кучу выгод:
    • Нормальную структуру приложения, когда вывод начинается только после того, как отработала вся логика. То есть у нас никогда не будет проблем с ошибкой headers already sent, с возвратом json-а вместо html, с выводом в page header-е тех данных, которые появляются только в процессе работы скрипта
    • Мобильность - один и тот же движок можно будет использовать на нескольких сайтах, меняя только шаблоны, но весь код оставляя одинаковым. Что поможет, в частности, вносить обновления в движок и исправлять ошибки на всех сайтах разом.
    • Разделение труда - сейчас обычно над отображением работают фронтендеры, то есть, когда бизнес-логика отделена от шаблонов, то любой фронт сможет с ней работать


    Соответственно, главное, что надо знать про шаблоны - это то, что любой вывод в РНР скрипте начинается только после того, как отработала вся бизнес-логика.
    Также важно понимать, что в самом по себе смешивании "кода и разметки" ничего ужасного нет. В шаблоне всегда будет код. Без него невозможно выводить динамический контент. Важно только - какой это код, к чему он относится? Код в шаблоне должен относиться только к самому шаблону. На первых порах новичку сложно это отличить. И это еще один плюс специализированных шаблонизаторов.

    После этого есть варианты, которые отличаются в основном удобством работы с кодом шаблона.
    Править HTML код записанный в виде РНР строки - это САМЫЙ неудобный .

    Дальше идут всякие наколенные решения, типа
    бизнес-логика
    include header
    ?>
    хтмл конкретной страницы
    <?php include footer ?>

    или чуть более продвинутый, когда шаблоны хранятся отдельно и могут вкладывться друг в друга. Сначала пишем функцию,
    function render_template($filename, array $data = [])
    {
        ob_start();
        extract($data);
        require __DIR__ . '/' . $filename;
        return ob_get_clean();
    }

    а потом в коде страницы пишем
    бизнес-логика
    ...
    $page_html = render_template('page.tpl.php', [
        'data' => $data,
    ]);
    echo render_template('main.tpl.php', [
        'navigaton' => $nav_list,
        'title' => $title,
        'page' => $page_html,
    ];

    где сами шаблоны это
    ...
            <?php foreach ($navigation as $item): ?>
                <li>
                    <a href="<?= e($item['href']); ?>"><?= e($item['title']); ?></a>
                </li>
            <?php endforeach ?>
    Важно! Любой вывод в этих шаблонах должен экранироваться в обязательном порядке (кроме очевидных случаев, когда мы выводим результат рендера).

    Ну и наконец нормальные шаблонизаторы, из которых я горячо рекомендую Twig.
    Главное, что про него надо знать - даже самые зелёные нубы осваивают его без затруднений. И настоятельно рекомендую сразу перейти на него, после того как наиграетесь с решениями на коленке.
    Ответ написан
    9 комментариев
  • Создание файла txt и запись в него C++?

    @res2001
    Developer, ex-admin
    Смотри сначала сюда: https://en.cppreference.com/w/cpp/io/basic_fstream
    Потом сюда: https://en.cppreference.com/w/cpp/io/basic_filebuf/open
    fstream открывает файл по умолчанию (как у тебя) в режиме in|out, а это значит, что если файла не существует, то возникает ошибка (смотри таблицу по второй ссылке). Логика такая, что если ты открываешь файл для чтения (тут не важно, что он открывается еще и для записи) без дополнительных флагов, то файл должен существовать.

    В пару с ifstream, который открывает файл для чтения, существует и ofstream - он открывает файл для записи. При использовании ofstream не существующий файл будет создан (смотри таблицу по второй ссылке).
    Ответ написан
    Комментировать
  • Создание файла txt и запись в него C++?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    https://stackoverflow.com/questions/15667530/fstre...

    Про флаги можно подробнее почитать, внезапно, в документации https://www.cplusplus.com/reference/ios/ios_base/o...
    Ответ написан
    Комментировать
  • Как запретить PHP следовать HTTP заголовку Location?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Вопрос редкий в своей бессмысленности.
    Причем с самого начала. С какой стати "запрет просматривать каталоги" имеет хоть какое-то отношение к "безопасности сайта"?
    Дальше уже смешно. Что это за "технические причины", которые позволяют написать в .htaccess какой-нибудь, скорее всего, RewriteRule, но Options -Indexes написать вдруг не дают?
    Дальше идет совсем уже какое-то безумие, "не могу запретить, поэтому сделал редирект на него". ШТА? Может быть всё-таки не на него, а из него?

    Ну и вишенка на торте - оказывается, безопасность сайта зависит от способности РНР не реагировать на редирект. Вся инфраструктура мира, безопасность банков и атомных станций под угрозой: вопрос века: следует ли пых-пых заголовкам, или нет.

    Я уже не говорю про то что "PHP" не следует никаким заголовкам. Есть несколько разных способов сделать НТТР запрос из РНР, и соответственно, для каждого способа запрет следования заголовку Location будет разным. То есть, не указывая способ, которым делается запрос, надеяться на ответ несколько наивно.
    Ответ написан
    Комментировать
  • Как запретить PHP следовать HTTP заголовку Location?

    DevMan
    @DevMan
    да никак. просто не отправляйте его.
    и, для тех кто в танке, локейшену следует клиент, а не слоник.

    а просмотр каталога запрещается другими средствами.
    Ответ написан
    3 комментария
  • Как сделать вхождение по TAB в терминале linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    bash completion - это большая библиотека функций, которые по tab умеют дополнять
    * имена алиасов
    * имена функций
    * имена переменных
    * названия команд
    * пути файловой системы
    * опции для некоторых команд.

    Можно почитать документацию, как добавить дополнение для вашей собственной команд - https://www.gnu.org/software/bash/manual/html_node...
    Ответ написан
    Комментировать
  • Ошибка при установке Wine в Linux Mint 19.3?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Потому что неправильно устанавливаете Wine.
    Из реп не самый лучший и рабочий способ!

    Устанавливайте по инструкции из Wine Wiki.
    Ответ написан
    2 комментария
  • Ошибка при установке Wine в Linux Mint 19.3?

    bingo347
    @bingo347
    Crazy on performance...
    sudo apt install winehq-stable
    6.0.2~buster-1 - это не пакет, это актуальная версия пакета winehq-stable в репозиториях Вашего дистра
    Ответ написан
    2 комментария
  • Кто-нибудь знает хорошие онлайн-курсы по Питону с нуля?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Либо человек способен учиться по учебникам, либо не способен быть программистом.
    Ответ написан
    Комментировать
  • В чём смысл передавать array_reverse в foreach без явной необходимости обратного порядка элементов?

    ipatiev
    @ipatiev Куратор тега PHP
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для ответов на подобные вопросы всегда полезно использовать логику.
    Например:
    Если необходимости в обратном порядке элементов нет, то array_reverse не нужна.
    Если array_reverse используется - значит, скорее всего, необходимость есть, но вы её просто не видите.

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

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

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Первая ошибка - поставить окошки. Всё остальное как ком развилось из этого. Ставьте голую убунту, апачи-фигачи, что там вам надо - но не насилуйте сервер плясками с оконными менеджерами, рдп, внц и прочими совершенно лишними для него вещами.
    Ответ написан
    1 комментарий
  • Сложно ли перейти с c++ на c#?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    Очень сложно если ты недоджуниор, который и С++ еще не освоил. Просто потому что тебе собственно все еще надо учить все почти с нуля
    А если ты мид/сеньор, то ты таких вопросов и задавать не будешь.
    Ответ написан
    2 комментария
  • Ubuntu Server- Read-only filesystem?

    hint000
    @hint000
    у админа три руки
    Чтобы сильно уменьшить вероятность подобных событий, выношу из корня разделы /var и /tmp.
    В результате на корневую файловую систему почти ничего не пишется, за исключением вручную запускаемых обновлений или установки нового софта, изменения настроек (а всё это делается не каждый день).
    Ответ написан
    Комментировать
  • Как найти принадлежность точки к такому графику?

    Alexandroppolus
    @Alexandroppolus
    кодир
    "График" в твоей терминологии - серая область? Если да, то здесь просто набор ифов
    if (y > 0) {
      return (y >= x) && (y*y + x*x <= 9);
    } else {
      return (y >= -3) && (x <= 3) && (x >= -3) && !(y < -1 && y > -2 && x < -1 && x > -2);
    }
    Ответ написан
    2 комментария
  • Как бэкапить коробочный битрикс?

    kirk_novozhilov
    @kirk_novozhilov
    Lead Bitrix Developer, Bitrix mentor
    1. Штатный метод.
    Бэкап: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...
    Восстановление: https://dev.1c-bitrix.ru/learning/course/?COURSE_I...

    2. Средствами BitrixEnv
    • Выбираете "6. Configure pool sites > 6. Change backup settings on site". Проводите настройки.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.


    3. Кастомно.
    • Делаете бэкап файлов отдельно.
    • Делаете бэкап БД отдельно.
    • Пишете shell-скрипт копирования на внешний диск, FTP, или облако (нужное подчеркнуть) и вешаете его на крон.
    Ответ написан
    3 комментария
  • Почему невозможно создать объект в стеке?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    ссылка на неразрешенный внешний символ "public: __thiscall MobilePhone::~MobilePhone(void)"
    почему просто из-за попытки создать экземпляр в стеке вообще должны вылазить какие-либо ошибки?

    Ты текст ошибки прочитал? Как ты думаешь, что происходит, когда заканчивается жизненный цикл объекта созданного на стеке (т.е. при выходе из main() в твоём случае)?
    Ответ написан
    Комментировать