• Linux crontab Не запускает скрипт?

    Adamos
    @Adamos
    Стандартная ошибка № 1 в кроне: в нем, в отличие от терминала, нет PATH, поэтому нужно прописывать полные пути к любой запускаемой программе.
    Ответ написан
    4 комментария
  • Практические задачи по работе с жёсткими дисками в Linux?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    Практических задач хватает:
    - склонировать разделы одного жесткого диска на другой
    - изменить размер раздела
    - восстановить загрузчик
    - поменять файловую систему
    - вытащить данные с поврежденных секторов
    и многое другое
    Ответ написан
    3 комментария
  • Почему в среде Linux админов Vim - это тру, а Nano - для слабаков?

    @AquiHostStrider
    1. Требует для работы исключительно алфавитно-цифровой блок клавиатуры плюс клавишу [Esc]. Поэтому им можно пользоваться в удалённой консоли даже через криво настроенный или вообще ненастроенный терминал. В то время как nano требует как минимум функциональных стрелочных и навигационных клавиш, то есть при удалённом соединении нужно убедиться, что гетти на том конце воспринимает их нормально, а не плюёт кракозяблами в консоль. Было очень актуально в доинтернетную эпоху, когда управляющие производственными процессами серверы админились по телефонной линии через модемное соединение.
    1а. Также для работы в vi было вполне достаточно клавиатурки от ZX Spectrum, Commodore и прочих 8-битных недокомпьютеров. Что давало возможность кое-как использовать их как (почти) полноценные терминалы для UNIX-машин.
    2. Не требует отображения меню -- абсолютно всё можно сделать командами, с которыми, в случае забывчивости, можно ознакомиться во встроенной справке. Поэтому для работы достаточно всего 4-х строк, что, как правильно заметил выше fdroid, позволяет им пользоваться на любой кофеварке, если в ней есть какой-нибудь TN-дисплейчик разрешением 128х32. (Для чего может понадобиться полноценный текстовый редактор на кофеварке -- это уже отдельный вопрос...)
    3. Для позиционирования курсора в требуемое место приходится всё время считать глазами расстояние в строках и знакоместах в строке, что требует напрягать не только спинной мозг с двигательным центром, но и кору, а также развивает внимание, хоть и создаёт некоторое неудобство в работе. Поэтому, то, что среднестатистический пользователь vi/emacs умнее среднестатистического пользователя любого другого редактора -- правда.
    4. Хранит все изменения для конкретного редактируемого файла в файле-буфере (который может быть создан либо в той же директории, либо в домашней директории пользователя в зависимости от настроек в файле конфигурации .vimrc). Поэтому потребляет очень мало оперативной памяти и позволяет продолжить прерванную внезапным форс-мажором работу.
    5. Ну и как выше отметил Vitaly Karasik, умеет очень много. Правда, это зависит от того, с чем и как его собирали, что выкинули при сборке (хотя при современных вычислительных мощностях что-либо выкидывать из vi бессмысленно). Например, если libc, с которой линковался vi при сборке, не поддерживает юникод, то и сам vi тоже не будет его понимать.
    Ответ написан
    Комментировать
  • Какие записи dns для отправки почты следует использовать?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    У большинства почтовых публичных сервисов есть свой postmaster.
    Например от мейл.ру https://postmaster.mail.ru/
    от гугла https://postmaster.google.com/
    Добавьте в них свой почтовый домен и он вам подскажет, что нужно сделать.

    Но в общем и целом ответ вам дали выше - нужно использовать все три технологии, учитывая, что DKIM это не только DNS запись, но еще и подписывание ключем писем.
    Ответ написан
    Комментировать
  • Брутфорс RDP, есть ли смысл жаловаться на хостинг VPS?

    fox_12
    @fox_12
    Расставляю биты, управляю заряженными частицами
    У вас какие-то значимые убытки от этого есть?
    Если нет - то сомневаюсь что правоохранительные органы будут брать длинный список брутфорсеров, отслеживать цепочки запросов по всему миру, подавать запросы, изымать оборудование и делать экспертизу чтобы доказать виновность в каждом конкретном случае, что само по себе довольно нетривиальная задача. Просто тупо ресурсов не хватит, даже если их хорошо замотивируете.
    Поэтому просто правильно настройте файерволл, ставьте надежные пароли, и регулярно проверяйте свои системы на уязвимости - и будет вам счастье.
    Ответ написан
    Комментировать
  • Подходы и принципы создания безопасных сайтов?

    firedragon
    @firedragon
    Не джун-мидл-сеньор, а трус-балбес-бывалый.
    Owasp ищите эту аббревиатуру
    Ответ написан
    1 комментарий
  • Как удалить строки содержащие слова через bash?

    @AVKor
    $ a="test";echo "$a";echo '$a'
    test
    $a

    Небольшой тест, показывающий, в чём ошибка.
    Ответ написан
    9 комментариев
  • Куда пропадают потенциальные заказчики?

    Maksclub
    @Maksclub
    maksfedorov.ru
    У предпринимателя на ряду с версткой/программированием от фрилансера чего-то мелкого есть еще ряд проблем:
    - ФНС
    - другие фискальные службы и проверки
    - зарплата
    - клиенты
    - ремонт офиса
    - поставщики
    - партнеры
    - менеджеры по продажам звонят
    - подчиненные
    - собственно само дело
    - аренда
    - закрытие бизнеса из-за карантина
    - ваши конкуренты тоже пишут и звонят и могут это делать навязчиво, из-за чего лимит времени на данный фокус занятости может быть исчерпан

    Примерно представьте -- сколько точек отказа может быть при общении с такими людьми... Это есть причина появления ответственных/помощников и проект-менеджеров...

    Кроме того мы не знаем, с кем в общаетесь, как вы общаетесь и что за услуга.
    Ответ написан
    Комментировать
  • Как сделать чтобы gdm не выносил мозги?

    Zoominger
    @Zoominger
    System Integrator
    Проверьте из консоли (df -h), достаточно ли места в домашнем каталоге и вообще на ПК. Иногда бывает циклический логин из-за этого.
    Ответ написан
    1 комментарий
  • Как сделать запрос на сервер используя requests?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    реально

    можешь освоить Postman, загугли Postman curl, Postman requests
    а можешь нанять фрилансера
    Ответ написан
    2 комментария
  • Нужно сделать программу покороче. Как?

    0xD34F
    @0xD34F
    нужно в 24 строки уложиться

    Замените тело функции invert на

    return ''.join('0' if n == '1' else '1' for n in d)

    Получится ровно 24.

    Тело второй функции тоже сократим до одной строки:

    return '1' if n == 1 else ((s := dracon(n - 1)) + '1' + invert(s)[::-1])

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

    Наконец, заметим, что две строки перед циклом, который перебирает dr, идентичны одной из веток условного оператора внутри цикла - так что удалим их, а цикл пусть сделает ещё одну итерацию, для этого в начале dr должно оказаться что-то, отличное от '1'.

    Достаточно коротко получилось?
    invert = lambda d: ''.join('0' if n == '1' else '1' for n in d)
    dracon = lambda n: '1' if n == 1 else ((s := dracon(n - 1)) + '1' + invert(s)[::-1])
    
    dr = '0' + dracon(int(input()))
    print(dr)
    
    import turtle as t
    tt = t.Turtle()
    
    for n in dr:
      if n == '1':
        tt.right(90)
        tt.forward(4)
      else:
        tt.left(90)
        tt.forward(4)
    
    input()

    Тут конечно надо отметить, что на данный момент далеко не везде используется python версии 3.8+, так что приведённый код может у вас и не взлететь, по причине наличия в нём assignment expression (оператор :=).
    Ответ написан
    3 комментария
  • Как отличить бесконечный цикл от очень длинного?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    В общем случае - никак.

    Но вы можете каким-то образом выводить прогресс вычислений в реальном времени. Например, сколько процентов вычислений уже выполнено. Тогда баги будет проще заметить.

    Либо можно выводить, как один этап сменяет другой (при условии, что в новом витке будет что-то новое и будет виден прогресс). Например, чтение 1000 файлов может сопровождаться выводом имени файла. И таким образом видно, что прога переходит от одного файла к другому, а не застряла где-то.

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

    @alexalexes

    Обе программы получают из базы данные и работают с ними. Так вот я хочу исключить вероятность получения одних и тех же данных обеими програмамми. Сейчас у меня в коде используется using и в нем идет открытие соединения. Далее, получаем данные, в определенном столбце таблицы я помечаю, что данные взяты, что свидетельствует второй программе о том, чтобы она эти данные уже не брала.

    Основываясь на этом комментарии, могу сказать, что вам нужно познакомиться с теорией: шаблоном проектирования "Планировщик"
    и системы на основе очереди задач.
    Помимо "двух программ", в вашем случае это воркеры (исполнители), в вашей системе должен еще присутствовать планировщик, имеющий приоритет над воркерами, который будет формировать задачи.
    Назначать задачи исполнителям может как планировщик, так и сами исполнители.
    Каждая задача должна иметь идентификатор, статус выполнения, назначенный исполнитель, а также перечень объектов, которые должен обработать исполнитель. Как раз перечень объектов и будет ограничивать работу одного исполнителя, чтобы они "не лезли на одни и те же записи в таблицах".
    Конечно, нужно познакомиться с транзакциями и уровнями блокировки таблиц - это только часть инструментов реализации системы, но без планировщика вам не обойтись.
    Ответ написан
    Комментировать
  • Как удалить дубликаты из бд размером больше 200 млн записей?

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Не проще отслеживать уникальность когда вставляете??? Либо по уник ключу и инсерт игноре, либо выборка + вставка по пустому результату.

    PS: parent | parent_id - чем отличается???
    Ответ написан
    2 комментария
  • Как получить заказ, если я не на 100% компетентен?

    @Stalinko Куратор тега Фриланс
    PHP'шник и фрилансер до мозга костей
    Нужно трезво оценивать свои возможности. Разбираться в чём-то на ходу - это нормально, всего знать нельзя, а многими вещами можно пользоваться сразу после прочтения документации. В любом случае перед заказом нужно глянуть все те вещи, с которыми предстоит работать, и четко оценить для себя - получится в этом быстро разобраться или это что-то сложное?

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

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

    городить какие-то свои блокировки поверх гугл-таблиц - гиблое дело, вы уменьшите вероятность, но не уберете ее полностью.
    Ответ написан
    3 комментария
  • ВЕБ студия с сотрудниками фрилансерами?

    1 нормальный фрилансер стоит как все 5 сотрудников. Но его еще надо найти.
    Ответ написан
    2 комментария
  • Как не кипятится из-за полных идиотов и как с ними общаться?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    В общем, внутри всё буквально кипит и после каждого такого "разговора" нужно пол часа перекурить / сходить в спортзал / пробежаться и т.д.

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

    В 80% любой крупный клиент(по моему опыту) у№бок, и вы с этим ничего не поделаете, нужно выдохнуть, и снять с него сливки в худшем случае, в лучшем - сделать работу идеально, без ругани, и получить его на постоянку.

    PS: у нас штат 120 человек в компании, один отдел работает на аутсорсе - итого, самый крупный клиент, который работает с нами уже 8 лет, самый жлобский и отвратный, и никто с ним не ужился, кроме этого отдела с железными ребятами. В итоге очень крупые деньги идут в нашу кассу.
    Ответ написан
    2 комментария
  • Https заменяется на http после прохода через nginx?

    dyuriev
    @dyuriev
    A posteriori
    У вас похоже nginx в контейнере не передает инфу в php-fpm о том что https используется
    fastcgi_param REQUEST_SCHEME https;
    или (пишу по памяти, пардоньте)
    fastcgi_param HTTPS on;

    а вообще по классике - создайте файл info.php с содержимым
    <?php phpinfo(); ?>
    и посмотрите что там прилетает заголовками в php

    UPD: если кто пришел с гугла сюда, чтоб не страдали - убрал кавычки лишние, подробности в комментариях
    Ответ написан
    5 комментариев