• Как получить переменную из любой функции класса?

    AlexNest
    @AlexNest Куратор тега Python
    Работаю с Python/Django
    Почитать учебник.
    Про поля класса рассказывают в первой главе раздела, посвященного ООП
    Ответ написан
    5 комментариев
  • Как с помощью python вызвать функцию другой программы по ее адресу в памяти?

    Vindicar
    @Vindicar
    RTFM!
    Во-первых, получить ее возвращаемое значение - это слишком обще. Одно дело - получить целое число, другое дело - получить объект или строку.
    Во-вторых, речь про программу или про библиотеку? Всё-таки есть разница.

    Если речь про программу, то встаёт ещё несколько вопросов.
    Исходи из того, что целевой процесс тебе придётся запускать самому. Иначе у тебя не будет прав на манипуляции с ним. Да и тогда программа может сопротивляться отладке.
    Далее, вопрос про поток исполнения. Если ты можешь позволить себе запустить отдельный поток, и функция отработает нормально в контексте отдельного потока (нет состояний гонки, нет проверок и т.п.), то это будет проще.
    Если же тебе нужно выполнить код в контексте главного потока, тебе придётся как-то поймать момент, когда главный поток можно прервать для исполнения твоего кода.

    Без ответов на эти вопросы детали предоставить трудно.

    Ты можешь посмотреть библиотеку Detours, она вроде многие вещи автоматизирует, но она для C++. Pymem может помочь, но нужно посмотреть, получится ли подружить его с ctypes.
    Но общий алгоритм и используемые winapi-функции я опишу.
    1. CreateProcess() для запуска целевого процесса как дочернего. Это самый простой способ получить права на его изменение.
    2. VirtualAllocEx(), чтобы выделить память в адресном пространстве этого процесса. Память может быть нужна как для данных, так и для исполняемого кода (нагрузки).
    3. Сформировать нагрузку в машинном коде, которая бы выполняла вызов требуемой функции. Может потребоваться знание соглашения о вызове целевой функции, чтобы подготовить регистры и стек перед вызовом, и корректно очистить их после вызова.
    4а. Если хочешь создавать поток, то твоя нагрузка должна быть функцией с сигнатурой вида:
    int __stdcall payload(LPVOID param)
    читай про конвенцию stdcall, чтобы понять, как это должно выглядеть в машинном коде на целевой платформе. Создав такую функцию, передаёшь её в CreateRemoteThread() для запуска потока.
    4б. Если хочешь вызвать целевую функцию в главном потоке, тебе еще придётся почитать про SuspendThread(), ResumeThread(), GetThreadContext() и SetThreadContext(). Грубо говоря, останавливаешь поток, запоминаешь его контекст (где он сейчас находится), перенастраиваешь контекст так, чтобы выполнение продолжилось с твоей нагрузки (меняешь регистр EIP/RIP), и возобновляешь поток. Твоя нагрузка, в свою очередь, должна просигналить твоему внешнему коду, что она завершила работу, и уйти в вечный цикл. Тогда внешний код должен снова остановить поток, вернуть старый контекст, и возобновить поток. В этом случае твоя нагрузка может быть просто кодом, а не функцией.
    4в. Ещё можно выполнить код при инъекции библиотеки в процесс, в рамках DLLMain(), но этот код, ЕМНИП, сильно ограничен в том, что он может делать. Хотя он наверняка сможет запустить новый поток, а тот поток уже будет делать что сочтёт нужным.

    В любом случае это всё куда проще сделать на C/C++ чем на питоне. Можно ли провернуть такой фокус только через pymem и ctypes, я не знаю. Насколько я знаю, pymem делает вариант 4a чтобы засунуть интерпретатор питона внутрь целевого процесса, и выполнять код в контексте этого процесса. Так что может и прокатит.
    Ответ написан
    1 комментарий
  • Как заупстить асинхронный цикл вне основного потока?

    @nedland
    Может за ответ и не пойдет, но если тебе нужно, чтобы каждые 10 секунд выполнялась асинхронная функция, то я бы это делал с помощью asyncio

    import asyncio
    
    async def example():
        while True:
    
            #ТУТ ВЫПОЛНЯЙ ЛЮБЫЕ ДЕЙСТВИЯ, КОТОРЫЕ БУДУТ ПОВТОРЯТСЯ В ЗАДАНОМ ИНТЕРВАЛЕ (интервал ниже)
    
            await asyncio.sleep(10) #10 СЕКУНД 
    
    if __name__ == '__main__':
        loop = asyncio.get_event_loop()
        loop.create_task(example())


    Работает самостоятельно, как ты говоришь "вне основного цикла"
    Ответ написан
    Комментировать
  • Существуют ли компании, где нет перерывов в работе?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Была в моей практике одна компания, где реально с секундомером следили за наличием сотрудников на рабочем месте. С другой стороны, это никак не мешало делать перерывы на кофе. Продуктивность работы при этом была очень низкая.

    В целом в нормальных компаниях смотрят на решаемый объем задач и иногда на примерное соблюдение 40-часовой рабочей недели. За точным соблюдением графика обычно следят только с одной целью - оштрафовать за нарушение графика (снизить премию). Ну и есть редкие исключения для поддержки, когда в рабочее время нужно оперативно отвечать на звонки, и то для таких сотрудников часто делается переадресация на мобильный телефон, чтобы не привязывать работника к креслу.

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

    Natebash
    @Natebash
    React, Vue, Angular, Navite JS, Python / Node JS
    Похоже на описание концлагеря) Сейчас большинство айтишных компаний практикуют удаленную работу, тем самым снижая финансовую нагрузку(условие наличия большого офиса, снеков, и прочего). У адекватной компании - вы закрываете таски - вы молодец, когда вы их закрываете - ваше дело. У нас условие - 4 часа пересечения общего времени с командой. К примеру я встаю в 5, в 6 уже на работе, в 2 заканчиваю работать. Далее "свободное время"

    Ищите компанию где не будет такого идиотизма)
    Ответ написан
    1 комментарий
  • Требование высшего образования в вакансии?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    О Боже, этот вопрос рассматривался тут сто тыщ мильенов раз.

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

    ThunderCat
    @ThunderCat Куратор тега MySQL
    {PHP, MySql, HTML, JS, CSS} developer
    Если подразумевается что поиск будет производиться прямо во время набора текста в поле ввода, то довольно простая схема:

    На поле набора вешается онкейап листенер,
    по событию содержимое поля отправляется аяксом на сервер,
    там делается выборка нескольких значений, удовлетворяющих поисковой строке,
    обратно присылается этот набор, либо в виде жсон и дальше парсится в хтмл, либо сразу сформированный хтмл,
    данные лепятся как список ниже поисковой строчки, на кнопки вниз/вверх подсвечиваем строки из подсказки (фокус с поля надо убрать),
    по ентеру в поле вносим полную строку из подсказки и субмитим форму поиска, либо по клику тоже самое.

    Нюанс: По кейап надо ставить небольшую паузу, чтобы не спамить запросами.
    Ответ написан
    Комментировать
  • Backend C# без JS не востребован?

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

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Рекомендация - это обычная бумага на бланке организации с печатью, в которой написано, что Иван Петрович Самовар работал в компании "Конфетки-бараночки" в должности самовара и за время работы показал всем, что он лучший самовар в городе :)

    В произвольной форме в общем.
    Ответ написан
    4 комментария
  • Глупые вопросы по тостеру, которые меня интересуют?

    6274c3558ac3a089197449.png

    Все пользователи с 0 вопросов и 9999 ответов действительно гении или это новореги или им удаляли вопросы?
    Аудитория Тостера, по сути, делится на четыре группы:
    1. Те, кто абсолютно не умеют искать информацию и пользоваться головой. Или умеют, но ленятся. Они бесконечно задают вопросы и очень редко отвечают.
    2. Те, кто прекрасно имеет искать информацию (вычленять суть проблемы, формулировать её, подбирать ключевые слова, отсеивать шелуху). Они очень редко задают вопросы, но не потому, что вопросов не возникает, а потому, что на абсолютное большинство их вопросов ответ в интернете уже есть, его нужно только найти.
    3. Те, кому не хватает опыта для того, чтобы оказаться во второй категории. Со временем они туда переходят.
    4. Те, кто зашёл случайно, не связан с программированием и дети, желающие наконец-то узнать нужны ли им математика и высшее образование.
    Ответ написан
    15 комментариев
  • Что с Traceback?

    Vindicar
    @Vindicar
    RTFM!
    BoyFromDubai, тебе же ясно написали:
    бразуеры при открытии страницы сайта делают дополнительный запрос к сайту, чтобы получить favicon. Этот запрос прилетает в ваш обработчик block.

    Т.е. запрос на /favicon.ico браузер сделает по своей инициативе, и тебе придётся с этим иметь дело. Вообще на будущее имей ввиду, что клиент может сделать любой бредовый запрос, так что ВСЕГДА нужно проверять, что тебе пришло.
    Возможных решений 3.
    1. Сменить url запроса, например так.
    @views.route('/block/<height>', methods=['GET'])
    Тогда у тебя запрос не будет конфликтовать с запросом favicon, но всё ещё будет ломаться, если клиент запросит /block/foobar вместо /block/123
    2. Указать тип параметра
    @views.route('/<height: int>', methods=['GET'])
    Тогда фреймворк отфильтрует нечисловые запросы, и сам преобразует стркоу в число. Это умеет и Django, и Flask. Но запрос сломается, если полученное число не будет корректным индексом/ключом для chain[].
    3. Вставить try-except
    try:
        block = blockchain.chain[int(height) - 1]
    except (ValueError, LookupError):
        # ловим ValueError от вызова int() и возможный LookupError от обращения к chain[]
        # хотя я фз что ещё может выбросить chain[]
        return "ОШИБКА БЛИН" # ну или более подробное сообщение об ошибке
    else:
        from main import blockchain
        return render_template("block.html", block = block, blockchain=blockchain)


    Я бы посоветовал сочетание методов 2 и 3. Пусть преобразованием в int занимается Flask, но всё же проверь, подходит ли это число.
    Ответ написан
    1 комментарий
  • Какие "подводные камни" могут быть при создании доски объявлений?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    от специальной операции до детского контента

    в общем проблема досок - в модерации
    Ответ написан
    5 комментариев
  • Диплом платных курсов или Вышка?

    paran0id
    @paran0id
    Умный, но ленивый
    Вышка, конечно. Диплом курсов не просто не поможет - последнее время у курсов такая репутация, что лучше его вообще не иметь.
    Ответ написан
    5 комментариев
  • Почему в некоторых вакансиях обязательным требованием является работа в IntelliJ IDEA?

    azerphoenix
    @azerphoenix Куратор тега Java
    Java Software Engineer
    Добрый день.
    Ну во-пераых, Netbeans уже устарел. В качестве альтернативы, если не устраивает Intellij iDEA можно взять Eclipse.
    Что касается лагов и т.д., то никогда не сталкивался с такой проблемой. Использую IDEA на стареньком core i5 4-th, 16 ram, 250 ssd. ОС - manjaro kde. Intellij IDEA намного функциональнее и удобнее всех IDE и редакторов кода, которые мне доводилось видеть. А пробовал я visual code studio (oss), intellij idea, netbeans, eclipse, sublime text, brackets, atom и т.д.
    Что касается работодателей, то по идее им должно быть все равно, где вы пишете код. Нравится, хардкодить в vim или nano, то ради Бога)
    Ответ написан
    Комментировать
  • Можно ли из телефона сделать глушилку Wifi/Моб. Сити?

    CityCat4
    @CityCat4
    //COPY01 EXEC PGM=IEBGENER
    Можно почитать книжки по теории радиосвязи. Потом немного подумать, покраснеть и быстренько удалить вопрос...
    Ответ написан
    Комментировать
  • Где обучиться Java?

    Jacen11
    @Jacen11
    Какие есть курсы по Java очно
    я вам подскажу, это сбер, втб, альфа и прочие банки и крупные корпорации. Открываете hh.ru и вперед по вакансиям. И обучат на реальных проектах, и шишки набьете, и мотивации будет море и даже заплатят вам!

    собесные вопросы ток вызубрить надо и не надеяться на горы денег сразу
    Ответ написан
    Комментировать
  • Как справиться с выгоранием в профессии?

    @mkone112
    Начинающий питонист.
    в графике день/ночь

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

    Adamos
    @Adamos
    Есть такая проблемка у нынешнего необременительного IT-образования.
    Насмотрится малек видосиков, напроходится курсиков и фиксиков - и начинает ему казаться, что это какая-то игрушка, в которой кто-то для него должен был напридумывать новых интересных уровней.
    А реально за тем легким начальным уровнем идет набор опыта - кромешной рутиной, да расширение знаний - чтением скучных статей без картинок и удручающе толстых учебников "не для новичков". И начинается дофаминовая ломка...
    Ответ написан
    4 комментария
  • Странные пункты про штрафы при устройстве на удаленку в Казахстан из РФ?

    alexgp13
    @alexgp13
    Руководитель ИТ-проектов
    Дикие пункты, которые, кроме того, невыполнимы по двум причинам - иностранноет гражданство работника (судиться бесполезно практически) и ТК РФ, который запрещает штрафы. Думаю, что в Казахстане есть аналогичные требования местного законодательства. Даже при подписании такого договора эти пункты не имеют юридической силы как противоречащие закону.

    С точки зрения работника - бегите от такой компании.
    Ответ написан
    9 комментариев
  • Вам нужно нанять "Android junior developer". Какие у вас будут требования?

    GavriKos
    @GavriKos
    Те навыки, которые нужны на проектах куда идет найм.
    Ответ написан