Задать вопрос
  • Один профиль пользователя на несколько компьютеров?

    @rPman
    Нужен домен контроллер, из бесплатных на базе linux samba, для этого нужна отдельная машина, хватит чуть ли не малинки, можно воспользоваться облачными решениями (лучше настроить самому на vps-ке), потребуется vpn до них (не обязательно делать так чтобы интернет шел через него, только локальная сеть). Правда без доступа к домен контроллеру будут сложности.

    Без домен контроллера придется колхозить, вариантов много но все они страдают разными проблемами.

    Например, помимо ярлыков и файлов есть настройки приложений, которые хранятся как в виде файлов Local и AppData в профиле пользователя, так и в реестре. А еще есть глобальные для локальных пользователей но в пределах одного компьютера настройки приложений, они так же хранятся в реестре либо в каталоге c:\ProgramData (кстати эти настройки домен контроллер не синхронизирует)

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

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

    Универсальной прозрачной синхронизации настроек и установки приложений я не видел, под linux такие есть, но не под windows.
    Ответ написан
    3 комментария
  • Стоит ли учить Си?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    Зачем учить Си сейчас?

    Чтобы не учить потом.
    Ответ написан
    1 комментарий
  • Регулярное выражение для этого списка электронных адресов?

    WblCHA
    @WblCHA
    Учитывая разнообразие эмайлов, можешь просто юзать это: /^.+@.+$/
    Ответ написан
    3 комментария
  • Как пинговать windows из линукс?

    Adamos
    @Adamos
    чего не хватает

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

    @Karpion
    Для начала Вам надо освоить понятие "адресное пространство" - чем оно отличается от "памяти". Узнать, чем "адресное пространство компьютера" отличается от "адресное пространство процесса" (в частности - у каждого процесса есть собственное адресное пространство).

    Дальше хорошо бы узнать сегментную систему адресации процессоров *86 - значительная часть терминологии идёт оттуда, хотя реально после появления 32-битной адресации на процессоре i386 сегменты практически не задействуются.

    Ну и надо иметь понятие о программировании на ассемблере.

    В первом приближении запуск процесса выглядит так:
    • Ядро создаёт структуры данных для процесса. В т.ч. - распределение адресного пространства.
    • Ядро смотрит в файл программы и выделяет место под программный код программы (тут я рассуждаю в контексте "процесс есть исполняющаяся программа"). Это место (и/или помещённый туда код) входит в "сегмент кода". Если одну программу запустили несколько раз - её сегмент кода попадает в несколько процессов.
    • Ядро смотрит список разделяемых библиотек, прописанный в файле программы. Если эти библиотеки не загружены ранее запущенными процессами - под эти библиотеки тоже выделяется адресное пространство; и это адресное пространство тоже входит в сегмент кода. Но надо понимать, что адресное пространство каждой библиотеки попадает во все процессы, которые используют эту библиотеку. В идеале - библиотека во всех процессах должна находиться на одном и том же адресе адресного пространства; но иногда это не так.
    • По ходу дела в процессе работы программа может подгружать новые библиотеки. Их адресное пространство тоже попадёт в сегмент кода.
    • Как правило, код программы и код каждой библиотеки - непрерывный. Но между ними - бывают разрывы.
    • Для работы нужно выделить адресное пространство под стек. В идеале - одно д.б. непрерывным. Но иногда - приходится извращаться и делать его разрывным. Это = сегмент стека. Активно используется при вызове подпрограмм/процедур/функций - через стек передают аргументы, на стеке располагают локальные данные подпрограмм/etc. Особенно активно стек используется при рекурсии; тогда как в древних языках с запретом рекурсии нередко обходились статическим размещением аргументов и локальных переменных.
    • Для данных, размещаемых в областях, резервируеммых функцией malloc() - используется куча. Ей разрешается быть не непрерывной, т.е. состоять из разорванных кусков.


    Фраза "поток берет информацию на выполнение" говорит о том, что Вы читали плохие книги (извините за прямоту).
    Инструкции программного кода - берёт процессор (или ядро - если процессор многоядерный), т.е. железка. Ядро операционки лишь подготавливает инструкции программного кода для того, чтобы процессор мог их брать. Ядро делает это один раз при старте процесса; ну и вносит поправки при свопинге/пейджинге. А процессор исполняет каждую инструкцию кода; ну, чтобы Вы лучше поняли: каждое сложение или иная арифметическая операция, каждая пересылка данных - является инструкцией.
    Кстати, всё, что делает ядро операционки - записано аналогичными инструкциями кода. Но ядру дополнительно позволены особые инструкции.

    Мне кажется, Вам рано разбирать понятие "поток". Сначала надо понять, как работает система, в которой не реализованы потоки - т.е. любой процесс является однопоточным. И потом уже - разбираться с потоками.
    Ответ написан
    Комментировать
  • Зачем нужен hash?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    это защита от Cross-Site Request Forgery https://cheatsheetseries.owasp.org/cheatsheets/Cro...
    данный hash формируется на сессию. вот он и проверяется при клике, что клик сделан именно с сайта вк, а не подделан с другого сайта
    Ответ написан
    Комментировать
  • Почему при попытке вывести суммы выдаёт не то что нужно?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Кода недостаточно, но думаю, что ты не инициализируешь summ нулями
    Ответ написан
    4 комментария
  • Изоляция трафика между VLAN Mikrotik. Правила фильтрации не срабатывают. Возможно есть какой-то другой способ?

    Keffer
    @Keffer
    ICANN
    Но ведь так сейчас многие статьи рекомендуют разводить на виланы, а вот как изолировать между собой ни в одной статье не говорится...


    Забудьте об этом раз и на всегда. И используйте старый добрый способ навешивания виланов на порт, без бриджа. Проверено и гарантия на 146% полноценной работы. Тот кто придумал развешивать на бридже виланы - идиот клинический.
    Ответ написан
    Комментировать
  • Как сделать, чтобы учитывались неполные номера в черном списке?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    SELECT COUNT(*) FROM blacklist WHERE ${CALLERID(num)} LIKE CONCAT(callerid, '%') AND blockenabled = 1

    И проверять, что вернулось количество больше нуля.
    Ответ написан
  • Как решить проблему с вводом двумерного массива?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    //переопределяю массив новыми размерами
    a[row][col];
    С чего вы сделали такой вывод? Это просто получение значения из массива a по индексам row и col.
    Соответственно, массив у вас остаётся размером 1x1 и при записи в несуществующие адреса повреждается стек.
    Как решить проблему?
    Изучить, как создавать массив динамически.
    Ответ написан
    Комментировать
  • Как решить проблему с вводом двумерного массива?

    a[row][col]; Это не переопределение массива, а доступ к элементу с индексами row и col.
    Для создания динамичесго массива используйте указатели или std::vector.
    Ответ написан
    Комментировать
  • Как создать платную смс подписку?

    @podde
    самый младший сисадмин
    Вы слишком хорошо думаете об операторах.
    Это всё делается через них. Они берут себе конский процент с прибыли за все эти подписки (по-моему, 60 или 70 процентов, не помню точно). Для организации подписки надо иметь ИП или ООО.
    Зачем вам это? Облапошивать народ? Не надо в погоне за деньгами становится плохим человеком.
    Ответ написан
    3 комментария
  • Как использовать PDO в других классах?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вопрос хороший и правильный. Всё остальное - не очень.
    К сожалению, то что у тебя сейчас - это тоже говнокод и неправильно.

    Тут надо понимать одну очень простую, но очень неприятную вещь: ООП, в отличие от ПХП - это сложная тема. Явочным порядком, там подглядев, тут скопипастив - ООП изучить нельзя.
    Максимум что у тебя получится - это та же процедурщина, вид сбоку. Неподдерживаемый говнокод, просто по-обезьяньи обернутый в классы.

    Но учиться все равно надо.
    Главное что надо понимать про ООП - оно не про сами классы, а про их взаимодействие.
    именно поэтому то самое жлобал и является говнокодом. Потому что никакого взаимодействия нет ,и класса тоже нет - есть функция, которую если вынуть из класса, то НИЧЕГО не изменится.

    Но и то что у тебя сейчас - это не ООП.
    Каждый раз создавать новое подключение можно и без всякого ООП. Вот только оно убьёт тебе сервер БД.
    Чтобы было ООП, надо передать уже созданный инстанс класса для работы с БД как параметр конструктора.

    Кроме того, класс qpdo - это какой-то анекдот, бессмыслица. Обезьяна увидела как человек носит очки, напялила на нос ложку и ходит с гордым видом. Внешне вроде то же самое, но смысла никакого.
    Ты можешь объяснить, ЗАЧЕМ тебе класс qpdo? Чтобы настройки прописать? А ты подумал что настройки бывают РАЗНЫЕ? Что дома у тебя логин рут и пароль пустота, а на хостинге это не прокатит. И что - будешь код переписывать, каждый раз заливая из дома на сервер? Серьёзно?
    Настройки должны всегда лежать отдельно. А больше ни для чего твой класс не нужен.

    Поэтому,

    1. qpdo выкинуть на помойку, по крайней мере до тех пор, пока не поймешь, для чего тебе свой класс, и как с ним обращаться.
    2. Создать один раз инстанс класса для работы с БД (в простейшем случае - PDO) и передавать в другие классы через констркутор
    3. в конструкторе присваивать его переменной класса, которую использовать для доступа к БД.

    В итоге возвращаемся к исходному вопросу, как передать соединение в другой класс:
    class somethingClass {
      function __construct($db) {
        $this->db = $db;
      }
    
      function somethingFunction(string $key) {
        $query = $this->db->prepare("SELECT `key` FROM `table` WHERE `key` = :key");
        $query->execute(array(':key' => $key));
        return $query->fetchColumn();
      }
    }


    Бонус
    echo 'Ошибка подключения к БД MySQL: ' . $error->getMessage() . ''; die;
    - это ад и говнокод.
    Да, в прошлом веке так писали. С тех про прошло уже 20 чертовых лет. 20, Карл! Тебя небось еще в проекте не было.
    Сайт, который вываливает вот это всё на всеобщее обозрение - это позор.
    Все ошибки сайт должен всегда держать при себе. И никому не показывать. И поэтому никогда не надо лезть руками в ту ошибку, которую выбрасывает РНР. Надо дать ей спокойно пойти туда, куда идут все остальные ошибки.
    Ответ написан
    Комментировать
  • Почему bash не добаляет значение к массиву внутри цикла?

    @voleg4u
    http://www.voleg.info/
    В баше while совершенно не встроенная функция. Она вызывает fork, и поэтому все остальное выполняется в sub-shell. Заставить вразумительно работать while нереально.
    Ответ написан
    2 комментария
  • Почему значения меняются?

    @res2001
    Developer, ex-admin
    Потому что массив так нельзя вернуть из функции. Сейчас вы просто возвращаете указатель. Пока указатель находится в функции getMas он действительно указывает на массив. Как-только вы вышли из getMas стек схлопнулся (ваш массив находится на стеке) и память, где раньше лежал массив стала не действительной.
    После вызова первого printf, та же память на стеке, которую когда-то занимал ваш массив выделилась под нужды printf, и printf заполнила эту память чем-то своим, поэтому в третьем printf у вас фигня.
    Программа у вас не вываливается с ошибкой, потому что в стеке память всегда выделена. "Схлопывание стека" - это просто уменьшение/увеличение регистра указателя на стек.

    У вас есть 2 вариант.
    1. Простой - выделить массив в main, передать его в getMas. Из getMas уже можете ничего не возвращать, только заполняете там массив.
    2. Выделяете динамический массив в getMas с помощью malloc. В main не забудьте освободить память, выделенную для массива. Это плохой вариант, т.к. память выделяется на одном уровне программы, а освобождается на другом. Но в вашей простой задаче можно пока на это не обращать внимания.
    Ответ написан
    Комментировать
  • Зачем требуются различные СУБД, если можно использовать структуры данных языка, например словари и списки в питоне?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Если на структурах языка реализовать весь набор функций, предоставляемых СУБД, то получится новая СУБД. Зачем тратить время и силы на написание СУБД, если есть уже готовые?
    Ответ написан
    Комментировать
  • Как парсить сайты защищенные CloudFront?

    @alpeg
    Обход кеша целиком и полностью зависит от настроек сайта, тут без экспериментов не разобраться.
    Пробуйте перебирать заголовки, GET-параметры, Сookie.
    Рекомендую почитать документацию самого CloudFront, особенно разделы про Query String Parameters, Cookies и Request Headers.
    Ответ написан
    Комментировать
  • Нужно рассчитать IP адрес для следующей сети. Всё верно?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    10101100.00010010.10111100.0010|0000 (Network ID)
    +
    00000000.00000000.00000000.0001|0000
    =
    172.18.188.48 (next IP address)

    Всё ли верно я сделала???

    Да.
    Ответ написан
    1 комментарий
  • Не работает рестарт nginx?

    @Samuel_Leonardo
    из лога видно что ругается на вызов kill, скорее всего проблема в параметрах,
    но сама ошибка у вас не влезла в вывод

    посмотрите полный лог, например, через
    #journalctl -xe

    ну и проверьте файл конфигурации сервиса, там поидее должно быть
    ExecReload=/bin/kill -s HUP $MAINPID
    Ответ написан
    Комментировать
  • Как сделать, чтоб при вставки команды в терминал, она не запускалась автоматически сразу сама?

    Zoominger
    @Zoominger
    System Integrator
    Копируйте так, чтобы не зацепить следующую строку, потому что при этом копируется невидимый символ перевода а-ля "\n".
    Ответ написан
    Комментировать