• Почему не совпадают результаты sha1?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Первое, что напрашивается проверить - это не обрезает ли сервис по длине. Сделайте иксы той же длины, что и игреки и проверьте повторно
    Ответ написан
  • Как удалить вредоносное ПО с Linux?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Универсальный ответ - переустанови систему. Если ты поимел глупость под суперъюзером запустить левый код, значит невозможно наверняка убедиться, что полностью выпилил все вредоносные артефакты.
    Проще и быстрее полностью переустановить систему.
    Домашний каталог можно забэкапить полностью (если нет привыки с него что-то запускать под рутом), иначе нужно взять только документы и настройки.
    Можно склонировать всю файловую систему в примонтированный файл, чтобы потом достать то, что забыл забэкапить.
    Ответ написан
  • Как брать точки на polyline через равные отрезки?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    в postgis есть спецмальная функция. Но если вам надо без бд в брузере, то придется искать готовые аналоги или реализовать самостоятельно.
    Вообще задача не сложная. Каждый отрезок полилайна имеет определенную длину.
    Ваша задача сводится к тому, чтобы отмерять определенное расстояние от начала полилайна и найти точку на этом расстоянии на нужном отрезке.
    Вычитаете из расстояния поочередно целые отрезки полилайна, пока есть такая возможность. Так вы найдёте отрезок, на котором будет искомая точка. Дальше этот отрезок нужно разбить в пропорции:
    (x2-x)/(x2-x1)=(y2-y)/(y2-y1)
    d^2=x^2+y^2

    Вот система уравнений, где
    x1, x2, y1, y2 - ординаты концов сегмента полилайна.
    d - остаток от расстояния, из которого вычли все целые сегменты,
    x, y - координаты искомой точки
    Ответ написан
  • В какой программе создать JSON для анимации?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Сделайте в любом текстовом редакторе.
    Ответ написан
  • Python+Mysql возникает ошибка?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Смотрите внимательнее:
    """inser into log
        (phrase, letters, ip, browser_string, results)
        values
        ('hitch-hiker', 'aeiou', '127.0.0.1', 'Firfox', "{'e', 'i'})"""

    Используются тройные кавычки. СПрячем их для ясности:
    inser into log
        (phrase, letters, ip, browser_string, results)
        values
        ('hitch-hiker', 'aeiou', '127.0.0.1', 'Firfox', "{'e', 'i'})

    что видим? у вас непарная двойная кавычка перед фигурной скобкой.
    Именно об этом вам "намекал" парсер SQL выдавая исключение и указывая на конкртеное место проблемы. Внимательно смотрите и увидите.
    Ответ написан
  • Как изменить уже работающий сайт Wordpress?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Через админку, хотя смотря что менять на страницах собираетесь
    Ответ написан
  • Как реализовать валидацию добавления товаров в корзину?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вообще-то этот ресурс не для заданий, следовало бы сформулировать вопрос более четко.
    Валидация - это проверка параметров на удовлеткорение условиям и ограничениям. Очевидно, что нужно сформулировать условия, определить ограничения, произвести проверки параметров, а в случае несоответствия сформировать соответствующую ошибку вместо дальнейшей обработки запроса.
    Что именно у вас вызывает трудности? Если не понятно с какой стороны за компьютер садиться - это одно, подступайтесь со стороны клавиатуры. Если не ясно как это делать в коде, то вы предоставили мало информации.
    Ответ написан
  • Как получить неуникальные элементы списка после преобразования его set()'ом?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    from collections import Counter
    [k for k, v in Counter(items).items() if v > 1]
    Ответ написан
  • Как реализовать "таймер неактивности функции" после использования функции?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Из вашего вопроса не ясно многопользовательский у вас планируется бот или однопользовательский. То есть будут ли одним инстансом бота пользоваться больше одного человека?
    Также не понятно в случае нескольких пользователей, у каждого своё ограничение раз в час, или на всех одно сообщение в час.
    В любом случае ваш бот должен хранить некоторую информацию - это называется хранить состояние.
    Вам нужно звранить дату последнего сообщения для каждого пользователя или для всех, в зависимости от постановки задачи. В общем случае для этого лучше всего использовать какую-то БД вроде монги или sqlite. В случае SQLite ничего ставить не нужно, всё. что требуется, уже есть в комплекте с питоном.
    Я бы рекомендовал сделать при запуске создать в ней, если еще не создана, таблицу с идентификатором пользователя и датой последнего сообщения. В последствии можно будет реализовать оба варианта функциональности.

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Во всех случаях, где это позволит сделать код более читаемым и лаконичным.
    ООП ужно людям, чтобы легче было писать более сложные программы. ООП при правильном использовании позволяет изолировать сложность в отдельных классах так, чтобы эта сложность не накапливалась единым запутанным клубком в одном месте.
    Почитайте про принципы SOLID.
    Ответ написан
  • Как удалить профили пользователя с доменной машины с помощью python 3?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    модуль subprocess позволяет выполнять консольные команды и получать их выхлоп (в том числе в реальном времени).
    Ответ написан
  • Как передать команду наружу из Docker контейнера?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    А зачем вы это пытаетесь делать? Судя по всему вы просто не понимаете чего хотите.
    Докер у вас доступен в терминале хоста. Сам контейнер ничго про докер не знает и не должен знать.
    Очень странно хотеть из терминала контейнера пытаться что-то сделать с докером.
    Если отвечать на вопрос буквально, то можно сделать ssh-соединение с хостом, но после жтого вы уже в терминале хоста через ssh, а не в терминале контейнера непосредственно.
    Ответ написан
  • На каком языке CMS сайта будет работать быстрее?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    При такой постановке вопроса на любом языке у вас CMS медленно будет работать ввиду недостатка опыта правильной разработки.
    Язык программирования нужен не для скорости, а для понятности людям. Скорость выполнения кода не так критична в вебе, как правильная архитектура. Иначе всё бы писали на ассемблере, но где вы видели сайты на ассемблере? Нет, наверняка такие есть и вполне можно сделать какой-нибудь фреймворк с CMS хоть на ассемблере, хоть на брейнфаке, но это глупо.
    Обычно язык программирования не является бутылочным горлышком для скорости CMS.
    Ошибки в архитектуре, непродуманная масштабируемость, отсутствие кэширования, излишняя связность, избыточность внешних зависимостей, пренебрежение CDN -- всё это гораздо сильнее влияет на тормоза и все эти проблемы можно реализовать на любом языке.
    Язык нужно выбирать так, чтобы он давал возможность делать код более простым, читабельным и понятным не смотря на его количество. У языка должно быть большой комьюнити, чтобы можно было легко находить недорогих и эффективных специалистов для поддержки проекта.
    Ответ написан
  • AttributeError: 'int' object has no attribute 'replace' как исправить?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    У целого числа нет метода replace.
    Чушь написана в коде.
    Ответ написан
  • Какое ПО и как использовать для полного резервного копирования web-сервера на Ubuntu?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вы немного не в том русле пытетесь решить вашу проблему.
    Бэкапить целиком разделы машины - это не очень хорошая идея, потому что ломаются не только диски, но и сама система при обновлениях (вы же не будете отказываться от обновлений езопасности, например), могут возникнуть уязвимости и всякие там шифровальщии пошифруют вам тома, да мало ли чего еще может произойти. что бинарный бэкап по какой-то причине не поднимется и придётся вам очень геморрно выковыривать работабщий сервис из бэкапа системы.
    Правильный путь - это бэкапить БД и раздел со пользовательской статикой отдельно, а исходники и систему бэкапить не надо. Система должна быть максимально стандартной и чистой, а бэкенд должен развораичваься в докер-контейнерах по апуску компоуз-файла.
    Преимуществ много:
    - прозрачная понятная и декларативно описанная конфигурация,
    - отсутствие зависимостей от хостовой системы,
    - толератность к подъёму любого количества стейджинг сереров,
    - удобно вести разработку и запускать на машинах разработчиков,
    - удобно бесшовно мигрировать на новое железо, когда только начали сыпаться предупреждения от SMART а не когда жареный петух SSD одолбает,
    - гораздо эфективнее расходуется место для бэкапов: бэкапятся толкьо данные (БД и файлы),
    - вся конфигурация толерантна к системам контроля версий, а значит легче разматывать и решать проблемы,
    - вы запросто поднимите запасной или временный сервис где угодно, прежде чем погасите рабочий для какой-то цели,
    - можно быстро (одной командой) развернуть временный сервер на любой машине, пока не настроите штатный сервер взамен умершего.

    Если хотите максимально упростить работу всем -- делайте скрипты оркастрации (с комментариями), которые будут поднимать, опускать, развёртывать, бэкапить и поднимать бэкапы. Через пару лет, когда забудете как там всё устроено, эти скрипты и комментарии сильно сэкономят время.
    Не забывайте, что помимо основной конфигурации есть еще SSL-сертификаты, которые имеют свойство "неожиданно" просрачиваться, конфигурация Nginx, которую тоже хорошо бы положить в соответствующем контейнере, и прочее. А ещё есть IP-адреса внутренних DNS и всяких шлюзов, которые могут поменяться, а тупой подъём бэкапа только усугубит ситуацию. Да и на поднятом из бэкапа сервере скорее всего давно не одновлялся сертификат и так просто ваш сайт не заработает.

    Короче, нельзя просто так взять и забэкапить винт сервера, чтобы не поиметь проблем при любых обстоятельствах.
    Ответ написан
  • Что делает этот код из воркера на Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    list(map(Queue, ['default']))
    # Эквивалентно
    [Queue('default')]

    Разницы в данном случае нет.
    Ответ написан
  • Как импортировать определённые строки в Python?

    trapwalker
    @trapwalker Куратор тега Python
    Программист, энтузиаст
    Вы не правильно понимаете что такое импорт в питоне.
    Код в целом и строки программы в частности никуда никогда не импортируются. Все модули выполняются целиком в момент первого их импорта или, если речь об основной программе, во время ее запуска.
    Помимо запуска кода во время первого упоминания в операторе импорта, этот оператор позволяет получить в глобальный неймспейс модуля некоторые (указанные) или все (публичные) имена из импортируемого модуля (или пакета).
    Похоже вам стоит почитать какую-нибудь простую книжку для изучения питона. То, что я вам тут рассказал, -- это слишком мало,ч тобы программировать на языке полноценно.
    Ответ написан
  • Физика задачник?

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Ну так а в чем у вас проблема-то? Вы в принципе не знаете как запрос писать и это задание такое?
    Если так, то данный ресурс не для этого.
    Если у вас конкретный вопрос, то заайте его конкретно. Что именно у вас не получется?
    Не ясно как сформулировать рамочные условия с интервалами, пересекающими конкретную дату?
    Не понятно как сгруппировать интервалы по товарам?
    Не знаете про coalesce?
    Запутались с граничными точками интервалов?
    В чем проблема?
    Ответ написан
  • Есть ли у cron кэширование?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Наверно сам не заметил как поправил crontab через sudo и старое запускается оттуда. Или наоборот, из под пользователя, а новые изменения от суперъюзера.
    Ответ написан