Задать вопрос
  • Преобразование шрифта?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    Этот текст - это символы Unicode.

    Например, "б" в слове "большое" - это символ 0x0431

    Проблема в том, что там символы не из одного алфавита, а полная солянка. На этом сайте можно получить коды всех символов: https://www.rapidtables.com/convert/number/ascii-t...
    Получите:
    1D04 1D00 28D 43E 1D07 20 431 43E 1D27 44C 26F 43E 1D07 20 28D 43E 1D29 1D07


    Как видите, они все разбросаны довольно сильно. 1D** - Phonetic Extensions . 04** - Cyrillic, 02** - IPA Extensions

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

    Можно написать обратный конвертер на том же питоне, только надо руками сопоставить каждому символу из текста нужный символ из обычного ascii. Например, заведите солварь (вам надо руками все встречающиеся символы в исходной строке туда добавить):
    convert = {'ᴀ': 'а', ... 'ʍ':'м', ...}

    Потом примените его ко всем символам в вашей строке каким-нибудь map().
    Ответ написан
    Комментировать
  • Алгоритм поиска маршрута?

    wataru
    @wataru Куратор тега Алгоритмы
    Разработчик на С++, экс-олимпиадник.
    В питоне есть библиотека для работы с графами NetworkX. И там есть уже реализованные алгоритмы кратчайших путей.

    Это будет быстрее, чем самостаятельно реализовывать какой-нибудь алгоритм Дейкстры или обход в ширину, ибо питон - безбожно тормознутый язык. А в библиотеке вычисления обычно реализованы на более быстрых языках.
    Ответ написан
    1 комментарий
  • Как сменить одну из переменных в отдельном файле?

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

    @rPman
    Лучшее начало карьеры в IT для неуверенных - отел тестирования. Во первых, такие есть только у компаний с определенным размером, во вторых, это подразумевает контакт с разработчиками (хотя что я говорю, крупные компании могут сделать одиноким и похоронить любого человека в толпе опенспейса) и главное, при правильном подходе будешь вращаться в той самой квинтэссенции того с чем работают программисты - отладка кода и поиск багов.

    Развиваться нужно только самому, это основа любого IT-шника, такова особенность отрасли. Конечно, может повезти, и компания может 'оплатить' какое то из направлений твоего развития, но вероятность что это совпадет с твоими желаниями околонулевая.

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

    Области, которые настоятельно рекомендуется заглянуть - обязательно базы данных, автоматизация работы с типовыми пользовательскими задачами (вот по простому - файлы надо переименовать кучу, или в документе провести подмену чуть сложнее чем А на Б и т.п.) сразу пощупаешь и скриптовые адские языки типа bash/cmd/powershell и устаревшие visual basic script, и заглянешь в c# при наличии потребностей, между прочим простой офисный клерк, умеющий автоматизировать свою работу на уровне документов уже ценен.

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

    Обязательно изучи все что сейчас вокруг использования ИИ (chatgpt), не как разработчик этих ИИ а как пользователь, понимание что такое промпт, какие задачи можно решать с их помощью и какие глупо, какие недостатки и чем они обусловлены - это мейнстрим, и отставать тут не рекомендуется, плюс ИИ сам по себе неплохой помошник в обучении (с осторожностью!).
    Ответ написан
    4 комментария
  • Стоит ли работать в тех поддержке?

    xez
    @xez
    TL Junior Roo
    Существует такое деление: разработка и эксплуатация.
    Разработка - это разработка, собственно, а так же системная аналитика, тестирование, продуктовая разработка.
    Эксплуатация - это системное администрирование, поддержка, хелп-деск и т.д.
    И в эксплуатации и в разработке есть развитие.
    Например, в эксплуатации можно устроиться «поднимать трубку», за тем на вторую-третью линии, оттуда в сисадмины/дба/сети/безопасность/девопс куда уж занесет ну и менеджмент конечно.
    В разработке растут по грейдам, а там либо в менеджеры, либо в архитекторы/евангелисты.

    В каждой области есть своя большая экспертиза и своя специфика.
    Редкий разработчик на экспертном уровне разбирается в сетях, например, ну и редкий сетевой администратор умеет в код энтерпрайз уровня.

    На ваш вопрос ответ такой: вам нужно самостоятельно определиться что вам интереснее, чем вам хочется заниматься. Если душа лежит в разработку - нужно как можно раньше именно ей и заниматься. Рост экспертизы в эксплуатации даст вам минимальное преимущество в дальнейшем трудоустройстве.
    Если же нравится «в эксплуатацию» - тоже классно; продолжайте карьерный путь, наращивайте экспертизу.
    Ответ написан
    3 комментария
  • Как вывод команды help в терминал передать в переменную?

    Vindicar
    @Vindicar
    RTFM!
    help() выводит doc-string переданного объекта. Обычно этот doc-string лежит в атрибуте __doc__.
    Так что можно сделать куда проще, чем подсовывать что-то вместо stdout:
    help_text = getattr(obj, '__doc__', None)
    В help_text будет None или строка документации.
    Ответ написан
    Комментировать
  • Как в название одной переменной внести значение другой переменной?

    Vindicar
    @Vindicar
    RTFM!
    Это можно сделать, но в 99% случаев это не нужно делать. Во-первых, пользователь может ввести строку, которая не является корректным идентификатором. Во-вторых, появляется риск нечаянно перезаписать переменную, которую мы не хотели трогать.
    Вместо этого следует использовать словарь (dict), где ключ - имя "переменной", а значение - её содержимое. Это куда более контролируемо.
    Нет, я хочу выстрелить себе в ногу, и санитары меня не остановят!

    Функция globals() возвращает словарь глобальных переменных, а locals() - словарь локальных.
    При этом эти словари - не копии, а, можно сказать, оригиналы. Добавишь в них новый ключ - появится новая переменная. Вот пример в интерактивной консоли питона:
    Python 3.11.7 (tags/v3.11.7:fa7a6f2, Dec  4 2023, 19:24:49) [MSC v.1937 64 bit (AMD64)] on win32
    Type "help", "copyright", "credits" or "license" for more information.
    >>> l = locals()
    >>> l['x'] = 1
    >>> x
    1
    >>>

    Ответ написан
    Комментировать
  • Как работают рекурсии?

    Vindicar
    @Vindicar
    RTFM!
    Raddzor788,
    Где хранятся все эти значение 1,2,3,4, ведь у моего 'x' нету же звездочки(*х), чтобы собрать столько аргументов.

    Твой x - это несколько разных x. Потому что есть такая вещь как области видимости. Обычно есть область видимости функции (локальная) и глобальная область видимости скрипта. Если функция не видит нужного имени в локальной области - она ищет в глобальной. Если не видит и там - ищет в __builtins__.
    0. По умолчанию есть глобальная область видимости скрипта.
    1. При вызове func(1) создаётся локальная область видимости (скажем, А), в ней создаётся имя x, указывающее на 1.
    2. Отработало условие 1 < 4.
    3. Вызывается func(2). При этом создаётся НОВАЯ локальная область видимости Б (потому что новый вызов функции), в ней создаётся имя x, указывающее на 2.
    4. Отрабатывает условие 2 < 4.
    5. Вызывается func(3). При этом создаётся локальная область видимости В, в ней создаётся имя x, указывающее на 3.
    6. Отрабатывает условие 3 < 4.
    7. Вызывается func(4). При этом создаётся локальная область видимости Г, в ней создаётся имя x, указывающее на 4.
    8. Условие 4 < 4 не отрабатывает. Происходит вызов print(x) - имя x находится в текущей локальной области Г, выводится ассоциированное с ним значение 4. Отрабатывает print(4), происходит возврат из функции, область видимости Г уничтожается.
    9. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости В - в ней имя x связано со значением 3. Отрабатывает print(3), происходит возврат из функции, область видимости В уничтожается.
    10. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости Б - в ней имя x связано со значением 2. Отрабатывает print(2), происходит возврат из функции, область видимости Б уничтожается.
    11. Происходит вызов print(x) в предыдущем "слое" рекурсии. Текущая локальная область видимости А - в ней имя x связано со значением 1. Отрабатывает print(1), происходит возврат из функции, область видимости А уничтожается.
    12. Мы вышли из всех слоёв рекурсии. Мы находимся в теле скрипта и работаем только с глобальной областью видимости.
    Ответ написан
    Комментировать
  • Как найти работу после курсов по фронтенду?

    Alexandroppolus
    @Alexandroppolus
    кодир
    У нас вчера отгремела очередная собесная серия, нашли милла (точнее, предложили оффер, согласится ли, посмотрим). До этого были в феврале. Что я заметил: у всех "опыт Реакт от 3 лет", но по факту большинство чуваков не знает базовую повседневную примитивщину.
    Так что да, кандидатов много, хороших мало (все за каким-то хером ломанулись в айти).

    Тебе надо пройти эйчарские какие-то фильтры. Возможно, придется нарисовать себе красивое резюме с опытом. Да, это неприкольно, ну и что? Если ты за предстоящий год-полтора как следует разберёшься с айтишной наукой и блеснешь интеллектом на тех.собесе, всем будет пофиг, какой на самом деле опыт. Возьмут джуном, я так думаю.
    Ответ написан
    6 комментариев
  • Какие нейросети имеют доступ к страницам сайте в интернете?

    @rPman
    Ни одна нейросеть на базе gpt не умеет напрямую работать со страницами в интернете.

    Нужна прослойка, которая, во первых, преобразует страницу в текст (это не так просто как кажется, нужно выделить на странице контент, точнее его группы (информационные блоки), понять где реклама, где навигация а где дизайнерский мусор, отличный пример - страница ozon, 90% экрана абсолютно бесполезный мусор, рекомендации (далекие от того что нужно покупателю), проплаченные карточки и т.п. найти среди этого хлама нужную информацию не просто. Плюс все это формируется в процессе, двигая элементы интерфейса туда сюда... работать с этим адом очень и очень не просто, особенно когда разработчики старательно сопротивляются любой автоматизации.

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

    И главная проблема - ограничения на размер контекста. Большие объемы текста тупо не помещаются 4к..8к токенов это тот объем, в пределах которого сети работают хорошо, но чем больше размер контекста (даже если заявлены 16к или 32к) начинаются борьба компромисов, качества и стоимости. Может так получиться что вместо работы со всей информацией сразу, ее делят на части (еще одна проблема по анализу исходной страницы), а затем, набирая вопросы из текущего контекста (та еще задачка) задают их последовательно для каждой, собирая ответы в итоговый контекст и ее уже используют для дальнейшей беседы. Плюс есть еще алгоритмы саморизации. Плюс еще неплохо сюда multishot пристроить, с примерами.

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

    В общем реализуете что то стоящее первыми, может даже озолотитесь, продавая готовое решение бизнесу.
    Ответ написан
    Комментировать
  • Компания предлагает большу зп и торопит с выбором - это плохо или нет?

    Получил оффер от одной компании (банка) с неожиданно большой суммой, чуть ли не x2 от запрошенной

    Вероятно ты просто запросил сильно ниже рынка / стандартной ставки.
    Что за банк?
    Что за должность?

    Например, все этапы собеседований HR пыталась ставить близко друг к другу.

    А зачем растягивать?

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

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

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Почему при парсинге страницы с погодой выдает None?

    Выберите то, что Вам больше понравилось:
    - requests парсит первый ответ сервера, а там сайт на реакте с динамической загрузкой части контента.
    - Запрос отправляется без заголовков и Вас блочит примитивная защита.
    - Вы попадаете на капчу, т.к. request видно издалека.
    Ответ написан
    Комментировать
  • Как вывести цифры числа в порядке слева направо?

    @AWEme
    Retard Soft Inc.
    Через реверс цифр в числе
    n = 59621113332281337
    tmp = 0
    
    while n > 0:
        tmp = (tmp * 10) + (n % 10)
        n //= 10
    n = tmp
    
    while n > 0:
        print(n % 10, end=" ")
        n //= 10

    Через степени
    import math
    
    n = 59621113332281337
    power = math.floor(math.log10(n))
    rank = 10 ** power
    
    while n > 0:
        digit = n // rank
        print(digit, end=" ")
        n -= digit * rank
        rank //= 10
    Ответ написан
    Комментировать
  • Миддл без юнит тестирования?

    Апплайся на мидла, а там разберутся.
    Ответ написан
    Комментировать
  • Чем отличается оператор от матрицы в линейной алгебре?

    wataru
    @wataru Куратор тега Математика
    Разработчик на С++, экс-олимпиадник.
    Оператор - вообще любая штука, которая как-то действует на объекты. Она ставит каждому входному элементу некий рузультирующий элемент. Функция, короче. Квадратный корень среди чисел, логарифм там же, поворот объектов на плоскости на 30 градусов по часовой стрелке, отражение относительно прямой - это все операторы.

    Линейное преобразование - это конкретный тип операторов, который действует на элементы R^n и характирезуются тем, что они обладают свойством линейности (F(x+y) = F(x)+F(y), F(kx) = kF(x)).

    Матрица - это математический объект.
    Между матрицами и линейными операторами есть взаимнооднозначное соответствие. Домножение на матрицу - это линейное преобразование. Любому линейному преобразованию можно поставить в соответствие матрицу (посмотрев, как оно преобразует базисные вектора). Поэтому часто можно в литературе встретить, что матрицу называют оператором и наоборот.
    Ответ написан
    2 комментария
  • Что технически(какие it решения, технологический стек) нужны для создания ии ,который сможет на основе жалоб ставить диагноз?

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

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    X0 - сумма кредита
    Xi - остаток после i-го платежа
    p - месячная ставка десятичной дробью
    E - ежемесячный платёж

    X1 = X0 * (1 + p) - E
    X2 = X1 * (1 + p) - E = X0 * (1 + p)2 - E * ((1 + p) + 1)
    X3 = X2 * (1 + p) - E = X0 * (1 + p)3 - E * ((1 + p)2 + (1 + p) + 1)
    Видим, что
    Xn = X0 * (1 + p)n - E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1)
    При кредите на n месяцев Xn = 0
    X0 * (1 + p)n - E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1) = 0
    X0 * (1 + p)n = E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1)
    X0 = E * ((1 + p)n - 1 + (1 + p)n - 2 + ... + (1 + p) + 1) / (1 + p)n
    X0 = E * (1 - (1 + p)n) / (1 - (1 + p)) / (1 + p)n

    E = 10000
    n = 12
    p = 1.5% = 0.015
    X0 = 10000 * (1 - 1.01512) / (1 - 1.015) / 1.01512 = 109075,05
    Ответ написан
    Комментировать
  • Сети или Linux? Какие курсы окончить в первую очередь?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Сети, если в них не углубляться, вещью в себе не являются. Администрирования линукса без понимания фундаментальных сетевых вещей не бывает. Так что я за второй вариант.
    Ответ написан
    Комментировать
  • Какие базовые вещи из IT для backend можно изучить или хотя бы сформировать базовое понимание по ним за несколько часов в неделю?

    saboteur_kiev
    @saboteur_kiev Куратор тега IT-образование
    software engineer
    нужно не изучать а поработать.
    Написать рестфулл веб сервис с использованием ООП и чистой архитектуры, поработаьт с реляционной базой данных.
    А то, что ты "изучил" без реальной практики - ничто.
    Ответ написан
    2 комментария
  • Какие есть фриланс-направления в разработке?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Для вас ответы не будут иметь смысла. Вы ищете как бы не работать и получать деньги. Как бы не учиться и получить квалификационную профессию.
    Фриланс бывает ОЧЕНЬ и очень разнообразным. Но прибыльный фриланс начинается с высокого уровня сеньорности. Когда ты можешь сделать практически все.
    К этому моменту направления могут быть какие угодно, включая ентерпрайз.
    Ответ написан