Задать вопрос
  • Как правильно составлять портфолио для поступления в университет бэкэнд специалисту?

    Griboks
    @Griboks
    1. Устраиваетесь на работу бекендером.
    2. Работаете 3-5 лет на различных стартапах.
    3. Красиво описываете стартапы как свои проекты.
    Ответ написан
    4 комментария
  • Стоит ли покупать и проходить модный онлайн курс по квантовым вычислениям?

    Griboks
    @Griboks
    мне через несколько дней исполнится 24 года, что приближает меня к рубежу, после которого начинается плавный упадок когнитивных способностей.

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

    @AVKor
    метался

    Учился основательно

    Выбрать одно.
    кучу пройденных видеокурсов - знания остались довольно поверхностные

    Не преувеличивайте. После видосов их нет вообще, а не "поверхностные".
    ибо такими и только такими переполнены общедоступные источники

    Враньё. Документация общедоступна. Хорошие статьи общедоступны. Книги как бы не общедоступны (их надо, как правило, покупать), но по факту общедоступны.
    как понять, когда необходимый минимум знаний будет набран?

    Берёте проекты с фриланса и делаете. Без ставок и оплаты.

    Делаете проекты, интересные себе самому.
    Ответ написан
    Комментировать
  • Rust мёртв, или только развивается?

    vabka
    @vabka Куратор тега Rust
    Rust появился в 2006

    Rust перешёл в stable только в 2015.
    До этого это были всякие прототипы и эксперименты.
    на данное время крупных проектов использующие его (кроме дискорда) нет

    https://www.rust-lang.org/production/users
    Как мне кажется, достаточно много разных крупных и именитых продуктов.

    PS: С Rust у тебя бы не возникло таких вопросов:
    https://qna.habr.com/q/1155256
    https://qna.habr.com/q/1147948
    Ответ написан
    Комментировать
  • Ошибка при работе со Spring Security. Как ее решить?

    @Akela_wolf
    Extreme Programmer
    Я step by step повторял за ютубером "Eugene Suleimanov"

    С какой целью вы это делали?
    я понятие не имею в чем причина

    И что вы хотите от нас? Чтобы вам решили эту проблему, а со следующей вы снова прибежите и снова напишете "я понятие не имею в чем причина"?
    Ответ написан
    2 комментария
  • С чего начать в 30 лет?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Фундаментальная проблема - в игрострой стоит очередь фанатов с горящими глазами. Людей, которые пишут игры, играют в игры, моддят игры, хакают игры..., начиная с возраста, когда они смогли дотянуться до клавиатуры (как ваш покорный слуга). При этом, у них столько мотивации, что они могут сами поставить себе задачу, сами нагуглить все, что нужно (Спасибо дяде Немнюгину за его учебник. Это все что нужно знать о DOS, чтобы закодить dOOm) и сами все напишут и нарисуют (работая над этим сутками. Не потому что над душей стоит босс с воплями о лишении премии, а потому что им это интересно).

    И вот теперь, Андрей, который уже устал хочет встать в очередь высоко мотивированных конкурентов и попросить себе оффер. Каковы его шансы на успех?

    В играх есть много специализаций программирования - хотите графику, придется учить одно (причем на 2d и 3d это одно будет разное), хотите игровую логику и скриптинг - это номер два, хотите системную часть и бэкенд - это будет третье.

    Для универсального развития, нужно начинать с простых фиговин вроде тетриса, арканоида, бильярда и прочего (в которых однако есть все столпы игростроя - графика + логика + системный движок, можно и добавить сеть, если подумать) и потом наращивать сложность - делать платформер или RTS.
    Ответ написан
    4 комментария
  • Почему функция в общем потоке отрабатывает быстрей чем в отдельном асинхронном?

    Alexandroppolus
    @Alexandroppolus
    кодир
    Если у тебя вычисление работает только в одном вспомогательном потоке, то никакого ускорения вычислений, разумеется, не будет. Это просто освобождает основной нодовский поток для обработки других запросов.
    Ответ написан
    3 комментария
  • Сервер для docker?

    Sanes
    @Sanes
    Тебе надо выучить 10 консольных команд.
    Ответ написан
    Комментировать
  • Как получить переменную из любой функции класса?

    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
    Жил да был черный кот за углом...
    О Боже, этот вопрос рассматривался тут сто тыщ мильенов раз.

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

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

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

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

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

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

    В произвольной форме в общем.
    Ответ написан
    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 комментариев