Задать вопрос
  • На чем практиковаться начинающему админу?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    На чем практиковаться начинающему админу?

    На решении реальных задач. И не только дома, но и на вашем рабочем месте. Ставите себе задачу и решаете её по шагам. Ну, собственно набросок плана у вас уже есть — делайте, что запланировано и учитесь в процессе. Интернет у вас есть, статьи и мануалов в сети полно.
    Ответ написан
    2 комментария
  • Javascript, подгружаемый с servicepipe.ru, похоже сканирует локалхост. Зачем?

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

    @Aptwel
    Тестер Noyafa NF-8506 -тестирование кабелей на обрыв, короткое замыкание; функция поиска кабеля в пучке; измерение длинны провода; локализация короткого замыкания и обрыва. Цена чуть больше 7к
    Ответ написан
    Комментировать
  • Почему при попытке сделать "git push" выдает ошибку?

    sergey-kuznetsov
    @sergey-kuznetsov Куратор тега Git
    Автоматизатор
    У вас проблемы в каждой команде.

    git commit -m "hw-EDU-9336"
    ...
    nothing to commit...

    — коммитить нечего. Git честно сообщает, что рабочая папка чистая и коммит не создался.
    Но это не мешает делать push.

    Совет: в любой непонятной ситуации смотрите git status. Смотрите его как до команд, так и после.

    git push
    ... The current branch ... has no upstream branch

    Здесь Git говорит, что текущая ветка не имеет связи ни с какой вышестоящей веткой. Git понятия не имеет, куда вы хотите пушить и что пушить.
    В общем случае команда выглядит примерно так:
    git push <репо_куда_пушить> <какую_ветку_пушить>

    Обычно при первой отправке мы просим гит создать связь локальной и вышестоящей веток.
    Гит подсказывает вам, как это сделать:
    git push --set-upstream origin hw-EDU-9336-sprint-1
    но можно написать проще, чтобы не мучиться запоминанием длинных названий:
    git push -b origin HEAD
    HEAD это синоним текущей ветки.

    Дальше у вас реальная ошибка. Скорее всего проблема в авторизации.

    Проверьте, что ключ действительно стучится в GitLab
    ssh -T git@gitlab.quality-academy.ru
    Успешный вариант: GitLab поздоровается и скажет, что логин найден.
    Неуспешный: "Permission denied (publickey)".

    И главное — публичный ключ должен быть добавлен в GitLab:
    User Settings → SSH Keys
    Если после этого Git продолжает упираться — значит просто нет прав на запись в репозиторий, а не проблема с ключами.
    Ответ написан
    2 комментария
  • Как узнать, хранятся числа в компьютере в прямом, дополнительном или обратном коде?

    wataru
    @wataru Куратор тега C++
    Разработчик на С++, экс-олимпиадник.
    Можно переинтерпретировать память как unsigned int, а там уже никакого дополнительного кода нет и 11111111111111111111111111111110 будет 4294967294, а 11111111111111111111111111111101 - 4294967293.
    #include <iostream>
    #include <cstring>
    int main() {
      int x = -2;
      unsigned int y = 0;
      memcpy(&y, &x, sizeof(y));
      std::cout << y;
      return 0;
    }

    Еще можно делать извращение вроде std::cout << *(unsigned int*)(&x), но не стоит.
    В случае обращения к int через указатель на unsigned int это еще нормально, но вообще говоря, это исключение. Обычно нельзя обращаться к переменной одного типа через указатель другого типа. Это неопределенное поведение. Таким вот образом посмотреть на расположение битов в float через преобразование к int нельзя.

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

    Примерно также можно определить и порядок байт в числе, надо будет копировать в массив из байт и выводить уже побайтово.
    Ответ написан
    4 комментария
  • Какой яп и фреймворк выбрать для создания сервера?

    GavriKos
    @GavriKos
    Микропетпроджект - домашнее облако homeCloud
    Непонятно почему надо на винсок переписывать - уверен что boost.asio есть под винду.

    Под вашу постановку задачи - то как она тут описана - подходит 90% популярных ЯП и соответствующие для них фреймворки. Но чую задача описана плохо и неполно.
    Ответ написан
    6 комментариев
  • Как правильно реализовать структуру таблиц продукт и цены продуктов?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Правильно — чтобы работало согласно ТЗ. Работает — значит сделали правильно, не работает — значит неправильно. Тут как бы других вариантов-то особо и нет.
    Ответ написан
    Комментировать
  • Возможно ли написать программу, которая будет удалять все данные с дисков?

    VoidVolker
    @VoidVolker Куратор тега Железо
    Dark side eye. А у нас печеньки! А у вас?
    Да, именно удалять — возможно. А вот скорость удаления данных с диска зависит от скорости работы накопителя. Для полного удаления данных необходимо полностью обнулить каждую ячейку памяти в накопителе. По умолчанию ОС удаляет только запись о файле в ФС, а вот содержимое файла остаётся и будет перезаписано когда-нибудь в будущем, когда дойдёт очередь до данного сектора/ячейки памяти. Кроме того, для более надёжного удаления данных с HDD используется многократная запись, чтобы не осталось даже остаточного заряда, который теоретически можно считать. Есть даже специальные приложения для удаления данных с дисков с многократной записью в каждую ячейку. Аналогично и для шифрования — надо сначала считать данные с диска, зашифровать их, записать на диск и только потом удалить оригинальные данные.

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

    15432
    @15432
    Системный программист ^_^
    Зависит от самого накопителя и того, как он вами используется. Например, диски (как HDD, так и SSD, но чаще SSD) с поддержкой спецификации OPAL всегда хранят данные в зашифрованном виде и для уничтожения данных достаточно отправить одну единственную команду, которая удалит ключ шифрования. Все хранящиеся данные превратятся в мусор. Аналогично, если у вас включен Bitlocker или другой метод полнодискового шифрования - удаление ключа происходит моментально, после чего доступ к данным становится невозможен.

    Также есть современные SSD с поддержкой быстрого безопасного стирания секторов. В отличие от HDD, где стирание может занять несколько суток, у твердотельных накопителей есть возможность полностью стереть все флешки за несколько десятков секунд.
    Ответ написан
    4 комментария
  • Почему сбросились подтверждения права в Google Search Console?

    vpetrov
    @vpetrov
    частный SEO-специалист
    Первое, на что стоит думать - это "Имеет ли гуглобот доступ к сайту?". Бывает так, что с файерволлами и антиботами люди намудрят - и всех делов. Можно логи посмотреть - обращения к файлу подтверждения, например.
    Бывает, просто Search Console опять глючит, надо просто проверку через денёк-другой повторить.
    Так, чтоб пачкой сайты отваливались - не сталкивался. Но бывает.
    Ответ написан
    Комментировать
  • Почему способ создания String влияет на результат сравнения?

    xez
    @xez Куратор тега Java
    TL Junior Roo
    Потому, что Java String pool
    (вопрос встречается на собеседованиях, кстати)
    Ответ написан
    Комментировать
  • Высшее образование Java программисту, нужно ли?

    @prince_pagani
    flutter developer
    уже 4 работа на собесах и слова про образование не промелькнуло хотя в HH требовали
    Ответ написан
    3 комментария
  • Высшее образование Java программисту, нужно ли?

    Zoominger
    @Zoominger
    System Integrator
    Образование, если у вас нет подтверждённого опыта работы - это огромный плюс.
    Если опыт есть (2-3 года), то с радостью возьмут и без образования.
    Ответ написан
    4 комментария
  • Как найти прямую ссылку на TV канал?

    1. DRM - всё уперается в него. По этому ссылки на любой телеканал, хоть платный или бесплатный, нельзя взять бесплатно от правообладателя.
    Если на территории канал транслируется бесплатно, то это не означает, что в интернете он должен быть так же легко доступным. В интернете должны быть ограничения по территории.
    2. Кто-то оформляет подписку у какого-то платного провайдера и берёт ссылку на поток от них. А далее два варианта. Легально смотришь или организовываешь ретрансляцию через своё оборудование и тогда таже наука2.0 становится практически бесплатной.
    Сервис выносят за границу, запрещают просмотр в стране базирования канала и всё. Условная наука2.0 может и не знать, что её транслируют, к примеру в Европе, бесплатно.
    3. Исходя из всего этого, вы не можете получить бесплатную ссылку hls на какой либо телеканал, так как телеканалы оберегают авторские права на контент, делают ограничения на трансляции и хотят окупить затраты на трансляцию в интернет.

    P/s вообще, вещатели любят работать с компаниями, которые будут ретранслировать их контент. Так они получат больше денег, больше аудиторию.
    А работать с отдельным клиентом им не выгодно.
    Ответ написан
    Комментировать
  • Восстановить ранее закрытые вкладки в Хроме?

    @TheBigBear
    СтарОдмины мы
    Нажать Ctrl+H
    проставить галочки
    нажать открыть
    ИМХО - это извращение держать столько открытых вкладок. Есть Избранное для хранения
    Да хоть эксельку создать со списком
    Ответ написан
    2 комментария
  • Почему INSERT присваивает только один символ вместо полного значения?

    @SunTechnik
    У Вас тип данных в колонке: char, то-есть 1 символ.
    Туда больше данных не лезет....
    Ответ написан
    1 комментарий
  • Почему INSERT присваивает только один символ вместо полного значения?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Ну, наверное, потому, что тип поля CHAR(1) - то есть более одного символа в поле тупо не помещается.
    Ответ написан
    Комментировать
  • Как работает аутентификация Яндекса через QR-код?

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

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

    UPD: Тут важный нюанс: если мы показываем токен в QR коде и потом им же стучимся на бекэнд за сессией то возникает уязвимость - любой прохожий отсканирует этот QR код и начнет в своем браузере стучаться с этим же токеном, ты одобряешь вход и в состоянии гонки злоумышленник может достучаться первым до бекэнда и перехватить твою сессию, а ты останешься с носом. Поэтому нужно генерировать пару открытый токен-закрытый токен. Открытый будет загоняться в QR код, а по закрытому будем стучаться к бекэнду за сессией. В этом случае не залазя в устройство перехватить вход будет невозможно.
    Ответ написан
  • Контейнер rabbitmq docker стартует раньше чем сервис nginx. Как указать согласованность запуска?

    @Zerg89
    Насколько помню если нужно согласовать несколько контейееров то это docker-compose
    И в нем должно быть что-то типа такого
    celery:
       depends_on:
         - rabbitmq # старт после старта контейнера rabbitmq
       command: sh -c './wait-for host:5432 -- cmd' # ожидаем
    Ответ написан
    4 комментария
  • Как такое сверстать?

    @7rows
    Frontend Разработчик / Vue / JS / TS / CSS
    Держи
    Недавно нашли, нам очень помогло, переменные можешь так же, отрегулировать

    Можно еще что-то тут глянуть
    Ответ написан
    1 комментарий