Задать вопрос
  • Не копятся ли строки в памяти при работе с python?

    fenrir1121
    @fenrir1121
    Но ситуация усложняется, если на них есть ссылки в других местах, особенно если имеют место циклические ссылки.
    В gc реализован механизм поиска циклических ссылок.
    А вообще есть еще механизм интернирования и если строка определена на этапе компиляции как ImmortalObject память выделяется один раз при запуске. Причем в сборке с `nogil` имморталами являются чуть ли не все строки, которые можно вычислить на этапе компиляции.
    Написано
  • Какова временная сложность del[pos:] для списка в Python?

    fenrir1121
    @fenrir1121
    dim5x, да, действительно O(n).
    listobject.c -> list_ass_slice_lock_held
    Указатели на все удаляемые объекты копируются в recycle и далее по каждому проходим и освобождаем.
    item = a->ob_item;
        /* recycle the items that we are about to remove */
        s = norig * sizeof(PyObject *);
        /* If norig == 0, item might be NULL, in which case we may not memcpy from it. */
        if (s) {
            if (s > sizeof(recycle_on_stack)) {
                recycle = (PyObject **)PyMem_Malloc(s);
                if (recycle == NULL) {
                    PyErr_NoMemory();
                    goto Error;
                }
            }
            memcpy(recycle, &item[ilow], s);
        }
    
        if (d < 0) { /* Delete -d items */
            Py_ssize_t tail;
            tail = (Py_SIZE(a) - ihigh) * sizeof(PyObject *);
            // TODO: these memmove/memcpy calls are not safe for shared lists in
            // GIL_DISABLED builds. (See issue #129069)
            memmove(&item[ihigh+d], &item[ihigh], tail);
            if (list_resize(a, Py_SIZE(a) + d) < 0) {
                memmove(&item[ihigh], &item[ihigh+d], tail);
                memcpy(&item[ilow], recycle, s);
                goto Error;
            }
            item = a->ob_item;
        }
        else if (d > 0) { /* Insert d items */
            ...
        }
        for (k = 0; k < n; k++, ilow++) {
            PyObject *w = vitem[k];
            FT_ATOMIC_STORE_PTR_RELEASE(item[ilow], Py_XNewRef(w));
        }
        for (k = norig - 1; k >= 0; --k)
            Py_XDECREF(recycle[k]);
        result = 0;
     Error:
        if (recycle != recycle_on_stack)
            PyMem_Free(recycle);
        Py_XDECREF(v_as_SF);
        return result;
    Написано
  • Какова временная сложность del[pos:] для списка в Python?

    fenrir1121
    @fenrir1121
    Я не у компа чтобы посмотреть внимательно исходники, но готов поставить сотку, что описанный случай это корнеркейс при котором просто ob_size обрезается за O(1).

    А линейно растёт время создания списка, которое тоже попало в измеряемую функцию.
    Написано
  • Какой ноутбук выбрать для максимальной совместимости с linux?

    fenrir1121
    @fenrir1121
    Чтобы настроить ноут (именно ноут, а не десктоп из ноута) на линуксе так, чтобы он работал хотя бы примерно так же, как работает на Винде10/11 из коробки - нужно быть хорошим спецом,
    ThinkPad'ы хорошо работают с линухом без напильника и влезают в ценник. Не смотря на какие-то отзывы на реддите. Тут уж скорее дело в невидиевских драйверах, но они будут работать херово на любом железе.
    Написано
  • Как планшет с Андроидом и стилусом использовать вместо мыши (для рисования в Photoshop'е)?

    fenrir1121
    @fenrir1121
    ImagineTables, любыми. Проф планшет можно выбрать относительно любого размера, с доп физическими кнопками для удобства и т д. Модель не подскажу, но у нее дюймов 15 размер. И опять же это если оно реально нужно, бюджетных моделей дофига, подержанных тоже.
    Написано
  • Как планшет с Андроидом и стилусом использовать вместо мыши (для рисования в Photoshop'е)?

    fenrir1121
    @fenrir1121
    ImagineTables, у меня младшая сестра художник и по ее мнению графический планшет не заменяется даже айпадами. Да с экраном они уже дороже банки пива, что поделаешь.
    Написано
  • Что искать в новых смартфонах на замену старому, приобретённому в 2018 году?

    fenrir1121
    @fenrir1121
    Оставляю в комментах потому что дальше будет сплошное субъективное имхо.
    Кажется все плюс-минус одинаковые. Из каких-то отличий есть раскладушки, да сверхбыстрые зарядки.
    Сам хожу с pixel 7 pro, у жены samsung s24+, кроме оболочки никакой разницы. По бенчмаркам может и есть, а в реальном использовании нет.
    Из китайцев последнее время слышал хорошее про OPPO, подумываю попробовать после пикселя.
    Написано
  • Как сделать форму обратной связи на сайте с отправкой на Whatsapp?

    fenrir1121
    @fenrir1121
    Zashamee,
    А могу ли я уместить фронт и бэк на одном хостинге?
    Можете. Можете даже в одном сервисе их уместить, для этого есть паттерн Backend-for-Frontend. Я предлагаю разделение исключительно потому, что работоспособность этого функционала может в случайный момент отвалиться (см сообщение выше) и будет глупо если из-за этого отвалится весь фронтенд.
    Написано
  • Как сделать форму обратной связи на сайте с отправкой на Whatsapp?

    fenrir1121
    @fenrir1121
    Спросил, т.к. на 4ПДА последние несколько месяцев любители модов приложения активно страдают.
    Это бесполезно спрашивать, слишком много неизвестных: кейсы у всех чем-то отличаются, алгоритмы ВА могут меняться или даже быть не детерминированными.
    Просто стоит бизнесу подсветить момент, что вдруг в случайный момент система может отвалиться и от вас это никак не зависит.
    Написано
  • Как сделать форму обратной связи на сайте с отправкой на Whatsapp?

    fenrir1121
    @fenrir1121
    shurshur, полностью согласен, что лучше или слать в телегу или на почту.
    Предположу что это странные требования заказчика, но в любом случае разработчику стоит подсветить риски.
    Написано
  • Как сделать форму обратной связи на сайте с отправкой на Whatsapp?

    fenrir1121
    @fenrir1121
    Zettabyte, пробовал, была аналогичная рабочая задача, но года 3 назад. С ВА прокатило, а вот в инсте забанили минут за 5.
    Написано
  • Как установить библиотеки python вручную?

    fenrir1121
    @fenrir1121
    scxrp, venv. вообще целиком можно перетащить и использовать. Это в целом вопрос, который должен обсуждаться с инфобезами компании, а не в интернете.

    У меня скажем аналогично нет интернета, но есть внутренний pypi и если нужно что-то специфичное можно сделать запрос на доступ в интернет до конкретных адресов.
    Написано
  • Как можно запустить бота на discord py и asyncio?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    можно ли все таки как-нибудь это реализовать


    я не понимаю что вы пытаетесь сделать и зачем


    Можно выкинуть весь ваш код, открыть любого бота на гитхабе и скопировать
    Написано
  • Как можно запустить бота на discord py и asyncio?

    fenrir1121
    @fenrir1121 Куратор тега discord.py
    kefirich, если предполагается что on_message должен слушать события бота то никак.
    Не хочу обидеть, но я не понимаю что вы пытаетесь сделать и зачем. Чего вы ожидаете передавая инстанс класса в create_task?
    Написано
  • Как проверить перемещается ли в памяти объект при "перемещении"?

    fenrir1121
    @fenrir1121
    А какое различие у функций вообще, если в одной тип параметра &Box и в него мы передаем b, который имеет тип Box от параметра просто &i32?

    Код стоит писать максимально универсальным и раст делает для этого много вещей. Лучше ознакомиться с базовыми трейтами, поскольку это очень мощные языковые концепции.
    В частности Box<T> реализует трейт Deref, где Target = T. Это означает, что при использовании указателя он может неявно приводиться к типу T. По тому же принципу, например функции с параметром &str, могут принимать String.

    И если надо просто адрес проверить, то есть вывести на экран, то лучше использовать "{:p}" для этого? И не мучиться с системой типов?
    Это описано в std::fmt. Если нужно только вывести, логичнее использовать для этого готовые параметры форматирования.
    Написано
  • Можно ли как то избавится от названия основного модуля при импорте Go файлов?

    fenrir1121
    @fenrir1121
    Можно ли как то избавится от названия основного модуля при импорте Go файлов?
    А как вы в этом случае хотите разрешать конфликты с одинаковыми объектами или функциями?
    Написано
  • Прошу о помощи: Автоматизация действий Python + Playwright, как исправить?

    fenrir1121
    @fenrir1121
    как исправить

    - Удалить жирный try...except, чтобы понять в какой именно строчке возникает проблема
    - Посмотреть почему в ту строчку приходит None вместо ожидаемого объекта
    - Исправить код чтобы пришел ожидаемый объект
    - Повторять до конца логики
    Написано
  • Как хранить ключи в Python?

    fenrir1121
    @fenrir1121
    Я не знаю зачем вы поставили в теги питон, а вопрос задаёте про андроид приложение, но по формулировкам кажется вам стоит изучить как работает ассиметричное шифрование
    Написано
  • Rust как подключить внешний файл в модуле?

    fenrir1121
    @fenrir1121
    Загир Меджидов, растбук не документация, а краткая справка по особенностям языка, которая предполагает, что вы уже знакомы с программированием.

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

    Напишите ответ
    Вам компилятор уже написал ответ. Даже два, т.к не знает точно ваших намерений.
    = help: to create the module `db`, create file "src\cmd\db.rs" or "src\cmd\db\mod.rs"
      = note: if there is a `mod db` elsewhere in the crate already, import it with `use crate::...` instead

    Вот тот же ответ, но словами из все того же растбука:
    В файле корневого модуля крейта вы можете объявить новые модули; скажем, вы объявляете модуль “garden” с помощью mod garden;. Компилятор будет искать код модуля в следующих местах:
    - в этом же файле, между фигурных скобок, которые заменяют точку с запятой после mod garden
    - в файле src/garden.rs
    - в файле src/garden/mod.rs
    После того, как модуль станет частью вашего крейта и если допускают правила приватности, вы можете ссылаться на код в этом модуле из любого места вашего крейта, используя путь к коду.
    Написано
  • Cargo и npm код компилируется, но почему программа ui не запускается?

    fenrir1121
    @fenrir1121
    Загир Меджидов, покажите, где в вашей функции main вызывается ваша функция run
    Написано