• Какие почтовые сервера и почтовые сервисы позволяют организовать почту со своим доменом на кирилице?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Вам стоит прочитать по Punycode, в котором "живут" все кирилические (все национальные) имена доменов.
    После этого вы поймёте, что АБСОЛЮТНО ВСЕ почтовые сервера и сервисы работают с национальными именами доменов прозрачно, потому что они - в Punycode.

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

    batyrmastyr
    @batyrmastyr
    1) > чтобы хранить весь массив данных в виде json
    JSON уже давно можно хранить в самом MySQL, если вам нужно произвольное число параметров, но значения их скалярные. Для индексации - виртуальные колонки и индексы по ним.
    Если хочется найти искать «1» в массиве [1, 2,5], то вам в PostgreSQL.
    2) «Полнотекстовый поиск» — что вы от него хотите? Если вам нужно точное совпадение, только быстрее, то берите что угодно.
    Если вам нужен учёт словоформ, то он есть как минимум в Монге, Эластик, Постгрес, Сфинкс/Мантикора.
    Если вы хотите больше контроля (поиск с учётом особенностей > 1 языка, тюнинг морфологии, какое-то ранжирование), то выкидываем Монгу (нет тюнинга морфологии и ранжирования, а на каждый язык нужно вешать отдельный индекс).
    Если вы и ранжирование хотите тюнить (вплоть до простенького машинного обучения) и вообще максимальную скорость поиска, то вас спасёт только Мантикора/Сфинкс, всё остальные грустно глотают пыль.

    Но золотая середина - Постгрес. На него довольно легко перекатиться и он избавляет от необходимости разводить NoSQL зоопарк.
    P.S. И забудьте про монгу, Постгрес лучше неё почти по всем параметрам.
    Ответ написан
    Комментировать
  • C - как сделать замену подстроки в строке (руками)?

    wataru
    @wataru
    Разработчик на С++, экс-олимпиадник.
    А что делает startsof()?

    Даже если принять, что оно действительно ищет вхождение второй строки в первой - у вас там в каждой второй строчке ошибка.

    malloc(string_size + sub_size - to_size);

    Объясните мне, как вы получили вот это значение длины?

    А дальше копирование у вас неправильно. Чтобы заменить строку-вхождение вам надо в ответ скопировать начало str1 до вхождения, потом скопировать to, потом скопироваать конец строки str1, после вхождения. Это должны быть три параллельных цикла. У вас в одной ветке их 2 (один в функцию бесполезную спрятан), в другой - только 1.
    Ответ написан
    Комментировать
  • Как сделать чтобы только один из установленных браузеров ходил через vpn?

    Adler_lug
    @Adler_lug
    Сделайте прокси сервер доступный по ВПН и просто в браузере пропишите прокси. В FF это есть с коробки, для Chrome и клонов поддержка индивидуальных прокси расширениями ставится (их там полно разных).
    Ответ написан
    2 комментария
  • Объясните пожалуйста, как правильно использовать rebase ВМЕСТО merge?

    Lynn
    @Lynn
    nginx, js, css
    Совет про rebase вместо merge как раз для случая

    git rebase develop

    чтобы на origin потом никто не умер при мерже

    Т.е. вы его уже используете.

    Финальный merge вашей фичи в develop конечно никуда не денется.
    Ответ написан
    2 комментария
  • C# или C++ как первый язык?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    C# - это как если бы ты скупал золотые драгоценности, переплавлял их, и делал бы из них золотые слитки.
    C++ - это как если бы ты добывал руду в шахте, проходил бы сам разные стадии очистки, параллельно бы промывал речной песок, и в итоге получал бы всё те же золотые слитки.

    Что лучше новичку? Нельзя ответить однозначно. В первом случае ты по началу не только не будешь знать, сколько в твоём сплаве меди, но и вообще не будешь знать о ней, полагая, что золото есть золото. Конечно, со временем ты во всё вникнешь, но это будет потом. Для самозащиты тебе дадут пистолет с резиновыми пулями и слезоточивый газ.

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

    Искатель ли ты приключений, или ищешь лёгкой наживы - решать тебе. Оба варианта имеют свои плюсы и минусы.
    Ответ написан
    3 комментария
  • Устройству присваивается ip адрес из другой подсети. Как исправить?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Возможно, в сети есть второй DHCP.
    Ответ написан
    2 комментария
  • Как подключить порты USB Windows 7 x64?

    @Drno
    Судя по всему в БИОС клава\мышь работают? Тогда проблема в драйверах
    Попробовать как советую безопасный режим(с поддержкой сети)
    Там должно заработать в режиме совместимости. уже оттуда поставить драйвера на мат плату
    Либо настроить любую удаленку, запуститься в обычном режиме, зайти через удаленку и поставить драйвера)
    Ответ написан
    Комментировать
  • Фабричный метод. Как создать рефлексивно по имени поля класс, наследуемый от абстрактного?

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

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

    Пример можно посмотреть вот тут. Там CreateEncoderInternal делает практически то, что вам надо. Только там не константное поле command проверяется, а проверяется, что заданный формат есть в статическом списке в текущем классе.

    И все-равно где-то в коде надо прописать список всех возможных классов, как тут.
    Ответ написан
    Комментировать
  • Как выйти на директорию назад?

    @pfg21
    ex-турист
    cd ..
    Ответ написан
    Комментировать
  • Зачем нужен отдельный синтаксис для препроцессора?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Зачем нужен отдельный синтаксис для препроцессора

    Затем, что препроцессор -- это отдельная программа с отдельным языком? Внутри препроцессируемого файла может быть что угодно, не обязательно код на С или С++. Так, например, linux препроцессирует скрипты линковщика перед тем как использовать их. И исходники написанные на ассемблере, хотя у ассемблера есть собственные макросы, директивы для включения файлов и условной компиляции.
    Ответ написан
    4 комментария
  • Почему возникает ошибка?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему возникает ошибка?

    Потому что это не С++ код. Designated initializers есть в C начиная с C99 и в C++ есть начиная с C++20, но в С++ версии полно дополнительных ограничений.
    Ответ написан
    Комментировать
  • Как считать данные с COM порта в C++?

    @predbannikov_yurij
    Boost asio ещё не упомянули
    Ответ написан
    Комментировать
  • Какой стэк использовать для быстрого доступа данных?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Для "доступа" использовать ту реляционную БД, которая имеется в наличии. При появлении проблем с производительностью - диагностировать их, и с конкретными вопросами приходить на Хабр.
    Для поиска - "быстрого", "по параметрам", полнотекстового - использовать предназначенный для этого движок, например Эластик. При появлении проблем с производительностью - диагностировать их, и с конкретными вопросами приходить на Хабр.

    spoiler
    Сам по себе ход мысли в вопросе очень характерный.
    Звучит примерно так: "Купил машину, что-то плохо тянуть стала. Думаю докупить упряжку лошадей, чтобы запрягать спереди. Лошадиные силы ведь прибавятся! Посматриваю ещё на воздушных змеев, лыжи, и дополнительный омыватель". То есть вместо простых и очевидных действий по диагностике, формулированию конкретных проблем, и последующему ремонту машины мы фантазируем себе набор каких-то бессмысленных и хаотичных телодвижений. Которые мало того что вообще никак не помогут, но скорее всего ухудшат ситуацию.

    И, разумеется, не приводим ни одной цифры, ни одного конкретного примера. Ни даже примерной нагрузки на систему - хоть в попугаях/посетителях. Ни загрузки процессора на серверах. Ни причин, по которым пришлось делать мастер-слейв. Ни текущей статистики по Mysql. Одни оценочные суждения, " А здоровье мое не очень. То лапы ломит, то хвост отваливается." Общие причитания про повышение нагрузки, "на запись и чтение". При том что запись уже больше не упоминается нигде, и непонятно - есть какие-то проблемы с ней, или нет. Да и с MySQL в целом.

    В итоге из всех невнятных жалоб становится понятно, что с самой БД, судя по всему, проблем нет. А есть только один участок, к которому есть вопросы - поиск. Есть идея реализовать его через Эластик, но есть сомнения. При том что Озон там, МВидео и прочих мастодонтов Эластик устраивает, а вот нашему магазинчику с 300К записей он не угодил. Сразу вспоминается анекдот про нового русского и 600-й мерс с засорившейся пепельницей. Не тянет Эластик? Будем менять на Монгу!

    Я думаю, что в таких ситуациях в первую очередь надо установить в систему здравый смысл. Перестать метаться с безумными фантазиями, а подойти к вопросу логически: есть вопросы к поиску? Значит надо поставить поисковый движок. поисковый движок - это в 99% случаев - Эластик. К нему есть вопросы? Отлично. Максимально подробно формулируем эти вопросы - не забывая привести индексы, конфиги, запросы - и задаём конкретный вопрос по оптимизации работы Эластика.

    А сейчас проблема "может мне монгу воткнуть?" проходит исключительно по разряду "Когда коту делать нечего, он гигиеной занимается".


    P.S. Не удивлюсь, если в итоге выяснится, что вся проблема сводится к истории, которая случилась в одном маленьком интернет-магазинчике: там тоже купили аж 3 сервера по 256Г мозгов в каждом, мастер-слейв, все дела... И не поменяли дефолтное значение innodb_buffer_pool_size в 128М. И что характерно, этот "кластер" даже тащил какое-то время, пока не случилась 10х нагрузка.
    Ответ написан
    2 комментария
  • Как с помощью diskpart.exe в Windows 10 разметить неразмеченную часть жесткого диска?

    Winsik
    @Winsik
    сис.админ, недопрограммист :)
    зачем с помощью диспарт ? откройте "Управление дисками" и оттуда расширьте раздел или создайте второй. Ну, а так :
    list disk 
    select disk 0 ( или что там у вас)
    create partition primary

    ну и в довесок:
    list part
    select part 3 ( или что там получилось)
    format FS=NTFS QUICK (форматируем)
    assign letter=G (назначаем буковку)

    А вообще у любой команды можно попросить подсказку
    help cre part prim
    Ответ написан
    3 комментария
  • Запуск OpenVPN клиента и сервера на одной машине. Как?

    hint000
    @hint000
    у админа три руки
    На VPS я решил организовать "транзитный VPN"
    А всего-то надо было настроить на промежуточном узле DNAT через iptables. И не нужно там ни клиента, ни сервера OpenVPN.

    Update: DNAT + SNAT.
    Ответ написан
    6 комментариев
  • Как установить Windows 98 на телефон?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Интересно, такие бредовые идеи возникают отчего? От нежелания хоть немного узнать, что из себя представляет "телефон" с точки зрения вычислительной техники или просто от модно-стильно-молодежности? Это примерно как дети спрашивают "А если взять атом величиной с дом?"

    Нет, малчик, нЭльзя. нЭ тот архитектура.

    Хотя путь джедая конечно же есть. Найти исходники, перекомпилять под нужную архитектуру, написать драйвера, написать загрузчик - делов-то...
    Ответ написан
    Комментировать
  • Как в структуре обьявить ссылку на структуру в С arduino?

    RiseOfDeath
    @RiseOfDeath
    Диванный эксперт.
    Так у вас в структуре две переменные с одинаковым именем, на что компилятор и ругается.
    bool submenu;  
    struct menu *submenu;
    Ответ написан
    1 комментарий