• Как на linux узнать источник процесса?

    @larrabee
    Посмотреть где лежит исполняемый файл процесса:
    ll /proc/{PID}/exe
    Посмотреть кто его родитель:
    ps -o ppid= -p {PID}
    Ответ написан
    1 комментарий
  • Software RAID или Hardware RAID? Что выбрать?

    edinorog
    @edinorog
    Троллей не кормить!
    главное отличие я думаю в том что вам придется экстренно рожать хардварный рэйд как только сдохнет ваша железка и вы с ужасом начнете выдирать волосы у себя везде ... потому-как производитель замутил особый алгоритм который понимает только его железо! и это в пятницу ночью. а в понедельник какой-нибудь суперважный слет экономистов к которому вы должны обеспечить бесперебойность поступления вашей документации.
    Ответ написан
    5 комментариев
  • Взаимосвязь Python с программами?

    Vindicar
    @Vindicar
    RTFM!
    Под наивным "взаимосвязь" скрывается несколько совершенно различных технологий.
    Пакеты pyautogui и pywinauto занимаются вопросами имитации пользовательского ввода (и вообще взаимодействия с интерфейсом программы).
    Если тебе нужно лезть в чужую память - то тут уже нужно использовать win32 API функции ReadProcessMemory()/WriteProcessMemory(). Модуль ctypes в помощь.
    Если тебе нужно лезть в трафик чужого приложения, есть такая штука как dpkt.

    Фокус в том, что ни один из этих инструментов не тривиален в использовании. Нужно хорошо представлять устройство памяти процесса в windows, устройство оконного интерфейса в windows или устройство сетевых протоколов, в зависимости от задачи. А это дело не одного месяца.
    Ответ написан
    4 комментария
  • Насколько лучше использовать раствор сахара для печати?

    @Rider-12
    Интернет-маркетолог, специалист e-commerce
    Не прикалываются. Хоть кока-колой смазывайте (есть кто так делает). Можно наносить на стол любую липкую субстанцию. Но я бы по вашему описанию посоветовал следующее:
    1. 100 градусов на стол для ПЛА слишком много. Им печатают от комнатной температуры до 70. Тестируйте как будет удобнее и лучше, лично я на 65 печатаю.
    2. выкиньте ваше оргстекло. Как понимаю, это такая бандура толщиной почти в сантиметр? Мне в свое время китаепрюша с таким же досталась. Типа боросиликат. По факту не понятно что, еще и дугой выгибается со временем. Положите обычное зеркало или стекло не толще 4 мм.
    3. можно использовать канцелярский клей ПВА. Я его очень долго использовал с зеркалом. Капал пару капель в центр и мокрой малярной кистью размазывал по поверхности. Зеркало должно стать чуть мутным. Когда слой совсем тонкий, то при удалении модели ПВА просто отлипает от поверхности и на зеркале видно где его нет. Если слой потолще, то клей может хорошо держаться на столе. Это прям ТОП-вариант, т.к. можно печатать по одному месту несколько раз, а когда пластик перестает прилипать, берем теплую мокрую кисть и не нанося новый клей, просто размачиваем и развозим ранее нанесенный. Так можно обновлять поверхность раз 5 и более. Но с ПВА и стеклом проблема в том, что если перестараться с клеем, то модель может намертво приклеиться к поверхности. Два зеркала так испортил, оторвал модель с куском поверхности. Средство универсально для любого пластика.
    4. сейчас пользуюсь смесью энтеродеза со спиртом. Энтеродез продается в аптеках и стоит копейки. Не помню развесовку самой малой упаковки, но ее половину развожу на 100 мл. изопропилового спирта и наношу на стол через распылитель. Некоторые используют водку, кто-то смесь того же изопропила с водой. Но расход средства не такой, чтобы экономить разбавляя технический спирт. Одного покрытия хватает надолго, 100 мл. тоже долго расходуется. Работает со всеми пластиками.
    Ответ написан
    1 комментарий
  • Насколько лучше использовать раствор сахара для печати?

    vabka
    @vabka
    Токсичный шарпист
    модель отлипает от орг стекла.

    Вы уверены, что это орг стекло? (Орг стекло - это прозрачный пластик. Обычно акрил)
    Оно плохо проводит тепло, и в принципе может расплавиться.
    Чем вы пользуетесь, чтобы модель не отлипала?

    Синий 3M-овский малярный скотч хорошо работает (и прилипает хорошо, и отодрать не долго)
    Каптоновая лента (такой скотч термостойкий коричнево-прозрачный, либо желтоватый)
    Всякие клеи (нужно смотреть на состав). Вот пример жижи для намазывания

    1 тюбик с клеем (эрих крауз) PVP
    1 столовая ложка спирта
    1 столовая ложка воды

    Всякие готовые адгезивные подложки тоже хорошо работают (такие идут с оригинальным принтером)
    Можно использовать клей-карандаш, то это очень зависит от производителя (https://3dtoday.ru/blogs/seducer/compare-gluecrayo...)
    БФ2+Изопропиловый спирт
    Ещё вариант - растворить твой пластик в каком-нибудь растворителе (не подскажу за PLA) и смазать стол им.

    стол 100С

    Многовато. Такое нужно скорее для ABS пластика. Попробуйте 65C

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

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Сначала считаешь количество "мест" и составляешь массив возможных цифр: 0, 2, 9
    Причём, для каждой цифры также нужно запомнить, сколько её повторять. В данном примере "2" можно повторить дважды.

    Далее в цикле или рекурсией:
    на первом месте может быть 0,2,9
    на втором месте - уже зависит от первого места (если первое 0, то второе - 2,9, а если первое 2, то второе 0,2,9 и т.д.)
    на третьем месте снова выбираешь из оставшихся.
    Вот в таком порядке и сможешь вывести все перестановки.

    Естественно, код приводить не буду, так как вопрос про алгоритм. Осталось написать в виде текста программы. Удачи)
    Ответ написан
    Комментировать
  • Где и как можно оптимизировать код?

    longclaps
    @longclaps
    Дружище, это кошмар. И в нём виноват не ты, а составители задания, которые обрекли тебя это слепить.
    Эта игра состоит в том чтобы пройти по дереву сюжетов, делая выбор той или иной ветви.
    Умеешь ли ты строить дерево? Умеешь ли обходить? Умеешь ли хранить/редактировать? Нет, нет, нет. И ты выкрутился, как мог. Молодец, а теперь смотри

    Хранить дерево будем в файле 'kolobok.yaml':
    intro: "Испеки мне колобок"
    choise:
      - "по сусекам поскреби":
          intro: "испекла. Что сделал колобок"
          choise:
            - "покатился с окна на заваленку":
                intro: "встретил зайца"
                choise:
                  - "я тебе песенку спою":
                      intro: "спел песенку, а навстречу волк"
                      choise:
                        - "я уже чёрствым стал":
                            final: "Волк поломал зубы"
                        - "отнеси к дедушке с бабушкой":
                            final: "Волк бросил колобка в речку"
                        - "я тебе песенку спою":
                            final: "колобок встретил медведя"
                  - "попробуй меня догнать":
                    intro: "прошмыгнул между ног зайца"
                  - "Не успел ответить":
                    final: "заяц его съел"
            - "скатился на лавку"
            - "остался остывать на окне"
      - "свари мне каши":
        final: "Старуха сварила кашу"
      - "пойду на базар":
        final: "медведь его съел"

    Движок мог бы быть примерно таким:
    import yaml
    
    with open('kolobok.yaml') as f:
        root = yaml.load(f, Loader=yaml.FullLoader)
    
    
    def dfs(d):
        if 'intro' in d:
            print(d['intro'])
        if 'final' in d:
            print(d['final'])
            exit(0)
        if 'choise' in d:
            print('выберите цифру ответа')
            choise = d['choise']
            for i, p in enumerate(choise, 1):
                print(i, next(iter(p)) if type(p) is dict else p)
            while True:
                try:
                    answer = input()
                    i = int(answer) - 1
                    if not 0 <= i < len(choise):
                        raise ValueError
                except ValueError:
                    print(f'ответ "{answer}" не поддерживается, пробуй ещё:')
                p = choise[i]
                if type(p) is dict:
                    dfs(p.popitem()[1])
                else:
                    print(p)
                    exit(0)
    
    
    dfs(root)

    Сколь-нибудь долгий путь, 4 сцены - лишь по ветке 1 -> 1 -> 1 -> 1, вбивать всё недосуг.
    Про YAML, DFS и прочие штуки можно найти в интернете.
    Ответ написан
    3 комментария
  • Python или C++?, что перспективнее?

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

    flapflapjack
    @flapflapjack
    на треть я прав
    Причину подсказать не могу, но могу рассказать, как восстановил в такой же ситуации, как у вас - SSD диск.

    У ddrescue есть параметр, где можно указать map-файл, что-то типа лога. При следующем запуске с тем же параметром восстановление пойдет с того момента, как возникла последняя неудача с восстановлением.

    Таким образом, запустив раз 50 такую команду, я смог полность на 100% восстановить SSD с базой 1С на другой HDD вообще без потерь. Проблема была такая же: диск монтируется, но при обращении - отваливается и не отвечает. Тому SSD диску было лет 10 наверное.
    Ответ написан
    4 комментария
  • Как уменьшить SQL нагрзку?

    @rPman
    Вы закачиваете ВСЮ таблицу и построчно анализируя ее делаете апдейты по одной строчке, тут поплохеет любому серверу. Во первых почти наверняка всю логику можно просто засунуть в запрос, так как там проверки по простому условию на дату. Во вторых, я не изучал код, если это сложно реализовать в sql, то хотя бы не делайте update по одной записи, собирайте id необходимых записей и обновляйте пакетом либо через временную таблицу либо через инлайн данные тупо через where id in (список id)

    p.s. не пытайтесь везде работать с датами как дата в виде строки, это всегда неудобно, половина кода у вас парсинг строки с датой... работайте с __int64 date timestamp, зачастую это самый удобный тип данных.
    Ответ написан
    1 комментарий
  • Как просматривать процессы из программы на C/C++?

    @famousman204 Автор вопроса
    Короче говоря ответ такой. Все данные от ядра системы находятся в волшебной папке /proc/
    кому интересно загляните почитать
    Ответ написан
    Комментировать
  • Может ли запрос SELECT приводить к удалению данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    склоняюсь к мнению, что это глюк на самом сервере SQL.

    всякий раз, когда ты склоняешься к такому мнению, это значит что глюк 100% в твоем собственном коде.

    Учитывая весь этот адов винегрет, от которого глаза начинают кровоточить, удивительно что оно вообще хоть как-то работает.

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

    alekciy
    @alekciy
    Вёбных дел мастер
    Вариантов много. Из простого:
    • по User-Agent
    • по IP адресу через отслеживание количества запросов с одного адреса
    • по используемым публичным прокси (многие такие сервисы явно сообщают, о себе кто они)
    • и т.д.

    Из сложного:
    • отслеживают перемещение мыши
    • ведут аналитику на о типичных поведениях пользователя и ищуют анамалии


    Если начинают банить прямо с самого первого запроса, значит спались на чем то элементарном и примитивном. Потому что при сложных вариантах защиты для сбора аналитики боту дают по сайту походить.
    Ответ написан
    Комментировать