Задать вопрос
  • Какие есть ресурсы для изучения информатики?

    shurshur
    @shurshur
    Чтобы развиваться в айти, надо выбрать конкретную область. Эникейщики, умеющие настраивать принтеры или чистить вирусы - это тоже айти. Админы серверов, тестировщики, техписы, PM, техподдержка - тоже айти. Но им нужны совсем разные знания неодинакового уровня сложности.

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

    Эти две задачи очень разные, их нельзя смешивать.
  • Возможно ли совмещать работу фронтендера (уровень джун или мидл) и учёбу в институте на очном?

    shurshur
    @shurshur
    Первые 2 или даже 3 курса - категорически не рекомендую. Особенно если вуз не для "пересидеть", а есть желание его закончить и получить знания. Первые курсы студенты обычно достаточно сильно нагружены, и слишком много

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

    Работу на полную ставку в любом случае студент-очник найти не может, но можно попробовать найти частичную занятость со свободным графиком и/или удалёнкой.

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

    > у меня уровень между джуном и мидлом

    Джун и мидл - это градации профессионального опыта в разработке коммерческого уровня. Без опыта какой-либо работы вообще программист не может называть себя мидлом.

    > нейронки пишут нормальный код

    Нейронки пишут нормальный код только для очень простых задач, для которых по суте уже есть готовые решения в гугле. Чуть отличается задача - и уже может получиться любая лажа. При этом нейронка не несёт никакой ответственности за качество кода, если код хоть где-то налажает - с кого спрашивать?
  • Почему не работает help disnake?

    shurshur
    @shurshur
    Sergey Anushkin, не знаю что такое bot.PREFIX, это к данному вопросу уже не относится. И не надо код и ошибки картинками постить, это же текст.
  • Почему не работает help disnake?

    shurshur
    @shurshur
    Sergey Anushkin,
    bot = commands.Bot(...)
    bot.remove_command('help')
  • Как создать ветви диалогов?

    shurshur
    @shurshur
    Гуглить в сторону FSM для своей библиотеки. Например, для telebot это bot.register_next_step_handler.
  • С чего начать путь в математике?

    shurshur
    @shurshur
    Speakermen, то есть речь не о программировании, а о Data Science? Ну тогда изучать придётся прежде всего основы. Алгебра/линейная алгебра (матрицы, метод Гаусса, определители итд), начала анализа (множества, функции, пределы, производные и интегралы, формула Тейлора) - условно программа первого курса математического вуза.
  • Как отправить сообщение в ТГ боте на python list'y пользователей?

    shurshur
    @shurshur
    Terbyn, предлагаю спросить у ChatGPT :)

    Ладно, подскажу: у Телеграм есть лимиты на скорость отправки, 30 в секунду, с возможным кратковременным burst на 150. Как только скорость превышена - скрипт упадёт.
  • Какие преимущества у docker?

    shurshur
    @shurshur
    Что значит "преимущества"? Сравнивать докер с виртуалками это как сравнивать лыжи с автомобилем. Да, и то и другое позвляет быстрее передвигаться, но это в принципе несравнимые вещи, предназначенные для разных задач с разной целью.

    Виртуалки делают для долговременного существования, это именно виртуальные сервера. В то же время docker - это инструмент и сопутствующий инструментарий для запуска приложений. Это просто разные вещи для разных целей.

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

    shurshur
    @shurshur
    Зачем?

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

    Если это вопрос что изучать школьнику, то школьнику изучать школьную математику. Пока она не освоена - довольно бессмысленно браться за следуюший уровень.
  • Сколько вкладок в браузере Google Chrome я смогу открыть одновременно, если обзаведусь 128 гигабайтами оперативной памяти?

    shurshur
    @shurshur
    Хром от большого количества вкладок по памяти буквально умирает. Firefox более живуч в этом плане. С Auto Tab Discard я открывал более 6 тыс. У меня главная беда в том, что я вкладки постоянно открываю "на посмотреть", а потом приходится их как-то вычищать из браузера.

    Например, вот сейчас у меня 2 тыс. вкладок с qna.habr.com, многие просто не прочитаны вовремя, и я их вынужденно закрою рано или поздно...

    Но я считаю, что задача "открыть всё сразу" решается неправильно. Можно, например, сгенерить html-файл со ссылками и открыть его. По частям открывать ссылки по несколько штук или десятков колёсиком, при этом visited-ссылки будут подсвечены другим цветом, и будет видно, что они уже проверены.

    Или вот закладки тут упоминали - тоже вполне себе способ.
  • Как отправить сообщение в ТГ боте на python list'y пользователей?

    shurshur
    @shurshur
    Если в списке больше 150 пользователей, прилетит нежданчик :)
  • Как исправить ошибку в PostgrSQL(asyncpg)?

    shurshur
    @shurshur
    Также недоумение вызывает новый коннект к базе на каждую единичную проверку. Так не делают.
  • Как записать Input в TelegramBotApi?

    shurshur
    @shurshur
    Умеет, искать register_next_step_handler и пример step_example.py.
  • Нужно искать по названиям вещей и выдавать дополнительную информацию, как сделать это проще?

    shurshur
    @shurshur
    nakem, если уже есть база телефончиков с их описанием, то дело осталось за малым - по не очень чёткому названию достаточно надёжно определить конкретную модель или даже несколько. Но это ни фига не просто.

    Например, пользователь ищет Samsung Galaxy A3, но что он имеет в виду? A3 2017? A3 2018? A3+? A32? A33? А если он пропускает слово Samsung или Galaxy или даже оба? А если он пишет с опечаткой или по-русски?

    Нечёткий поиск это всегда сложно.
  • Как отправить запрос на сервер используя .csr, приватный ключ .key и выданный .cer на основании csr?

    shurshur
    @shurshur
    demiash, cacert при вызове не нужен, достаточно своего ключа и своего сертификата.

    Как устроена авторизация на том сайте и что для неё надо передавать надо у самого этого сайта и спрашивать. Если он выдаёт 403 а не ругается на проблему SSL handshake - то сертификат съелся нормально.
  • Как сделать корпоративный портал с функцией личного кабинета?

    shurshur
    @shurshur
    InnerMight, у кого почты нет, можно например отдельно для них печатать, и пусть придут в бухгалтерию за получением. Правда, если таких 90% конторы, то это, мягко говоря, не очень решение...
  • Как правильно написать рекурсию в Python для сбора элементов по parent key?

    shurshur
    @shurshur
    Не очень понимаю в чём проблема. Данные можно преобразовать в словарь, где Ref_Key будет ключом:

    data_dict = dict((x["Ref_Key"], x) for x in data)

    После этого можно пройтись по элементам и добавить в каждый словарь родительский элемент ссылки. И рекурсия тут не нужна.

    roots = []
    
    for ref_key, item in data_dict.items():
        parent_key = item.get("Parent_Key", None)
        parent_item = data_dict.get(parent_key, None)
    
        # ссылка в никуда, видимо такого быть не должно, но
        # можно форсировать превращение item в корневой элемент
        #if parent_item is None:
        #    parent_key = None
    
        if parent_key is None: # родителя нет - это корень
            roots.append(item)
            continue
    
        if "childs" not in parent_item: parent_item["childs"] = []
        parent_item["childs"].append(item)


    В итоге получаем в roots все корневые вершины, от которых растут все остальные через поле childs. IsFolder не пригодилось.
  • Как сделать корпоративный портал с функцией личного кабинета?

    shurshur
    @shurshur
    У нас 1С шлёт сотрудники на почту расчётные листки. Не интересовался, это штатный функционал или что-то кастомное.
  • Откуда синхронизировать время на объектах критической информационной инфраструктуры?

    shurshur
    @shurshur
    mf0rce, написать внутренний регламент, что время обновляется по серверам ВНИИФТРИ и всем его показывать. Пускай сами спорят с ФГУП, что те время предоставляет правильно. Если инфраструктура настолько критическая, что этого недостаточно, а денег куры не клюют, постройте с ВНИИФТРИ VPN или даже физический канал, в котором вы будете с ними обмениваться данными.

    Что касается технической стороны, то "подвинуть" время на большую величину в NTP нельзя, и это тоже элемент защиты. Собственно, даже в винде приходится дату вручную поставить на верную, прежде чем синхронизация времени успешно отработает. Поэтому атака на время довольно сложна, и почти нереально сдвинуть его. так, чтобы, например, у пользователя умерла лицензия на антивирус или протухли все корневые сертификаты.