Задать вопрос
  • Возможно ли игнорировать файл/папку через .gitignore, которые уже есть в репозитории?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    Нет, если файл уже попал в репозиторий, то он будет отслеживаться до тех пор, пока ты его оттуда не удалишь.

    Игнор действует только на те файлы, которые ещё не отслеживаются. Помогает СЛУЧАЙНО не добавить файл. Но лаже игнор не запрещает принудительно загнать файл в репозиторий.

    Если нужно игнорировать файлы конфигурации или секреты, то обычно делают для них шаблон и к имени файла добавляют расширение .sample например. А при реальном развёртывании на основе шаблона создают уже нормальный файл с реальными данными.

    Ещё есть трюк с временным игнорированием изменений в файле, ранее уже добавленном. Но он будет работать только в локальной копии репозитория и только после ввода команды
    git update-index --assume-unchanged файл
    Ответ написан
    Комментировать
  • Где взять офлайн установочник для gcc в убунте?

    Adamos
    @Adamos
    Установщиков под линуксами обычно не бывает, все ставится пакетами из репозитория.
    Но нюанс в том, что один пакет компилятора ни черта не даст, нужно выкачивать к нему все зависимости.
    Это в убунте может сделать, например, apt-rdepends.
    Ответ написан
    Комментировать
  • Как переписать код с с++ на с(си)?

    CityCat4
    @CityCat4 Куратор тега C
    Жил да был черный кот за углом...
    Обычно я такими вещами не занимаюсь... но... жалко девочку, пример скачала, но он на плюсах, а злой препод требует plain C (а еще может потребовать обьяснить, как оно работает! :DDD)
    (JFYI, Инна - я бы только за форматирование пару поставил - читать это невозможно от слова совсем)

    #include <iostream>
    меняем на
    #include <stdio.h>
    using namespace std;
    нафиг.

    Цикл вывода, где потоковый оператор cout, переписать следующим образом:
    for ( j = 0 ; j < W ; j++)
      printf("%d ", matrix[i][j]);  
    putchar('\n');


    И настоятельно рекомендую, прежде чем идти лабу сдавать - почитать или посмотреть в отладчике, как это работает. Потому что чайник срезается одним вопросом.
    Ответ написан
    3 комментария
  • Ne sovsem ponyatno kak ispravit, kto podskajet?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Ne sovsem ponyatno kak ispravit

    смотреть не туда, куда ты смотришь сейчас (не на определение COMPILE_TIME_ASSERT, с ним всё ок, оно такое, чтобы генерировать ошибку компиляции, когда какое-то условие в коде не выполняется), а в строку
    ../deps/source-sdk-2013/mp/src/public/tier0/threadtools.h:1130

    где этот assert сработал, и разбираться с ней.
    Ответ написан
    6 комментариев
  • Почему у меня всегда разная скорость скачивания?

    gbg
    @gbg Куратор тега Компьютерные сети
    Любые ответы на любые вопросы
    Проблема в том, что скорость, которую декларирует провайдер - это скорость последней мили, от провайдера к вам. А как там сложатся дела в интернете - провайдер гарантировать не может.

    Стим использует ряд трюков для ускорения закачки (тот же LEDBAT и многопоточное скачивание), у него мощные датацентры и CDN - отсюда и возможность выжать из вашей последней мили всю скорость.
    Ответ написан
    4 комментария
  • Суть макросов в с++?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Макроссы часто используют для условного включения каких-то функций на этапе компиляции. Например, отладочного логирования. Тогда в зависимости от ключей компиляции можно получить релизный исполняемый файл вообще без этого ненужного кода.

    Еще макросы можно использовать для гарантирования инлайнинга кода. Если есть что-то часто повторяющееся, например, это же самое логирование, то можно сделать макросы и избегать дополнительных накладных расходов на вызовы функций.
    Ответ написан
    3 комментария
  • Как запретить пользоваталям в сети использовать VPN? как блокировать соединения?

    @nApoBo3
    Совсем DPI.
    Усложнить, заблокировать все исходящие соединения кроме HTTP/HTTPS/MAIL.
    Еще усложнить HTTP и HTTPS пускать через прокси.
    Дополнительно групповыми политиками запретить запуск VPN клиентов.

    Ну и самое главное. Должно быть распоряжение запрещающее использование таких средств в компании с соответствующей санкцией, дальше анализ трафика по пользователям и применение данного распоряжения.
    Ответ написан
    1 комментарий
  • Не подписывает документы. В чем проблема?

    CityCat4
    @CityCat4
    Жил да был черный кот за углом...
    В сертификате "Калуга астрал" видимо указан OCSP - сервис для онлайн-проверки статуса сертификатов. Пока данный сервис не будет онлайн/доступен, этим сертификатом ничего нельзя будет подписать, потому что он не может проверить статус отзыва.
    Загрузка CRL на компьютер ничего не решает - должен работать именно онлайн проверятор.
    Ответ написан
    Комментировать
  • Как пробросить все порты роутера?

    HemulGM
    @HemulGM
    Delphi Developer, сис. админ
    DMZ или режим моста, если такой имеется.
    Ответ написан
    1 комментарий
  • Почему провайдеры не могут заблокировать VPN?

    CityCat4
    @CityCat4 Куратор тега VPN
    Жил да был черный кот за углом...
    Почему не могут-то? Могут. Просто такой команды пока не было. Погуглите, как с этим в Китае, например (с работой VPN). Или Вы думаете, тот факт, что Shadowsocks - китайская разработка - случайность? :)
    Ну и кроме того, не всякий VPN - это обход блокировок. В энтерпрайзе - это обычная технология обьединения филиалов с головным офисом и предоставления удаленного доступа сотрудникам.

    Предложил изменение вопроса - убрал тег "Шифрование"
    Ответ написан
    Комментировать
  • Как проверить работоспособность плашки ОЗУ?

    @kisaa
    Memtest86
    https://www.memtest86.com/

    Скачать, записать на флэшку, загрузиться, запустить, оставить на ночь.
    Ответ написан
    1 комментарий
  • Проверить первые 2 байта?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Окройте файл в ifstream в бинарном режиме и читайте 2 байта через read.

    Или используйте fread. Читайте 2 байта в буфер длинной 2.
    Ответ написан
    Комментировать
  • Какие есть книги по машинному коду?

    AMD64 Architecture Programmer’s Manual
    Intel 64 and IA-32 Architectures Software Developer Manual
    Ответ написан
    Комментировать
  • Почему вставка элементов занимает такое время?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Классический массив - это непрерывная область памяти, заполненная данными в порядке возрастания индексов. Чтобы вставить элемент в массив необходимо перенести часть уже имеющихся элементов, освободив место под вставляемый. При вставке в случайное место матожидание количества переносимых элементов будет n/2, соответственно сложность алгоритма оценивается в O(n). Добавление элемента в конец массива имеет сложность O(1), если нам известен текущий размер и мы не выходим за пределы памяти, выделенной для хранения массива. Если памяти недостаточно, то придётся выделить новый блок, перенести туда весь массив и освободить старый блок памяти. Эта процедура тоже занимает O(n).

    Вставка в список зависит от того, есть ли у нас указатель на то место, куда надо вставить новый элемент. Если нет, то сначала необходимо выполнить поиск, который оценивается в O(n). Сама вставка, при этом, не требует перемещения других элементов и всегда выполняется за O(1).
    Ответ написан
    Комментировать
  • Это нормальные результаты трассировки?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Трассировка - это ICMP. Обработка ICMP, или во всяком случае обработка ping и отправка pong - это задача с низшим приоритетом для любого узла за редчайшим исключением. Потому даже 100% потерь ни о чём не говорят. TCP или UDP пинг был бы более информативен, но с ними есть определённые сложности - при отсутствии специального ПО на целевом узле результаты будут весьма приблизительными.

    Потери на промежуточных узлах тоже ни о чём не говорят. Во-первых, маршрутизаторам и без ответов на твои пинги есть чем заняться, во-вторых, тебе с промежуточными узлами общаться не требуется. ДО целевого узла добирается всё? и даже ответы - тоже возвращаются все? ну и славненько. Вот время прохождения пакета - это значимое число. Да и то, с учётом низкого приоритета, прохождение TCP пакета может быть намного быстрее.
    Ответ написан
    Комментировать
  • Как найти коммит после отката?

    egor_nullptr
    @egor_nullptr
    Если вы успели закоммитить свои изменения, то найдите этот коммит при помощи git reflog и переключитесь на него при помощи git checkout.
    Ответ написан
    2 комментария
  • Как вставить определенное слово в строку в необходимом мне месте?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    Не так почти в каждой строчке.

    Во-первых, зачем вам структура из четырех строк? Зачем вам массив из нее на 1000 элементов.

    Вот это вообще что за хрень?
    for (i; i < 1; i++) {

    Вас этот цикл из одной итерации нисколько не напрягает?

    Далее, в задании четко сказано
    Разработать функцию, которая вставляет в предложение заданное слово. Новое слово должно стать в предложении n-м (n задается как третий параметр функции)


    Т.е. вам надо взять одну функцию, и вызвать ее 3 раза с передавая туда то 1, то 2, то 5, а не писать 3 Poshuk'а.

    Далее, во всех ваших функциях вы обращаетесь к list[] по разным индексам, но у вас только один первый элемент массива вводится (опять, нахрена вам целый массив структур, если в задаче дано ровно 3 строки и одно слово?!)

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

    Чтобы сдвигать символы в строке вам надо сначала найти ее длину, потом с длина+k циклом пройтись назад до крайнего сдвигаемого индекса и присваивать текущему символу значение символа по индексу i-k.
    Ответ написан
    Комментировать
  • Что лучше выбрать Partitioning или вынос данных в другую базу (таблицу)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Как всегда, человек выстрелил себе в ногу, но ищет почему-то партитуру Маленькой ночной серенады Моцарта.
    Казалось бы, при чем здесь партиционирование, если проблема в том, что в БД хранятся файлы?

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

    Партиционирование применяется, когда в БД много строк.
    А физический размер БД не имеет значения.

    Надо во-первых, выкинуть файлы из БД
    А во-вторых, решать только реальные проблемы, а не "что-то у меня база растолстела"
    Ответ написан
    2 комментария
  • Почему в СТЕКЕ разрешается выделять достаточно мало памяти?

    Adamos
    @Adamos
    Большинство ресурсов выделяется динамически? Но ведь это намного дороже, чем в стеке.

    О дороговизне выделения памяти необходимо помнить, если это происходит часто: в цикле, в постоянно вызываемых функциях и т.п. Вряд ли вы области на многомегабайт выделяете миллионы раз в секунду. А если вы время от времени хапаете памяти мегабайтами и потом сравнительно долго работаете с ней - собственно затраты на ее выделение пренебрежимо малы.
    Ответ написан
    Комментировать
  • Почему в СТЕКЕ разрешается выделять достаточно мало памяти?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Да, большинство ресурсов выделяется динамически.

    Во-первых, потому что стек программе выделяется один раз сразу, а вот динамическую память все программы разделяют между собой. И пока одна программа ест гигабайт - вторая программа может жрать 10, а когда вторая завершится - первая может съесть эти 10 гигабайт. Со стеком так не получится, он должен быть непрерывен по адресам. И тогда каждой программе придется всегда выделять себе максимально возможный объем памяти, даже если он может не понадобится. Именно поэтому программы обычно не выделяют много стека.

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

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

    Edit: да, если вам нужно больше стека, можно сделать так, чтобы программа получала больше стека. В С++ это делается параметром линкера.
    Ответ написан
    Комментировать