• Как работать с SSH и OpenVPN клиентом одновременно?

    @Power
    Видимо, на сервере с vpn-клиентом меняется default gateway, после этого весь трафик заворачивается в vpn-туннель, а где-то между vpn-сервером и вами есть NAT (скорее всего, на самом vpn-сервере), который в пакетах, исходящих с вашего сервера, меняет ip-адрес источника, и ваш ssh-клиент уже не видит ответов от вашего сервера (пакеты приходят как бы от другого источника), из-за чего соединение повисает.
    Ответ написан
    6 комментариев
  • Как решить конфликт зависимостей MySQL и MariaBD?

    zooks
    @zooks
    Frontend
    Замена MySQL на MariaDB:
    sudo apt remove --purge mysql-server mysql-client mysql-common
    sudo apt autoremove
    sudo apt install mariadb-server
    Ответ написан
    Комментировать
  • Mysql. Как обойти ошибку “Lock wait timeout exceeded; try restarting transaction”?

    iqw
    @iqw
    Serior Software Engineer
    Взято отсюда:

    1) Войдите в MySQL
    mysql -u your_user -p

    2) Посмотрите список залоченых таблиц:
    show open tables where in_use>0;

    3) Посмотрите список процессов (один из них лочит вашу таблицу):
    show processlist;

    4) Убейте этот процесс (процессы)
    kill <put_process_id_here>;
    Ответ написан
    1 комментарий
  • MySQL. Как группировать по двум полям?

    VladimirAndreev
    @VladimirAndreev
    php web dev
    group by provider, status
    Ответ написан
    Комментировать
  • MySQL. Как выгрузить данные в файл (version 5.7)?

    coderisimo
    @coderisimo
    Судя по всему ваш сервер запущен с --secure-file-priv которая ограничивает какие директории вы можете использовать с загружаемыми файлами.
    Можно попробовать вот так SHOW VARIABLES LIKE "secure_file_priv"; посмотреть куда МОЖНО выгружать ваш файл, либо в my.ini найти secure-file-priv , закомментировать и перегрузиться
    Ответ написан
    Комментировать
  • Проблема с доступом к DigitalOcean по ssh, через VPN - все ок. Что делать?

    amux
    @amux
    alp.ac
    Проверять ip дроплета тут https://blocklist.rkn.gov.ru/
    Пересоздавать дроплет пока не получится получить незаблокированный ip
    Ответ написан
    5 комментариев
  • Запрос XPath без дочерних элементов?

    glebovgin
    @glebovgin
    Full Stack Web Developer
    Если структура html одинакова, то сработает такой вариант
    //div[contains(@class, "some-class")]/div/span[1]/following-sibling::text()

    А вот такой вариант
    //div[contains(@class, "some-class")]/div/text()[normalize-space()]

    выберет все текстовые элементы, исключая пробелы. В конкретно вашем случае в item(0)->nodeValue будет значение между двумя span. Если нужны все текстовые элементу внутри div, то просто пройти foreach по результатам.
    Ответ написан
    2 комментария
  • Как работать с многоядерными процессорами в Python?

    Sly_tom_cat
    @Sly_tom_cat
    .
    from time import time
    from threading import Thread
    from multiprocessing import Process

    def count(n):
    while n > 0:
    n -= 1

    startTime = time()
    count(100000000)
    count(100000000)
    print('\nSequential execution time : %3.2f s.'%(time() - startTime))

    startTime = time()
    t1 = Thread(target=count, args=(100000000,))
    t2 = Thread(target=count, args=(100000000,))
    t1.start(); t2.start()
    t1.join(); t2.join()
    print('\nThreaded execution time : %3.2f s.'%(time() - startTime))

    startTime = time()
    p1 = Process(target=count, args=(100000000,))
    p2 = Process(target=count, args=(100000000,))
    p1.start(); p2.start()
    p1.join(); p2.join()
    print('\nMultiprocessed execution time : %3.2f s.'%(time() - startTime))

    Дает на 4-х ядерном проце:

    Sequential execution time : 6.83 s.

    Threaded execution time : 11.37 s.

    Multiprocessed execution time : 6.30 s.

    Но допустим распараллеливание запросов к http серверу и в thread варианте даст огромный выигрыш.
    Т.е. без учета специфики задачи - в многопоточность/многопроцессорность - лучше просто не соваться.
    Ответ написан
    1 комментарий
  • Какие знания нужны для первого заказа на апворк начинающему Python программисту?

    opium
    @opium
    Просто люблю качественно работать
    Руки словарь английского два глаза
    Ответ написан
    Комментировать
  • Какие знания нужны для первого заказа на апворк начинающему Python программисту?

    Привет

    Я начинал с питона. Примерно через 4 месяца после того, как я закончил читать книгу Лутца по Python, я смог собрать и запустить небольшой сервис на Django, который фактически предлагал пройти курс по python (авторизация, права, роли, верстка на шаблонах, ajax запросы на бек и прочее). Т.е. я 4 месяца разбирался с тем, как работает Django в базовых кейсах. Плюс научился деплоить проеты на Django на VPS (конечно, мой метод был весьма убог, но сам факт, что проект крутился).

    Когда я пошел на работу, я столкнулся с тем, что месяца 2 тупо учился тому, как работать с git/как делать pull request/как готовить код к ревью/как его писать по пепу и прочее. Плюс оказалось, что ряд практик из книг в реальных проектах нифига не работают, и надо использовать доп тулзы (например, на больших django проектах миграции никто не катит средствами django, а юзают что-то типа phinx и прочее).

    Плюс, когда я увидел, как выглядит реальные энтерпрайз проекты на django - когда там по 50+ апп, конфиги с эншибла на уровне групп, порядка 5 способов авторизации, иерархия классов юзеров и прочее. Я немного офигел, что так оказывается бывает.

    __

    Поэтому, в 100% вероятности, если тебе на фрилансе придет какой-то легаси проекта на django, либо достаточно большой проекта, ты обосрешься. Поэтому, надо идти в офис, набивать шишки и учиться у коллег.

    Если ты скажешь, что у тебя в городе на фирм, которые пишут на Python, то тебе надо учить тот язык, с которым ты найдешь работу. Увы, но питон в РФ не особо востребован за пределами Москвы, Питера, Новосиба, Казани, НН, да и там порядка 80% всех вакансий - это qa-automation + дата саенсы.
    Ответ написан
    1 комментарий
  • Какие знания нужны для первого заказа на апворк начинающему Python программисту?

    @Andrey_Dolg
    Можете пробовать, по стеку django сомнительно крайне лучше flask(но рынок ещё меньше), не то чтоб django сложен но без навыков вы мало что сможете предложить заказчику. Далее часть заказов на python это ML/Data analysis/Api integration визуально тоже не ваша ниша. Ну и манкикодинг на python это создание скраперов данных тут стек(scrapy/bs4/selenium) при отсутствии знаний баз данных дальше выгрузки данных в exel/csv/google spreedsheet с деплоем скажем на heroku вы не уйдёте, ну и заказы от 5 до 30$ с конкуренцией в виде индусов и китайцев. Я не знаю вашей ситуации, но лучший вариант найдите наставника который сможет вам скидывать заказы и подучать вас именно фрилансу. Реалистичный вариант увы зачастую офис и работа php/html в хорошем случае python.
    Ответ написан
    Комментировать
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    @Nkly777
    git chery-pick - ты забираешь комиты из одной ветки в другую, это бывает полезно когда изменения сделаные другим разработчиком в его ветке, прямо сейчас нужны тебе в твоей ветке, и что бы не писать этот код заново, ты забираешь его комит себе в ветку

    git rebase master - ты синхронизируешься с главной веткой в которую коммитят все разработчики проекта, это полезно когда кто-то изменил участок кода с которым ты сейчас работаешь в своей ветке, дабы через неделю ты смог без проблем смержиться с master веткой. Обычно делается каждое утро перед началом рабочего дня и в конце когда фича готова.

    git merge - обычно используется когда у вас 2 и более master ветки (к примеру master и prototype) в этих ветках очень много комитов (и rebase здесь не подходит) и обчно через пару недель, maintainer репозитория наработки из prototype ветки "сливает" в master ветку по средствам этого самого git merge

    P.S. Что бы легче предствить разницу между git merge и git rebase. Представь что merge как собачка на молнии у одежды - "сшивает" комиты по дате их создания.
    В то время как git rebase как пожарная лестница - при применении твои коммиты крепится на конец родительской ветки

    git merge используйте для мержа фич и фиксов в master ветку (как и делает это Github)
    а git rebase используется для своей ветку в которой вы работаете над фичей что бы забрать последние изменения с master ветку (для этого есть очень удобная команда `git pull --rebase origin master`, аналог 3х команд (`git checkout master; git pull origin master; git checkout mybrach; git rebase master`)
    Ответ написан
    2 комментария
  • Git: объясните «на пальцах» разницу между rebase и cherry-pick?

    Все красиво объяснил Nkly777, только в блоке PS merge с rebase перепутаны.
    Добавлю картинок.

    git rebase devel - собачка на молнии - "сшивает" коммиты по дате их создания
    (ветка devel "растворяется" в основной ветке)
    518b8dbce1cd4f96b30de9782ae38fcd.png
    git merge devel - пожарная лестница, все коммиты ветки devel крепятся в конец, образуется пересечение
    (devel остается отдельной веткой, к которой можно вернуться)
    1ba8186d879d46ff85ea7c1e192328e2.png
    git chery-pick idea - забрать коммиты из ветки idea
    2717e3091f644ef2954aa2de4514f446.png
    Ответ написан
    2 комментария
  • Что такое фикстуры и миграции?

    kirillplatonov
    @kirillplatonov
    Ruby on Rails developer
    Миграции необходимы для внесения изменений в структуру базы данных. Это удобно, когда вы работаете в команде, и вам нужно изменить базу данных. Вы описываете в миграциях изменения, которые хотите внести. После этого другой разработчик может просто запустить эту миграцию на своем сервере, и все ваши изменения будут применены к его базе данных.
    Про фикстуры не расскажу. Нет достаточного опыта.
    Ответ написан
    Комментировать
  • Установка софта в /usr, /usr/src?

    @Alexander1705
    В линукс программы не устанавливаються в отдельные папки. Все бинарники идут в /usr/bin, библиотеки в /usr/lib, ресурсы в /usr/share, etc.
    Обычно это делает пакетный менеджер автоматически.

    При установке не через пакетный менеджер обычно устанавливают в /usr/local/bin, /usr/local/lib, etc.

    Попадаются разработчики, которые не смогли освоить FHS и кидают всё в одну папку. Тогда она обчно устанавливаеться в /opt (/opt/clion, /opt/sublime_text_3, etc).
    Ответ написан
    3 комментария
  • Как удобней и правильней вносить свои правки в открытый проект (git) на python, не затрагивая сам проект?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Python
    Седой и строгий
    Форк и постоянные пулы с мерджами.
    Ответ написан
    Комментировать
  • Управление кулерами на Linux Ubuntu?

    @mirspo
    Гугли пакеты lm_sensors и fancontrol. Я еще пользуюсь psensor.
    Рекомендую научиться использовать apt-cache search, например
    $ apt-cache search вентилятор | grep -v lib
    toshset - доступ к большинству аппаратных интерфейсов ноутбука Toshiba
    acpitail - вывод информации ACPI в стиле работы tail
    fancontrol - утилиты чтения значений датчиков температуры/напряжения/оборотов
    lm-sensors - утилиты чтения значений датчиков температуры/напряжения/оборотов
    mbmon - Hardware monitoring without kernel dependencies (text client)
    psensor - Показ графиков для отслеживания температуры компонентов компьютера
    sensord - hardware sensor information logging daemon
    xmbmon - Hardware monitoring without kernel dependencies (X client)
    xsensors - hardware health information viewer
    digitools - A set of tools to control ASUS Digimatrix embedded hardware
    Ответ написан
    Комментировать
  • Как определить какой процесс активно использует диск на Synology?

    atop
    iotop
    Ответ написан
    Комментировать
  • Как именно устроены session и cookies?

    1. Кукисы пересылаются вместе с каждым запросом через заголовок Cookie. При изменении их на клиенте до ближайшего запроса ничего не будет.
    2. Или в зашифрованной куке, или в файле на сервере, или в базе данных, или где еще. Если не первый вариант, то используется кука с id сессии.
    3. Когда как, см. п. 2
    Ответ написан
    4 комментария
  • Как именно устроены session и cookies?

    @deliro
    1. Нет никакой синхронизации. Сервер может только указать клиенту, что ему нужно установить куку X в значение Y хэдером Set-Cookie и считать с пришедшего на сервер запроса куки (все куки отправляются в каждом запросе на сервер).
    2. Сессии могут храниться на клиенте (signed cookie session). При этом используется подпись куки с помощью HMAC, чтобы данные сессии не могли быть свободно изменены клиентом. Но обычно сессии хранятся на сервере. Тут выбор огромный: от баз данных и key-value хранилищ (Redis, например) до простых файлов. При этом, клиенту посылается кука ID сессии (так сервер идентифицирует юзера), которую злоумышленник может стащить. Таким кукам, дабы защитить юзеров от XSS, ставится флаг HttpOnly, который советует браузеру не давать эту куку скриптам вроде JS. В этом случае, стащить куку получится только завладев браузером, файловой системой юзера или через багу браузера.
    3. Смотри второй ответ. В некоторых случаях - да. Но редко.
    4. Можно передавать значение session id в строке URL (GET - параметром), вроде такого: example.com/some/page/?session_id=2af26905dcf31a1d... Некоторые сервисы используют это, как fallback вариант, однако, он очень небезопасен, т.к. любой XSS или простой безобидный JS вроде Яндекс.Метрика видит весь URL. Так что, посылаем юзера включать куки.
    Ответ написан
    4 комментария