Задать вопрос
  • Можно ли для придания интерактивности на вэб-страницах в место javascripta использовать java?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Если речь идет о нормальном проекте, то нет.
    Основу веба составляют 3 языка - html, css, js.
    java, python, php, typescript, ruby лишь серверные языки (в данном контексте). В старых браузерах можно запускать applet'ы, но в новых они не поддерживаются.
    Единственное решение - писать код на Java, который впоследствии транпилируется в JavaScript. Об этом уже упомянул коллега - Vamp
    Ответ написан
    Комментировать
  • Как установить wildcard сертификат на сервер?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    Реально не можете найти официальную инструкцию на рег.ру или спросить в их ТП?
    https://www.reg.ru/support/ssl-sertifikaty/ustanov...

    Нужно гуглить заголовок вашего сообщения ну и плюс nginx.
    Ответ написан
    Комментировать
  • Как организовать перезапуск сервиса при падении?

    Zoominger
    @Zoominger Куратор тега Системное администрирование
    System Integrator
    Делал такое. Скрипт "запуск программы если она не запущена powershell" гуглится на раз-два, а прикрутить логику на корректное добитие зависшего сервиса - дело двух минут.
    В общем виде:
    1. Проверяем, работает ли процесс;
    2. Если нет, то проверяем порт;
    3. Если порт не закрыт, то просто перезапускаем сервис;
    4. Если порт закрыт, то добиваем остатки сервиса и перезапускаем.
    Ответ написан
    Комментировать
  • Где искать вирус, подбирающий пароли exim?

    suffix_ixbt
    @suffix_ixbt
    https://www.babai.ru/
    Почему вирус-то ? По логу же видно что из вне пытаются соединиться.

    fail2ban свежий с "прогрессивным" баном быстро заблокирует ip вражин сначала на часы, потом на дни а потом и на месяцы :)

    Если нужно то правила fail2ban для exim для параноиков скину :)
    Ответ написан
    4 комментария
  • Как сделать постоянный парсинг?

    ScriptKiddo
    @ScriptKiddo
    1) В цикле проверяете наличие файлов в директории через os.listdir()
    2) Если файл появился - обрабатываете его.
    3) Удаляете/перемещаете файл
    4) Цикл начинается заново после завершения парсинга файла
    Ответ написан
    Комментировать
  • Откуда берется /*!40001 SQL_NO_CACHE */ в запросе при создании дампа?

    @Akina
    Сетевой и системный админ, SQL-программист.
    Отвечу всё же на заданный вопрос:
    Откуда это берется вообще? /*!40001 SQL_NO_CACHE */ и как это убрать?

    Это - комментарий с фрагментом запроса, специфичным для MySQL.

    Помещается в тело запроса (в т.ч. в дамп) для того, чтобы запрос, использующий какую-либо специфичную для MySQL конструкцию, мог быть выполнен в другом SQL-диалекте без внесения изменений в текст запроса. Т.е. MySQL обрабатывает содержимое такого комментария так, словно этот фрагмент не закомментирован, тогда как другие СУБД проигнорируют этот фрагмент как комментарий.

    Опциональное пятизначное число указывает минимальную версию MySQL, начиная с которой содержимое комментария должно обрабатываться (в показанном фрагменте - это версия 4.00.01), на более младшей версии комментарий останется комментарием. При его отсутствии (используется только /*!) - код из комментария обрабатывается любой версией.

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

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Для Li-ion:
    Оптимальный диапазон зарядки для продления срока службы: 30-80%.

    Если хотите вынимать батарею (хранить её отдельно), то заряжайте до 50-70%. На этот счёт постоянно идут диспуты, я лично склоняюсь к заряду около 50%, либо прим. 3.7 В, если есть возможность контролировать напряжение.

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

    Если хотите держать батарею внутри (встроенный ИБП), то поищите у производителя ноутбука софт для управления питанием, в котором можно настраивать диапазон начала и окончания заряда.
    Поставьте те же 30/80, работайте от розетки, когда батарея саморазрядится до 30%, она зарядится до 80%.
    У отдельных вендоров/линеек такое может быть в BIOS.
    Кстати, в БИОСе также проверьте наличие опции наподобие FastCharge и подобного - повышенная мощность зарядки. Если она есть, отключите.

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

    rozhnev
    @rozhnev
    Fullstack programmer, DBA, медленно, дорого
    Практический опыт и постоянное самообразование.
    Ответ написан
    3 комментария
  • Договор о непереманивании: можно ли обойти?

    sfi0zy
    @sfi0zy
    Creative frontend developer
    Есть договор. В Европе. Можно как-то обойти?

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

    yarkov
    @yarkov
    Помог ответ? Отметь решением.
    Вам английским по чёрному написали, даже ссылку показали куда идти. В чём проблема?
    Ответ написан
    2 комментария
  • Как быть с приватным токеном?

    Все ключи/пароли/логины/ссылки на другие сервисы выносят в переменные окружения, и не хранят их в исходниках.
    Ответ написан
    3 комментария
  • Как передать много текста на страницу и сохранить его в файл?

    ThunderCat
    @ThunderCat Куратор тега JavaScript
    {PHP, MySql, HTML, JS, CSS} developer
    У меня есть textarea в которой есть необходимый текст случайной длины ( от 0 байтов до пару мегабайтов), как можно сохранить этот текст в файл на сервере?
    Оберните формой с методом пост, по кнопке субмит все уйдет на сервер.

    1 - У меня не апаче а свой сервер (ServerSocket) на java
    Подойдет абсолютно любой вебсервер, понимающий хттп

    2 - В теле запроса никак
    Очень даже как

    3 - В ссылке ну точно никак
    Можно, но есть ограничения по длине, да и не для этого оно...

    4 - PHP нету, но обрабатывать входные данные могу даже больше чем php (полностью тело запроса могу получить)
    Любой язык на сервере, умеющий в веб, искаропки умеет читать пост/гет запросы: ява, жс, пхп, питон и еще десяток перлов с сишарпами... Читаете переменную пост запроса, вытаскиваете свой текст, пишете в файл, профит.
    Ответ написан
    Комментировать
  • Как отображать один сайт без возможности закрытия и открытия других вкладок?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Kiosk mode
    firefox --kiosk https://...
    google-chrome --kiosk https://...
    Ответ написан
    Комментировать
  • Можно ли убрать ненужные строчки из терминала?

    Sergomen
    @Sergomen
    Просто делай добро и оно вернётся
    from os import system
    
    system("cls")
    
    print ("Hello word")
    Ответ написан
    Комментировать
  • Как прописать в договоре на создание сайта, что таким подобным проектом мы заниматься не будем?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    То есть наработав крутой и востребованный опыт, вы хотите перекрыть себе возможность его использовать. Вам платят столько, что можете больше не работать до конца жизни? Очень странный пункт в договоре, я бы посоветовал избегать такого заказчика. По существу вопроса максимально полно описывайте каждый момент из тз, чтобы всегда можно было сказать что есть отличие в новом проекте исчитать его таким же не получится.
    Ответ написан
    2 комментария
  • Как прописать в договоре на создание сайта, что таким подобным проектом мы заниматься не будем?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Все договоры должны составлять профессиональные юристы. Одно неверное слово, которое можно трактовать двояко - и ваш бизнес под вопросом закрытия, суды и штрафы
    Ответ написан
    Комментировать
  • Почему может тормозить Samsung 980 PRO?

    @Wexter
    Так написано же что он подключен по 3.0 x2, вместо 4.0 х4. Поэтому и скорость низкая
    614875a62a9cb853215420.png
    Ответ написан
    7 комментариев
  • Что означет ошибка, которую выводит SOAP-клиент?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Читаем wsdl. Находим нужный запрос.
    operation Tracking
    <operation name="Tracking">
      <input message="tns:TrackingRequestMessage"/>
      <output message="tns:TrackingResponseMessage"/>
    </operation>

    Значит запрос Tracking принимает на вход TrackingRequestMessage. Смотрим дальше
    message TrackingRequestMessage
    <message name="TrackingRequestMessage">
      <part name="parameters" element="tns:Tracking"/>
    </message>

    Единственное поле parameters с типом Tracking. Ищем этот тип.
    element Tracking
    <xs:element name="Tracking">
      <xs:complexType>
        <xs:sequence>
          <xs:element name="Language" type="xs:string" nillable="true"/>
          <xs:element name="Login" type="xs:string" nillable="true"/>
          <xs:element name="Password" type="xs:string" nillable="true"/>
          <xs:element name="Type" type="xs:string"/>
          <xs:element name="Documents" type="xs:string" nillable="true"/>
        </xs:sequence>
      </xs:complexType>
    </xs:element>

    Получаем объект или ассоциативный массив с текстовыми полями Language, Login, Password, Type и Documents, причём все поля кроме Type могут иметь значение null.
    Значит запрос должен выглядеть как
    $result = $client->Tracking([
        'Language' => ?string,
        'Login' => ?string,
        'Password' => ?string,
        'Type' => string,
        'Documents' => ?string
    ]);

    То же самое можно получить и средствами PHP. После подключения к клиенту получим список методов.
    var_dump($client->__getFunctions());
    /* ...
    [92] => string(47) "TrackingResponse Tracking(Tracking $parameters)"
    ... */

    Значит метод Tracking принимает один параметр с типом Tracking и возвращает ответ типа TrackingResponse.
    Запросим типы.
    var_dump($client->__getTypes());
    Результат запроса
    /* ...
    [120] => string(103) "struct Tracking {
     string Language;
     string Login;
     string Password;
     string Type;
     string Documents;
    }"
    [121] => string(51) "struct TrackingResponse {
     ResultTracking return;
    }"
    [24] => string(81) "struct ResultTracking {
     TrackingInfo Items;
     boolean Error;
     string ErrorInfo;
    }"
    [28] => string(227) "struct TrackingInfo {
     boolean Error;
     string Type;
     string Number;
     string Info;
     string AgentURL;
     dateTime CreateDate;
     string State;
     dateTime DeliveryDate;
     string DeliveryInfo;
     TrackingEvent History;
     Waybill Waybills;
    }"
    [27] => string(83) "struct TrackingEvent {
     dateTime EventDate;
     string EventName;
     string EventInfo;
    }"
    [31] => string(546) "struct Waybill {
     string Type;
     string Number;
     dateTime CreateDate;
     string State;
     dateTime DeliveryDate;
     string Sender;
     string SenderGeography;
     string Recipient;
     string RecipientGeography;
     string RecipientAddress;
     dateTime SendDate;
     string Payer;
     int CargoQty;
     float NetWeight;
     float GrossWeight;
     string ConsolidationNumber;
     string InventoryWaybillNumber;
     string DeliveryMethod;
     float Volume;
     boolean RequirePaymentInCash;
     float PaymentInCash;
     string PaymentInCashCurrency;
     string RecipientOfficial;
     TrackingEvent History;
    }"
    ... */


    Единственное отличие от самостоятельного анализа wsdl - не указано, какие поля необязательные, какие можно заполнять null и являются ли какие-то поля массивами.
    Ответ написан
    3 комментария
  • Я не понимаю чего от меня хотят?

    saboteur_kiev
    @saboteur_kiev Куратор тега Компьютерные сети
    software engineer
    Ну так подойдите к преподу и у него выясняйте.
    Вы же понимаете, что ваш вопрос не имеет никакого отношения к реальным сетям и реальным устройствам.
    Это задание какого-то преподавателя в воображаемом им мире.

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

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

    Вот вопросы навскидку:
    Линукс? Виндовс? Смесь?
    ethernet? wifi?
    свич или хаб?
    Доступ рутовый или бегать по компьютерам?

    Можно и пингом попробовать это решить, но что будет если с несколькими компьютерами будет одинаково медленно, на уровне погрешности?

    В общем вопросы задавайте вашему преподу а не случайным людям в интернете.
    Ответ написан
    Комментировать
  • Почему в Debian 500Gb HDD доступно всего 435Gb?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Раз килобайты на 1000/1024 байта вы учли, то на всякий случай начните с проверки наличия удалённых файлов: lsof | grep deleted.

    Затем посмотрите tune2fs -l – это параметры файловой системы.
    В Линуксе на ext* выделяется 5% на резервирование в каждом разделе под нужды root'а. Никто, кроме него туда писать не может. Отображается в строке Reserved block count.

    Изменить можно командой tune2fs -m №, где № – новое кол-во процентов (2, 3, и т.п.), но лучше понимать для чего вы это делаете.

    Ну и обычно наиболее заметный оверхед возникает из-за таблиц inode'ов. Он зависит от их количества. По умолчанию на каждые 128 МБ используется 2 МБ айнод (8192 x 256 байт каждая), т.е. примерно 1.5-1.6%, что похоже на указанные вами цифры.
    Ответ написан
    Комментировать