• Почему в git добавляются папки, которые содержатся в gitignore?

    Vapaamies
    @Vapaamies
    Психанул и снес свои ответы козлам, не отмечающим…
    .gitignore действует сразу, но в нем надо косую черту переставить:
    .vs/
    Debug/
    Release/
    *.vcxproj.filters
    *.vcxproj.user
    Ответ написан
    Комментировать
  • Как в Windows разделить трафик приложений, часть через VPN, часть мимо него?

    ValdikSS
    @ValdikSS
    Настройте виртуальную машину на использование сетевого интерфейса в режиме моста.
    Ответ написан
    7 комментариев
  • Как в Windows разделить трафик приложений, часть через VPN, часть мимо него?

    @Refguser
    Делаю ИМ и другие решения
    Правильный ВПН реализуется на уровне сетевого интерфейса, поэтому в пределах одной сетевой карты что-то разделить нельзя.
    Но можно использовать не ВПН, а прокси. Тогда это возможно.
    Ответ написан
    Комментировать
  • Кому отдать предпочтение iMac или Windows PC?

    @Drno
    У тебя не в железе проблема, в а прокладке между рулём и сиденьем.
    Поставь нормальную винду, поднастрой её немного.
    настрой железо
    всё будет летать.
    я хз как у тебя это может лагать, разве что там дикие перегревы или кривой биос

    Хотелось бы видеть замеры температуры для начала, при нагрузке и стресс тесте. например от OCCT или аида64
    Ответ написан
    6 комментариев
  • Как хранить изображения в PostgreSql?

    @rPman
    Базы данных не очень эффективны с BLOB-ами, большими объемами данных, вопрос даже не в скорости работы с ними, а в том что инструменты резервного копирования к примеру будут работать значительно медленее, чем если копировать файлы того же объема но размещенные на диске.

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

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

    Причина - большое (десятки тысяч) количество файлов в одном каталоге не совсем удобно в том плане, что многие утилиты резервного копирования (да и просто работа с файлами, получение списка или удаление с помощью bash rm, он до сих пор глючный и тормозит), поэтому вместо хранения файла 031432532341234123.jpeg делать подкаталоги 0314/3253/2341/234123.jpeg заранее расчитав количество уровней от прогнозируемого количества файлов.
    Ответ написан
    1 комментарий
  • Как привязать домашнюю папку к пользователю?

    vabka
    @vabka
    Токсичный шарпист
    usermod -d /home/B A
    Ответ написан
    Комментировать
  • Как скомпилировать консольную программу C++ в .app?

    @dima20155
    you don't choose c++. It chooses you
    Потому что у ваша программа отработала и завершилась. Добавьте паузу, ожиданные ввода данных или что-то ещё и ваша программа будет ждать
    Вы же не удивляетесь, что запускаю компилятор, он останавливается после завершения работы? Вашей программе просто нечего больше делать.
    Ответ написан
    Комментировать
  • Между сборками и пространствами имён нет прямого соответствия. Что это значит?

    AshBlade
    @AshBlade Куратор тега C#
    Просто хочу быть счастливым
    Ты можешь создать сборку (грубо говоря, проект/.csproj), которая называется Service.Domain, но все классы там будут в неймспейсе (пр-ве имен) Another.Namespace
    Т.е. название проекта не накладывает ограничений на названия пр-в имен, которые в нем хранятся.
    Ответ написан
    Комментировать
  • Выражение без эффекта перемещает переменную?

    @deliro
    Если bb; убрать, то всё работает, почему так? Никакого перемещения там не происходит, но компилятор думает иначе.

    Перемещение происходит. Семантически это выражение эквивалентно `{ bb }`

    Это точно системный язык на котором можно писать серьёзные вещи?

    Нет, язык херня. Беги писать на жс

    Или тут и правда происходит некое перемещение в параллельную вселенную?

    Хорошая привычка — агриться на вещи, которые ты не понимаешь. Далеко пойдёшь.
    Ответ написан
    3 комментария
  • Можно ли создать базу данных на одной таблице?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Да. Такие эксперименты были. Лет 5 назад когда был еще жив sql.ru, один человек продвигал
    модель т.н. квинтетов. Это таблица с 5 полями которая полностью описывала любую
    доменную область. Я к сожалению не могу нигде найти следов описания этой системы
    но возможно это оно https://cyclowiki.org/wiki/QDM . Читайте смотрите.

    Второе. В эпоху новых версий DBMS (Oracle/PG/MySQL) когда мы можем использовать
    JSON/XML внутри ячейки, сама идея EAV теряет смысл. Поле атомарно? Атомарно.
    Значит законы реляционной алгебры мы не нарушаем и JSON совершенно легальный
    тип для реляционок. Хотя лет 30 назад его использование было-бы кощунством
    в БД. Но это можно было списать на жесткую экономию ресурсов и чрезмерную
    математичность моделей Бойса-Кодда. Сегодня все используют JSON и нет никаких
    архитектурных доводов против. Поэтому создавайте NoSQL табличку где есть
    key и есть значение в виде либерального типа документа. Как делают MongoDb, CouchDb.
    И если связать их в иерархию то получится вполне себе те-же самые квинтеты.

    Про EAV лучше забудьте. Их любят преподаватели SQL и теоретики. Но практически EAV
    слишком медленно работает чтобы развивать его в бизнес-приложении или в промышленности.
    Мир тяготеет к упрощению. И поэтому JSON - это упрощение EAV. И работает быстрее.
    Ответ написан
    6 комментариев
  • WPF Как управлять элементом из другого окно?

    mindtester
    @mindtester Куратор тега C#
    http://iczin.su/hexagram_48
    xaml лишь язык разметки..
    все элементы доступны в коде...
    почти как в winforms..
    MSDN в помощь
    Ответ написан
    Комментировать
  • Контринтуитивный синтаксис объявления нескольких переменных одного типа?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Объясните, что я недопонимаю?

    Все правильно понимаешь. Привыкай.

    P.S. вот поэтому и рекомендуют * писать рядом с переменной, а не у типа - const char *var , а не const char* var
    Ответ написан
    1 комментарий
  • Контринтуитивный синтаксис объявления нескольких переменных одного типа?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    можно подумать, что при объявлении указателя, символ * относится к имени(не как часть, а как что-то зависящее от него), а не к типу.

    Если взять стандарт языка (например C99) и почитать главы Declarations, Type Specifiers и Declarators, то можно увидеть, что он разделяет declaration-specifiers, в который входят только слова и declarators, в который входят скобочки и звёздочки. Т.е. твой вывод по сути верный.

    Там же можно увидеть, что часть называемую declarator всегда можно обернуть в скобки, из чего можно извлечь следующий вывод: часть объявления вокруг которой можно поставить скобки самым широким образом относится к конкретному идентификатору, оставшаяся часть -- ко всему списку. Т.е. const char *a, b; можно превратить в const char (*a), b, но нельзя превратить в const (char *a), b или в char (const *a), b.

    Ну и напоследок стоит добавить, что такая интерпретация объявления не следует ни из чего с необходимостью, это просто решение которое было принято разработчиками языка. Они могли принять это решение по-другому и тогда уже другие конструкции вызывали бы наше удивление.
    Ответ написан
    2 комментария
  • GCC Добавляет лишние пробелы при компиляции?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Скорее всего проблема в кодировке файла. Попробуй сконвертировать формат файла в utf-8, если другой, и дополнительно смени тип новой строки с \r\n на \n (не уверен, что важно)
    Ответ написан
    Комментировать
  • Какой сервис предоставляем наиболее полный/актуальный список подсетей по IP/ASN?

    ValdikSS
    @ValdikSS
    https://ftp.ripe.net/ripe/dbase/split/

    Вот здесь все файлы, что вам потребуются. Преобразовать в формат БД можно, например, с помощью https://github.com/firefart/network_info
    Ответ написан
    Комментировать
  • Как поместить в массив с указанным типом Null?

    @dima20155
    you don't choose c++. It chooses you
    если у вас vector/array используйте std::variant или std::optional в качестве шаблонного параметра
    в случае С-array, используйте указатель на тип
    вот пример:

    #include <iostream>
    #include <vector>
    #include <optional>
    
    int main() {
        std::vector<std::optional<int>> vec;
        vec.push_back(10);
        vec.push_back(std::nullopt);
        vec.push_back(15);
        for (auto i : vec) {
            if (*i) {
                std::cout << *i << std::endl;
            } else {
                std::cout << "value is not exist\n";
            }
        }
    
        return 0;
    }
    Ответ написан
    1 комментарий
  • Персональный гугл, если ли?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Google - это прежде всего инфраструктура, а не софт. Как только сможете позволить себе потратить десятки миллиардов долларов на постройку ЦОДов, можно и персональный Google будет завести.
    Ответ написан
    3 комментария
  • База по разработке ПО с плагинами на C++?

    vabka
    @vabka
    Токсичный шарпист
    Существуют ли книги - я не знаю, но фундаментально ничего не изменилось:

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

    Таким языком может быть lua - очень популярный вариант. Можно даже какой-нибудь свой язык для плагинов придумать - вот Minecraft вообще для плагинов стопку json-ов предлагает писать.

    Из нового ещё появился webassembly: он удобен тем, что разработчик плагина может выбрать в принципе любой язык, и запускаться он сможет на любой платформе.
    Ответ написан
    Комментировать
  • Как получить случайные числа в C++?

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

    srand устанавливает состояние генератора псевдослучайных чисел. В качестве seed вы там используете количество миллисекунд, которое целую миллисекунду одинаковое, поэтому состояние генератора у вас в каждой функции rand_offer одно и то же - поэтому числа и генерируются одни и теже. sleep(1) лечит проблему потому, что следующий вызов посчитает другое значение count_ms.
    Ответ написан
    Комментировать
  • Как открывать много TCP соединений и поддерживать их?

    bingo347
    @bingo347
    Crazy on performance...
    Как уже написали в соседнем ответе, лимит портов 65535 на 1 интерфейс.
    Но это на один интерфейс, самое простое решение тут воткнуть несколько сетевых карт, да у них будут разные ip (по сути у одной машины будет пул ip), но для 100к коннектов хватит 2 карточек.
    В Linux (насчет других ОС не уверен, но возможно тоже) есть способы поизвращаться и поднять 2+ виртуальных интерфейса на одной сетевой карте. При этом у машины так же будет 2 ip адреса и нужно будет распределять соединения между ними.

    Хотя по хорошему я бы посмотрел здесь в сторону UDP с одним занятым портом на машине, а необходимые возможности TCP уже воспроизводить программно.
    Ответ написан
    5 комментариев